VBScript-配列

アレイとは何ですか?

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

配列宣言

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

'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配列は、任意のタイプの変数を配列に格納できます。したがって、配列は整数、文字列、または文字を単一の配列変数に格納できます。

配列への値の割り当て

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

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         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

         document.write("Value stored in Array index 0 : " & arr(0) & "<br />")
         document.write("Value stored in Array index 1 : " & arr(1) & "<br />")
         document.write("Value stored in Array index 2 : " & arr(2) & "<br />")
         document.write("Value stored in Array index 3 : " & arr(3) & "<br />")
         document.write("Value stored in Array index 4 : " & arr(4) & "<br />")
         document.write("Value stored in Array index 5 : " & arr(5) & "<br />")

      </script>
   </body>
</html>

上記のコードを.HTMLとして保存し、Internet Explorerで実行すると、次の結果が生成されます。

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

多次元配列

配列は単一の次元に限定されるのではなく、最大60の次元を持つことができます。2次元配列は、最も一般的に使用される配列です。

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

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim arr(2,3)	' 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"            
                  
         document.write("Value in Array index 0,1 : " &  arr(0,1) & "<br />")
         document.write("Value in Array index 2,2 : " &  arr(2,2) & "<br />")

      </script>
   </body>
</html>

上記のコードを.HTMLとして保存し、Internet Explorerで実行すると、次の結果が生成されます。

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

償還声明

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

ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
  • Preserve −最後の次元のサイズを変更するときに、既存の配列のデータを保持するために使用されるオプションのパラメーター。

  • varname −変数の名前を示す必須パラメーター。標準の変数命名規則に従う必要があります。

  • subscripts −配列のサイズを示す必須パラメーター。

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

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

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim a()
         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
      </script>
   </body>
</html>

上記のスクリプトをHTMLとして保存し、Internet Explorerで実行すると、次の結果が得られます。

XYZ
41.25
22
3
4
5
6
7

配列メソッド

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

関数 説明
LBound 指定された配列の最小の添え字に対応する整数を返す関数。
UBound 指定された配列の最大の添え字に対応する整数を返す関数。
スプリット 指定された数の値を含む配列を返す関数。区切り文字に基づいて分割されます。
参加する 配列内の指定された数の部分文字列を含む文字列を返す関数。これは、分割メソッドの正反対の関数です。
フィルタ 特定のフィルター基準に基づいて文字列配列のサブセットを含むゼロベースの配列を返す関数。
IsArray 入力変数が配列であるかどうかを示すブール値を返す関数。
消去 配列変数に割り当てられたメモリを回復する関数。