VBAなどのプログラムを作成する場合、必ず変数を使用します。
ここでは、変数宣言など変数の使い方について説明と、変数が定義されていませんと表示された場合の原因と対処方法を掲載します。
変数にはデータ型があります。
データ型の種類については、こちらを参照してください。
● 変数宣言と使用例
前回作成したVBAは下記のコードでした。
Sub MyMessage()
MsgBox "Access VBA"
End Sub
これを下記に変更します。
Sub MyMessage()
Dim s As String
s = "Access VBA"
MsgBox s
End Sub
このDim部分が変数宣言です。
Dim 変数名 As データ型
ここでは、sという名前の変数を宣言し、これに「Access VBA」という文字列を代入しています。
そしてMsgBox関数の引数に変数sを設定しています。
実行結果は前回と同じになります。
上は文字型の変数を使用しましたが、数値型の変数に変更してみます。
変数iは数値型なので、数値を代入します。
そして、i + 2 のように計算ができます。
Sub MyMessage()
Dim i As Long
i = 123
MsgBox i * 2
End Sub
実行すると計算結果が表示されます。
● 型が一致しません
下のように、数値型に文字列を代入し実行してみます。
Sub MyMessage()
dim i as long
i = "Access VBA"
MsgBox i * 2
End Sub
すると「型が一致しません。」とエラーメッセージが表示されます。
このように、データ型に合ったデータを代入する必要があります。
ただし、文字列型に数値を代入した場合、エラーにならず自動的に数値は文字列に変換されます。
また、Variant(バリアント型)はどんなデータでも代入できます。
● 変数が定義されていません
下のように、Option Explicitを追加した場合、変数は必ず宣言する必要があります。
Option Explicitを使うと、変数によるバグを防ぐ手助けになります。
Option Explicit
Sub MyMessage()
i = 123
MsgBox i * 2
End Sub
Option Explicitを使用し、変数宣言をしなかった場合「変数が定義されていません。」とエラーメッセージが表示されます。
対処するには、Option Explicitを外せばいいのですが、バグ防止のためできるだけ変数はきちんと宣言するようにします。