VBScript - 変数を宣言する | Dim ステートメント

とある内容をメモリに保存しておきたい場合に変数を使う。
たとえば変数には、何かを計算した結果やユーザーが入力した内容を入れておくことができる。

変数の宣言

VBScript では `Dim` ステートメントで変数を宣言する。
varName の部分が変数名である。命名規則に従うこと。

Dim varName

複数宣言するときは次のようにカンマで区切る。

Dim varNameA, varNameB

変数のデータ型はバリアント型(Variant)、初期値は `Empty` となる。
(Empty は変数が初期化されていないことを示すキーワード)

暗黙的な変数宣言を避ける

VBScript では、スクリプト内で変数名を書くと自動で変数が作られる。
これを暗黙的な変数宣言と言う。

しかし、暗黙的な変数宣言は避けた方が良い。
変数名の入力ミスに気付けなくなるからである。
たとえば変数 var を間違えて bar と入力した場合、bar という変数が作られてしまう。

Option Explicit ステートメントを使うと、暗黙的な変数宣言を禁止できる。
(暗黙的な変数宣言を禁止=明示的な変数宣言を強制)

明示的な変数宣言を強制するには、Option Explicit をスクリプト内のどのステートメントよりも前に記述する。

Option Explicit

'宣言してから使うのはOK
Dim var
var = 10

'宣言しないのはNG。エラーになる(実行時エラー: この変数は宣言されていません。)
bar = 10

変数の命名規則

変数名は以下の規則に従って付ける。

  • 先頭文字はアルファベットであること

  • ピリオドを使わないこと

  • 255文字(半角の場合)以内であること

  • 変数の適用範囲内で同じ名前の変数を複数宣言しないこと

変数の適用範囲

変数の適用範囲は、変数を宣言した位置で決まる。
適用範囲には次の2つがある。

  • プロシージャレベル

  • スクリプトレベル

プロシージャレベルはプロシージャ内部で宣言した変数に適用される。
その変数を宣言したプロシージャ内でのみ有効となる。

スクリプトレベルはプロシージャ外部で宣言した変数に適用される。
スクリプト全体で有効となる。

変数の有効期間

プロシージャレベルとスクリプトレベルで変数の有効期間が異なる。

プロシージャレベルはプロシージャ内にいる間のみ有効。
変数を宣言したプロシージャを開始したときに始まり、プロシージャが終了したときに終わる。

プロシージャの途中で変数を宣言していても、プロシージャの開始時から有効になるので留意する。

スクリプトレベルは、スクリプトで宣言されてからスクリプトが終了するまでの間、有効となる。

この記事が気に入ったらサポートをしてみませんか?