Vba-arrays

提供:Dev Guides
移動先:案内検索

VBA-配列

変数は値を格納するコンテナであることをよく知っています。 開発者は、一度に1つの変数に複数の値を保持できる場合があります。 一連の値が単一の変数に格納される場合、それは*配列変数*と呼ばれます。

配列宣言

配列は、変数の宣言と同じ方法で宣言されますが、配列変数の宣言では括弧が使用されます。 次の例では、配列のサイズが括弧内に記載されています。

'Method 1 : Using Dim
Dim arr1()  'Without Size

'Method 2 : Mentioning the Size
Dim arr2(5)  'Declared with size of 5

'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
  • 配列サイズは5と示されていますが、配列インデックスがゼロから始まるため、6つの値を保持できます。
  • 配列インデックスを負にすることはできません。
  • VBScript配列は、任意のタイプの変数を配列に格納できます。 したがって、配列は、整数、文字列、または文字を単一の配列変数に格納できます。

配列への値の割り当て

割り当てられる値のそれぞれに対して配列インデックス値を指定することにより、値が配列に割り当てられます。 文字列にすることができます。

ボタンを追加し、次の関数を追加します。

Private Sub Constant_demo_Click()
   Dim arr(5)
   arr(0) = "1"           'Number as String
   arr(1) = "VBScript"    'String
   arr(2) = 100              'Number
   arr(3) = 2.45             'Decimal Number
   arr(4) = #10/07/2013#  'Date
   arr(5) = #12.45 PM#    'Time

   msgbox("Value stored in Array index 0 : " & arr(0))
   msgbox("Value stored in Array index 1 : " & arr(1))
   msgbox("Value stored in Array index 2 : " & arr(2))
   msgbox("Value stored in Array index 3 : " & arr(3))
   msgbox("Value stored in Array index 4 : " & arr(4))
   msgbox("Value stored in Array index 5 : " & arr(5))
End Sub

上記の関数を実行すると、次の出力が生成されます。

Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PM

多次元配列

配列は1つの次元に限定されているわけではありませんが、最大60の次元を持つことができます。 2次元配列は、最も一般的に使用されるものです。

次の例では、多次元配列が3行4列で宣言されています。

Private Sub Constant_demo_Click()
   Dim arr(2,3) as Variant  ' Which has 3 rows and 4 columns
   arr(0,0) = "Apple"
   arr(0,1) = "Orange"
   arr(0,2) = "Grapes"
   arr(0,3) = "pineapple"
   arr(1,0) = "cucumber"
   arr(1,1) = "beans"
   arr(1,2) = "carrot"
   arr(1,3) = "tomato"
   arr(2,0) = "potato"
   arr(2,1) = "sandwitch"
   arr(2,2) = "coffee"
   arr(2,3) = "nuts"

   msgbox("Value in Array index 0,1 : " &  arr(0,1))
   msgbox("Value in Array index 2,2 : " &  arr(2,2))
End Sub

上記の関数を実行すると、次の出力が生成されます。

Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee

ReDimステートメント

ReDimステートメントは、動的配列変数を宣言し、ストレージスペースを割り当てまたは再割り当てするために使用されます。

構文

ReDim [Preserve] varname(subscripts) [, varname(subscripts)]

パラメータ説明

  • Preserve -最後の次元のサイズを変更するときに既存の配列のデータを保持するために使用されるオプションのパラメーター。
  • Varname -変数の名前を示す必須パラメータ。標準の変数命名規則に従う必要があります。
  • 下付き文字-配列のサイズを示す必須パラメータ。

次の例では、配列が再定義され、配列の既存のサイズが変更されたときに値が保持されます。

-元よりも小さい配列のサイズを変更すると、削除された要素のデータは失われます。

Private Sub Constant_demo_Click()
   Dim a() as variant
   i = 0
   redim a(5)
   a(0) = "XYZ"
   a(1) = 41.25
   a(2) = 22

   REDIM PRESERVE a(7)
   For i = 3 to 7
   a(i) = i
   Next

   'to Fetch the output
   For i = 0 to ubound(a)
      Msgbox a(i)
   Next
End Sub

上記の関数を実行すると、次の出力が生成されます。

XYZ
41.25
22
3
4
5
6
7

配列メソッド

VBScriptには、開発者が配列を効果的に処理するのに役立つさまざまな組み込み関数があります。 配列と組み合わせて使用​​されるすべてのメソッドを以下にリストします。 メソッド名をクリックして詳細を確認してください。

Sr.No. Function & Description
1

LBound

指定された配列の最小の添え字に対応する整数を返す関数。

2

UBound

指定された配列の最大の添え字に対応する整数を返す関数。

3

Split

指定された数の値を含む配列を返す関数。 区切り文字に基づいて分割します。

4

Join

配列内の指定された数の部分文字列を含む文字列を返す関数。 これは、Split Methodの正反対の機能です。

5

Filter

特定のフィルター条件に基づいた文字列配列のサブセットを含むゼロベースの配列を返す関数。

6

IsArray

入力変数が配列かどうかを示すブール値を返す関数。

7

Erase

配列変数に割り当てられたメモリを回復する関数。