変数は暗黙で、初期値が設定される
'■下記のように変数宣言時に初期値を設定すると宣言と同時に値を代入しました。 Dim flag as Boolean : flag = True 'flagはTrueである Dim ws as WorkSheet : Set ws = ThisWorkbook.ActiveSheet 'wsはThisWorkbook.ActiveSheet(ObjectなのでSetが必要) '■しかし、下記のように初期値を設定しない場合は暗黙で初期値が設定されます。 Dim num as Long 'Long型なので0が初期値となる
変数の初期値一覧
データ型によって、初期値は異なります。下記の表を参考にしてください。
データ型名 | 変数 | 初期値 |
ブール型 | Boolean | FALSE |
バイト型 | Byte | 0 |
整数型 | Integer | 0 |
長整数型 | Long | 0 |
単精度浮動小数点型 | Single | 0 |
倍精度浮動小数点型 | Double | 0 |
通貨型 | Currency | 0 |
日付型 | Date | 1899/12/30 00:00:00 |
文字列型 | String | vbNullString |
オブジェクト型 | Object | Nothing |
バリアント型 | Variant | Empty |
vbNullStringは値が 0 の文字列であり、“”(空文字※長さが0の文字列)ではありません。
ただ通常は、あまり気にする必要はありません。
変数宣言時に初期値はセットするべき?
暗黙に初期値が設定されるのを生かすのか、明示的に変数宣言時に値を格納するのかどちらがいいのかは、
こちらのタグの記事と同様です。
場合による。これに尽きると考えます。
理由は、自分だけが確認するコードであれば、好きにすればよいし、
チームで動く場合はルールに沿うべきです。
プログラムは単純なものではありますが、人の手により読みやすい・読みにくいコードが生まれるため、
そのあたりの空気を読む力は必要だと考えます。
関連記事
【VBA基本】変数のデータ型一覧
.Valueは必要?不必要?省略しても良い?【ExcelVBA】
If flg Thenってどういう意味?Boolean型のフラグの判定条件【ExcelVBA】
コメント