このエントリーをはてなブックマークに追加


VBScriptで配列の要素数を取得する方法

UBound関数を使用することにより配列の要素数を取得することができます。
以下に配列要素数を取得するサンプルコードを以下に記します。


UBound関数

一次元配列であれば以下のように配列変数を指定すれば最大インデックス値が返却されます。
配列は0から始まるので要素数を求めるには最大インデックス値に+1する必要があります。

UBound(配列変数)

多次元配列の場合は、配列変数名と次元を指定する必要があります。 以下のような3次元配列があり

Dim a(1, 2, 3)

3番目の最大インデックス値を求めたい場合は以下のようになります。

UBound(a, 3)

Arrayで取得した場合のサンプル

以下のようなサンプルコードにて要素数を取得

  • サンプルコード fileubound01.vbs
    a = Array(1, 2, 3, 4, 5)
    WScript.Echo "UBound(a) = " & UBound(a)
    WScript.Echo "UBound(a)+1 = " & UBound(a)+1
  • 実行結果
    C:\wsh>cscript /nologo ubound01.vbs
    UBound(a) = 4
    UBound(a)+1 = 5

Dimで取得した場合のサンプル

以下では一次元、二次元、三次元配列の場合の要素数を取得するサンプルコードを記します。

  • サンプルコード fileubound02.vbs
    Dim x(10)
    Dim xy(10,20)
    Dim xyz(10,20,30)
    
    WScript.Echo "UBound(x)+1 = " & UBound(x)+1
    
    WScript.Echo "UBound(xy, 1)+1 = " & UBound(xy, 1)+1
    WScript.Echo "Ubound(xy, 2)+1 = " & Ubound(xy, 2)+1
    
    WScript.Echo "UBound(xyz, 1)+1 = " & UBound(xyz, 1)+1
    WScript.Echo "Ubound(xyz, 2)+1 = " & Ubound(xyz, 2)+1
    WScript.Echo "UBound(xyz, 3)+1 = " & UBound(xyz, 3)+1
  • 実行結果
    C:\wsh>cscript /nologo ubound02.vbs
    UBound(x)+1 = 11
    UBound(xy, 1)+1 = 11
    Ubound(xy, 2)+1 = 21
    UBound(xyz, 1)+1 = 11
    Ubound(xyz, 2)+1 = 21
    UBound(xyz, 3)+1 = 31

上記のように、UBound関数により配列の次元の最大インデックス値を取得することができます。
配列は0からはじまるので、UBound関数の戻り値に+1することにより配列の要素数を取得することができます。



添付ファイル: fileubound01.vbs 866件 [詳細] fileubound02.vbs 564件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:50:26