VBScriptさんま屋.

VBScriptの個人的なメモです (´・ω・`)

配列(1) 配列の作り方

概要

配列の作り方。

VBScriptの配列関連

項目 種類 説明
Array 関数 配列を作成する
Dim ステートメント 変数を宣言する
Erase ステートメント 配列を初期化する
Filter 関数 条件に合致する要素からなる配列を返す
For Each ... Next ステートメント 配列の要素を順番に取得する
IsArray 関数 変数が配列か否かをブール値で返す
Join 関数 配列の各要素を結合して文字列を返す
LBound 関数 配列の添字番号の最小値を返す
ReDim ステートメント 配列の次元やサイズを変更できる
Split 関数 文字列から配列を作成する
UBound 関数 配列の添字番号の最大値を返す

Array関数

Array関数を使って配列を作成できる。

Dim fruit

fruit = Array("みかん", "りんご", "メロン")

MsgBox fruit(0) 'みかんと表示される
MsgBox fruit(1) 'りんごと表示される
MsgBox fruit(2) 'メロンと表示される

Array()とすれば要素をもたない配列も作成できる。

Array関数の引数と戻り値

引数 説明
引数 要素
戻り値 配列

Dimステートメント

Dimステートメントを使って配列を作成できる。

Dim fruit(2)

fruit(0) = "みかん"
fruit(1) = "りんご"
fruit(2) = "メロン"

MsgBox fruit(0) 'みかんと表示される
MsgBox fruit(1) 'りんごと表示される
MsgBox fruit(2) 'メロンと表示される

Dim fruit(1,2)などとして多次元配列も作成できる。

ReDimステートメント

配列のサイズを変更したい場合は、ReDimステートメントを使う。

Dim a

ReDim a(1)
MsgBox UBound(a) '1と表示される

ReDim a(2)
MsgBox UBound(a) '2と表示される

ReDimにより配列の内容は初期化される。
初期化したくない場合はPreserveをつける。

Dim fruit
fruit = Array("みかん", "りんご", "メロン")

ReDim Preserve fruit(3)
fruit(3) = "ぶどう"

MsgBox Join(fruit, ",") 'みかん,りんご,メロン,ぶどうと表示される

Split関数

Split関数は文字列から配列を作成する。

Dim tmp, fruit

tmp = "みかん,りんご,メロン"
fruit = Split(tmp, ",")

MsgBox fruit(0) 'みかんと表示される
MsgBox fruit(1) 'りんごと表示される
MsgBox fruit(2) 'メロンと表示される

Split関数の引数と戻り値

引数 説明 必須/省略可
第1引数 文字列 必須
第2引数 区切り文字(デフォルトはスペース(" ")) 省略可
第3引数 配列の要素数の上限(デフォルトは-1(無制限)) 省略可
第4引数 区切り文字の比較方法(0:バイナリモード,1:テキストモード) 省略可
戻り値 配列 -

バイナリモードはアルファベットの大文字と小文字を区別し、テキストモードは区別しない。

Split関数で作成した配列の要素は文字列として扱われる。

以下はArray関数とSplit関数で作成した配列について、各要素の総和を求める例。

Dim a, s

a = Array(1,2,3)    '1,2,3の配列(数値)
s = Split("1,2,3", ",") '1,2,3の配列(文字列)

MsgBox TypeName(a(0)) 'Integerと表示される
MsgBox TypeName(s(0)) 'Stringと表示される

MsgBox a(0) + a(1) + a(2) '6と表示される
MsgBox s(0) + s(1) + s(2) '123と表示される

配列sの総和(1+2+3=6)を求めたつもりが、文字列の結合(123)になってしまった。
CInt(s(0)) + CInt(s(1)) + CInt(s(2))など型変換が必要。

Join関数

Join関数は配列から文字列を作成する。

Dim fruit

fruit = Array("みかん", "りんご", "メロン")
MsgBox Join(fruit, ",") 'みかん,りんご,メロンと表示される

Join関数の引数と戻り値

引数 説明 必須/省略可
第1引数 配列 必須
第2引数 区切り文字(デフォルトはスペース(" ")) 省略可
戻り値 文字列 -

Eraseステートメント

Eraseステートメントを使用して配列を初期化できる。
文字列は""へ、数値は0へ初期化される。

Dim fruit(2)

fruit(0) = "みかん"
fruit(1) = "りんご"
fruit(2) = "メロン"

MsgBox Join(fruit, ",") 'みかん,りんご,メロンと表示される
Erase fruit '配列を初期化
MsgBox Join(fruit, ",") ',,と表示される