UBound関数

 VBAで使える関数です。
 配列の添字(インデックス)の最大値を返します。

使用例

例1

コード

Sub Func_UBound()

    Dim season(3) As Variant

    MsgBox UBound(season)

End Sub

出力
f:id:accs2014:20190127235144p:plain:left:w200

 配列宣言すれば値を代入しなくともUBoundの値は決まります。
 ただし「Dim season() As ~」というような動的配列宣言の場合はエラーになります。

例2

コード

Sub Func_UBound()

    Dim season As Variant

    season = Array("春", "夏", "秋", "冬")

    MsgBox UBound(season)

End Sub

出力
f:id:accs2014:20190127235141p:plain:left:w200

 もちろん値を代入してもUBoundの値は変わりません。

例3

コード

Option Base 1

Sub Func_UBound()

    Dim season As Variant

    season = Array("春", "夏", "秋", "冬")

    MsgBox UBound(season) & "," & season(2)

End Sub

出力
f:id:accs2014:20190127235139p:plain:left:w200

 Option Baseにより添え字が1から始まることとされていますので、season(1)が「春」、season(2)が「夏」、season(3)が「秋」、season(4)が「冬」となり、UBoundの値は4となります。

例4

コード

Sub Func_UBound()

    Dim season(3, 1) As Variant

    season(0, 0) = "春": season(0, 1) = "桜"
    season(1, 0) = "夏": season(1, 1) = "向日葵"
    season(2, 0) = "秋": season(2, 1) = "彼岸花"
    season(3, 0) = "冬": season(3, 1) = "寒椿"

    MsgBox UBound(season, 2)

End Sub

出力
f:id:accs2014:20190127235136p:plain:left:w200

 配列のどの次元を指すのかを第2引数で指定できます。
 次数は1から始まりますので、2次元配列の場合指定できる値は1か2です。

書式

LBound(配列[,次数])

 どの次元を指すのかを第2引数で指定できます。
 次数は1から始まります。省略した場合は1とみなされます。

備考

 -