怠日記

写真・金魚・昆虫・プログラミングの趣味を語るサイトです。似たようなことをnoteにも書いたり書いてなかったり。

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

変数の宣言

変数を宣言するには Dim ステートメントを使う。

Dim varName
  • varName: 変数名。名前の付け方は後述の命名規則に従うこと

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

カンマで区切って一度に複数宣言することもできる。

Dim varNameA, varNameB

変数の命名規則

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

  • 先頭文字はアルファベットであること
  • ピリオドを使わないこと
  • 255文字(半角の場合)以内であること
  • 変数の適用範囲内で同じ名前の変数を複数宣言しないこと

変数の適用範囲

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

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

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

変数の有効期間

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

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

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

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

 

次のスクリプトでは、プロシージャが終わる直前で変数 result を宣言しているが、プロシージャの始まりからその変数を利用できる。

Option Explicit

Sub Main

    'Dim result より前にあるが変数を利用できる
    result = 1 + 1
    MsgBox "1 + 1 は " & CStr(result)

    Dim result

End Sub