以下のコードを実行した際、メッセージに表示される結果として正しいものを以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim a As Variant
Dim b As Variant
a = "10"
b = 5
MsgBox a + b
End Sub
1."105"
2.15
3.エラーが発生する
4."15"
正解
2
解説
【4章 VBAの構文】
【文字列連結演算子】
結合内容 | 演算子 |
演算子の左辺と右辺の文字列を結合 | & |
演算子の左辺と右辺の文字列を結合
|
+ 数値を足し算する働きもあるので、数値が格納された変数で実行するときには注意が必要です。 |
【コード解説】
以下のコードを実行した際、メッセージに表示される結果として正しいものを以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim a As Variant
Dim b As Variant
’変数をどんな値にも対応できるVariant型で宣言する。
a = "10"
’変数aには文字列「10」を代入する。
b = 5
’変数bには数値の「5」を代入する。
MsgBox a + b
’メッセージには対象が数値として解釈できる場合、文字列と数値の組み合わせであっても加算として機能するので 10+5の計算結果を表示数する。
End Sub

1."105"
誤り。
+ 演算子を文字列の連結としてのみ機能すると誤解している場合に選択されやすいです。VBAにおいて、+ 演算子は対象が数値として解釈できる場合、加算を実行します 。
2.15
正しい。
VBAの + 演算子は、対象が数値として解釈できる場合、文字列と数値の組み合わせであっても加算として機能します。
この場合、文字列 "10" は数値の10に変換され、5と加算されるため、結果は15となります。
3.エラーが発生する
誤り。
通常、異なるデータ型を + 演算子で結合しようとするとエラーになることがありますが、VBAの + 演算子には柔軟性があり、文字列が数値に変換可能な場合は自動的に変換して加算を行います
4."15"
誤り。
結果は数値の15であり、文字列の "15" ではありません。MsgBoxは数値の15を表示します。
文字列として連結されるのは & 演算子を使用した場合です 。+ 演算子の場合、対象が数値として解釈されると加算が行われます 。