VBA UBound関数について ~関数の解説と使用例~

ENGINEER.CLUB編集部

テーブルやエクセルからデータを配列に格納して、配列の要素数だけ繰り返し処理をしたいと思ったことはありませんか。

UBound関数、LBound関数を利用すると、配列のインデックス(要素数)の最大値、最小値を取得できます。

ここでは、UBound関数について説明します。

tiktokの配信を見る

1.UBound関数について

1-1.UBound関数とは

UBound関数とは、配列の指定された次元で使用可能なインデックスの最大値を取得する関数です。主に、配列のインデックス数だけ繰り返し処理を行う際に使用します。最小値の場合は「Lbpound」を使用します。※「配列の最大インデックスに設定されている値」ではありません。

1-2.UBound関数の構文

UBound(配列の名前, 対象の次元)
戻り値はLong形式

「対象の次元」とは、多次元配列の場合に使用します。


2.UBound関数の使用例

2-1.基本的な使用例

Ubound関数の引数一つの例

Sub Sample1()
    'インデックスの値が7の配列
    Dim arr(7) As Integer

    MsgBox "インデックスの値は " & UBound(arr) & " です"

End Sub

実行結果:配列で宣言した「7」が取得されています

Ubound関数の引数二つの場合

Sub Sample2()
    '3次元配列で、インデックスが「7, 5, 10」
    Dim arr(7, 5, 10) As Integer

    
    MsgBox "インデックス1の値は " & UBound(arr, 1) & " です"
    MsgBox "インデックス2の値は " & UBound(arr, 2) & " です"
    MsgBox "インデックス3の値は " & UBound(arr, 3) & " です"
    
End Sub

実行結果:配列で宣言した「7」、「5」、「10」が取得されています

 

 

 

2-2.他の関数も使った使用例

Lboundを使った配列の最小最大値の取得

Sub Sample3()
    Dim arr(3) As Integer
    Dim i As Integer

    For i = LBound(arr) To UBound(arr)
        MsgBox i + 1 & "回目です"
    Next

End Sub

実行結果:配列で宣言した値+1回ループしています

※配列は、0番目からはじまります

LBoundで取得した値:0

UBounbdで取得した値:3

 

 

 


3.注意すべきこと

下記のように、途中でインデックス数が変更される場合、実際に値を使用する直前で取得する必要があります。

Sub Sample4()
    Dim arr() As Variant

    '配列arrをインデックス3つで初期化
    arr = Array(1, 2, 3)

    MsgBox "インデックスの値は " & UBound(arr) + 1 & " です"  ‘※1 初期化した3を取得

    '配列arrをインデックス4つで初期化
    arr = Array(1, 2, 3, 4)

    MsgBox "インデックスの値は " & UBound(arr) + 1 & " です"  ‘※2 初期化した4を取得


End Sub

実行結果:

1時点での実行結果:

2時点での実行結果:


4.最後に

UBound関数を使用する場合は、配列の構造や、インデックス数の固定値/可変値に注意して、使ってください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

文系IT未経験歓迎!株式会社ボールドの 採用エントリー を受付中!
文系IT未経験歓迎!
株式会社ボールドの 採用エントリー を受付中!