以下のコードを実行した際、メッセージボックスに表示される結果として最も適切なものはどれか。以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim N As String
N = "VBAプログラミング"
MsgBox Mid(N, 4, 6)
End Sub
1.メッセージボックスに「VBAププログラミング」と表示される。
2.メッセージボックスに「VBA」と表示される。
3.メッセージボックスに「プログラミ」と表示されるものである。
4.実行時エラーが発生する。
正解
3
解説
【5章 関数】
【Mid関数】
●Mid関数は指定した位置から指定の文字数の文字列を抜き出します。
構文
Mid(文字列, 開始位置, 文字数)
●注意点は開始位置の文字も含まれることです。
以下の場合は3文字目も含まれます。
MsgBox Mid(N, 3, 4)
Middle East

●Mid関数で文字列を抜き出す時に文字数を指定しない場合は、
指定した位置から後ろ全部を返します。
指定しない場合を本問題にあてはめると、3文字目以降赤字の箇所を全て返すことになります。
MsgBox Mid(N, 3)
Middle East

【コード解説】
以下のコードを実行した際、メッセージボックスに表示される結果として最も適切なものはどれか。以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim N As String
N = "VBAプログラミング"
’変数に文字列「VBAプログラミング」を代入する.
MsgBox Mid(N, 4, 6)
' 文字列の特定の位置4文字目から指定した数6文字分の文字列を抽出する。
End Sub

1.メッセージボックスに「VBAププログラミング」と表示される。
誤り。
Mid関数は指定した開始位置から指定した文字数分の文字列を返します。
この場合、4文字目から6文字を抽出するため、「プログラミング」全体は返されません。
2.メッセージボックスに「VBA」と表示される。
誤り。
これはLeft関数で文字列の左端から抽出した場合の結果です。
3.メッセージボックスに「プログラミ」と表示されるものである。
正しい。
Mid関数は、文字列の指定した開始位置(この場合4文字目の「プ」)から、指定した文字数(この場合6文字)の文字列を返します。したがって、「プログラミ」が抽出されます。
4.実行時エラーが発生する。
誤り。
Mid関数の構文は正しく、引数も適切であるため、エラーは発生しません。