目次
1. はじめに
2. 環境
3. 静的配列と動的配列の違い
4. 配列の初期化
4-1. 静的配列
4-2. 動的配列
5. 参考
6. おわりに
1.はじめに
現在VBScriptを実務で使用しています。VBSCriptでは配列の種類が複数あります。
今回はVBScriptの静的配列と動的配列についてまとめます。
2.環境
- Windows 11 Pro 22H2
- Microsoft-IIS/10.0
- ASP 5.8 (16384)
3.静的配列と動的配列の違い
項目 | 内容 |
---|---|
静的配列 | 要素数が決まっているときに使用する |
動的配列 | 要素数が決まっていないときに使用する |
▼静的配列
配列を宣言するときに、()内に最大の要素数を入れます。
Dim arr(2)
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
Response.Write(arr(2)) '-> c
Response.Write(arr(3)) '-> 宣言していないのでエラー
最大の要素数を入れずに宣言をした場合、エラーになります。
Dim arr()
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
Response.Write(arr(2)) '-> エラー
▼動的配列
配列を宣言するときに、()内に最大の要素数を入れます。
Dim arr() '何も指定しない※このときの要素数は0
Redim arr(2) ' ()内に最大の要素数を入れる
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
Response.Write(arr(2)) '-> c
Redim 配列名(最大の要素数)
とすると、動的配列の要素数を変更することができます。
Redimを使用すると、配列のデータは全て削除されます。
格納されているデータを残したまま要素数の変更をしたい場合は、
Redim Preserve 配列名(最大の要素数)
とします。
▼Redim
Dim arr() '何も指定しない※このときの要素数は0
Redim arr(2)
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
Response.Write(arr(2)) '-> c
Redim arr(3)
arr(3) = "d"
For Each a In arr
Response.Write a 'a~cは削除されてdのみ
Next
▼Redim Preserve
Dim arr()
Redim arr(2)
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
Response.Write(arr(2)) '-> c
Redim Preserve arr(3)
arr(3) = "d"
For Each a In arr
Response.Write a '-> a~d
Next
4.配列の初期化
配列の初期化はErase 配列
と書きます。
なぜ初期化を行うのか?
→もしも初期化をしない状態でその変数を用いて演算処理を行おうとすると、
例外(実行時エラー)が発生し、プログラムが止まってしまうため
4-1.静的配列
すべての要素が空の文字列になります。要素数は変わりません。
Dim arr(2)
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
For Each a In arr
Response.Write a '-> a~c
Next
Erase arr
For Each a In arr
Response.Write a ' 何もなし
Next
Response.Write(UBound(arr)) '-> 2(最大値の要素数)
If IsArray(arr) Then
Response.Write "True" '配列なのでTrue
Else
Response.Write "False"
End If
4-2.動的配列
メモリを開放します。要素数は0になります。
Dim arr()
Redim arr(2)
arr(0) = "a"
arr(1) = "b"
arr(2) = "c"
Redim Preserve arr(3)
arr(3) = "d"
For Each a In arr
Response.Write a '-> a~d
Next
Erase arr ' 配列の初期化(メモリを解放)
For Each a In arr
Response.Write a '何もなし
Next
If IsArray(arr) Then
Response.Write "True" '配列なのでTrue
Else
Response.Write "False"
End If
5.参考
6.おわりに
記事の感想や意見、ご指摘等あれば伝えていただけるとありがたいです。
読んでいただき、ありがとうございました。