配列(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, ",") ',,と表示される