変数の初期値について

そういえば、変数の宣言の仕方や使い方はわかったけど、
宣言した直後は変数に何か値が入っているのかな?それとも
っぽなのかな?



いい質問だね、実務でマクロを作るときも大切なことなので勉強していこう!



おねがいします!
これまでの変数に関わる記事はこちらになります。


今回使うソースコードはこちらになります。
Sub hensu_syokichi()
Dim maru As String '文字列型で宣言
Dim mono As Long '長整数型で宣言
Dim neko As Variant 'バリアント型で宣言
MsgBox "文字列型で宣言=" & maru
MsgBox "長整数型で宣言=" & mono
MsgBox "バリアント型で宣言=" & neko
End Sub
今回の内容はシンプルですが、変数を扱う上でとても重要な変数の初期値について説明します。
初期値とは変数を宣言した直後に変数に格納されている値のことを指します。
VBA以外のプログラミング言語では、変数を使用する前に初期化をしなければならないケースもありますが、VBAは変数の宣言時に自動的に初期化されるため、改めて初期化をする必要はありません。
ではさっそくマクロを実行して、各変数の初期値を見ていきましょう。
文字列型で宣言した変数maruは空(“”)ですね。


次に長整数型で宣言した変数monoは0となっています。


最後にバリアント型で宣言した変数nekoも空(“”)となっています。


このように宣言の型によって空の状態か、0が入っているか異なります。
なぜここに注意する必要があるかというと今後、If文などの判定式を使ってマクロを作成するときに長整数型で宣言しておけば初期値は0なので、If = 0 かどうか?という判定式の結果、Trueになります。バリアント型で宣言していると上記判定はFalseになり判定式の結果に差がでるため注意が必要です。
まとめ
今回は変数の初期値について確認しました。
実務に追われているとついつい忘れがちなことだと思いますが、繰り返し復習して覚えていきましょう。
コメント