次のコードでマクロ実行した時、結果がどうなるか選択肢の中から1つ解答しなさい。
Sub Exam1()
Dim A As Long, B
A = "20"
B = "VBA"
MsgBox A & B
End Sub

1.「A = "20"」の行でエラーになる。
2.「B = "VBA」の行でエラーになる。
3.「MsgBox A & B」の行でエラーになる。
4.メッセージボックスに「20VBA」と表示される。
正解
4
解説
【5章 変数と定数】
【変数型の指定】
●変数の型を指定しない場合、はVariant型(どのようなデータでも可能)となる。
●数値をダブルクォーテーション「""」で囲った文字列形式の数値は、VBAでは自動で数値へ変換する。
次のコードでマクロ実行した時、
結果がどうなるか選択肢の中から1つ解答しなさい。
Sub Exam1()
Dim A As Long, B
’変数Aは長整数で宣言する。変数Bは型の指定していないのでバリアント型(どのようなデータが可能)となります。
A = "20"
’「””」で囲まれた文字列形式の数値「20」は自動で数値に変換され変数Aに代入されます。
B = "VBA"
MsgBox A & B
’&演算子で変数A、「20」と変数B、「VBA」を結合する。
End Sub

1.「A = "20"」の行でエラーになる。
誤り。
変数AはVBAではダブルクォーテーション「""」で囲み、
文字列形式の数値を代入しても自動で数値へ変換し代入します。
2.「B = "VBA」の行でエラーになる。
誤り。
型を指定しないで宣言した変数BはVariant型となり文字列でも代入可能です。
3.「MsgBox A & B」の行でエラーになる。
誤り。
選択肢4の解説の通りコード上のエラーはありません。
4.メッセージボックスに「20VBA」と表示される。
正しい。
数値をダブルクォーテーション「""」で囲った文字列形式の数値をVBAでは自動で数値へ変換し、長整数の型 Longの変数Aに代入します。