VBAのLBound関数とUBound関数を徹底解説!初心者向けガイド

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。

SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。

お気軽にお問い合わせください。

目次

VBAのLBound関数とUBound関数を徹底解説!初心者向けガイド

VBA(Visual Basic for Applications)を使う際、配列は大量データを効率的に扱うために必ず使うことになります。その時に必要な知識が、LBound関数とUBound関数です。これらの関数を使うことで、配列の最小インデックスや最大インデックスを簡単に取得できます。この記事では、これらの関数の使い方や実際の例を紹介します。

LBound関数とは?

LBound関数は、配列の最小インデックスを返します。通常、配列は1から始まりますが、0から始まる配列もあります。この関数を使うことで、配列の開始位置を簡単に取得できます。

Dim arr(1 To 5) As Integer
Dim minIndex As Integer
minIndex = LBound(arr)  ' minIndexは1になります

UBound関数とは?

UBound関数は、配列の最大インデックスを返します。この関数を使うことで、配列の最後の要素の位置を簡単に取得できます。

Dim arr(1 To 5) As Integer
Dim maxIndex As Integer
maxIndex = UBound(arr)  ' maxIndexは5になります

配列での使用例

配列での使い方のサンプルです。

Dim arr(1 To 5) As Integer
Dim i As Integer

' 配列に値を代入
For i = LBound(arr) To UBound(arr)
    arr(i) = i * 10
Next i

' 配列の値を出力
For i = LBound(arr) To UBound(arr)
    Debug.Print arr(i)
Next i

2次元配列での繰り返し処理

次は、シートを配列に代入した時など、2次元配列の時の使い方例です。以下の例では、配列の各要素に具体的な値(”1-1″, “1-2″など)を代入しています。

Dim matrix(1 To 3, 1 To 2) As String
Dim i As Integer, j As Integer

' 配列に値を代入
For i = LBound(matrix, 1) To UBound(matrix, 1)
    For j = LBound(matrix, 2) To UBound(matrix, 2)
        matrix(i, j) = "値" & i & "-" & j  ' 例: "値1-1", "値1-2", ...
    Next j
Next i

' 配列の値を出力
For i = LBound(matrix, 1) To UBound(matrix, 1)
    For j = LBound(matrix, 2) To UBound(matrix, 2)
        Debug.Print matrix(i, j)  ' 値を出力する
    Next j
Next i

このコードでは、2次元配列に値を代入し、最小インデックスから最大インデックスまでの要素を出力しています。例えば、matrix(1, 1)は「値1-1」、matrix(1, 2)は「値1-2」となります。

まとめ

LBound関数とUBound関数は、VBAで2次元配列を扱う際に非常に便利です。配列は高速化のためには必須ですので、これらの関数を使うことで、配列のインデックスを安全かつ効率的に管理できます。ぜひ、実際に手を動かして試してみてください。

記事を書いた人

稲垣

  • Excel、ACCESSでのシステム開発が得意
  • ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
  • 自家焙煎するほどのコーヒー好き
  • 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
  • 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
  • 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
  • お客様にとって本当に良いことかを第一に考える人
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次