次のコードを実行したとき、メッセージボックスに表示される変数Aの値はどれか。
選択肢の中から正しいものを1つ解答しなさい。
Sub Exam1()
Dim i As Long, A As String
For i = 1 To 3
A = A & "&" & "VBA"
Next i
MsgBox A
End Sub
1.実行時エラーになる。
2.&VBA&VBA&VBA&
3.VBA&VBA&VBA&
4.&VBA&VBA&VBA
正解
4
解説
【4章 VBAの構文】
【文字列連結演算子】
結合内容 |
演算子 |
演算子の左辺と右辺の文字列を結合 |
& |
演算子の左辺と右辺の文字列を結合
|
+ 数値を足し算する働きもあるので、数値が格納された変数で実行するときには注意が必要です。 |
次のコードを実行したとき、メッセージボックスに表示される変数Aの値はどれか。
選択肢の中から正しいものを1つ解答しなさい。
【コード解説】
Sub Exam1()
Dim i As Long, A As String
For i = 1 To 3
'①For…Nextステートメント 変数「i」へ1から3の間で代入し、繰り返し処理をする。
A = A & "&" & "VBA"
'演算子「&」は文字列を結合する演算子です。変数Aの初期値は「””」空欄です。
'一度実行すると「&VBA」が格納されます。2回目は変数Aに「&VBA」がすでに格納し保持されている所に「&VBA」を連結します。
Next i
'For…Nextステートメント 終了値まで変数「i」の繰り返し処理①へもどる。
MsgBox A
End Sub

文字列型の変数を宣言した変数「A」の値の初期値Stringの型は空欄「””」です。
中央の「"&"」はダブルクォーテーションで囲まれていますので連結演算子ではなく文字列として扱われます。
ですので、初回の処理結果は「&VBA」を変数「A」に格納します。
この変数に、あと2回「&VBA」を連結しますので、「&VBA&VBA&VBA」となります。
1.実行時エラーになる。
誤り。
このマクロは実行してもエラーにはなりません。
2.&VBA&VBA&VBA&
誤り。
「&VBA」を1回ずつ増やす処理です。右端の「&」が多いです。
3.VBA&VBA&VBA&
誤り。
「&VBA」を1回ずつ増やす処理です。「&」が「VBA」の先につきます。
4.&VBA&VBA&VBA
正しい。
&演算子は文字列を結合する演算子ですので正解です。
初回の処理結果は「&VBA」を変数「A」に格納します。
この変数に、あと2回「&VBA」を連結しますので、「&VBA&VBA&VBA」となります。