以下のコードを実行した際、メッセージボックスに表示される結果として最も適切なものはどれか。
以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim N As String
N= "ABあいう" ' 半角文字2つ、全角文字3つ
MsgBox LenB(N)
End Sub
1.メッセージボックスに「5」と表示される。
2.メッセージボックスに「7」と表示される。
3.メッセージボックスに「10」と表示される。
4.メッセージボックスに「8」と表示されるものである。
正解
3
解説
【5章 関数】
【LenB関数】
●文字列のバイト数を返す関数です。
VBA内部では文字列がUnicodeで処理されるため、半角文字も全角文字も区別なく1文字あたり2バイトとしてカウントされます。
構文
LenB(文字列)
【コード解説】
以下のコードを実行した際、メッセージボックスに表示される結果として最も適切なものはどれか。
以下の選択肢より1つ解答しなさい。
Sub Exam1()
Dim N As String
N= "ABあいう" ' 半角文字2つ、全角文字3つ
’変数に文字列を代入する。
MsgBox LenB(N)
’LenB関数で文字列ののバイト数を開始
End Sub
1.メッセージボックスに「5」と表示される。
誤り。
Len関数であれば文字数として5が返されますが、LenB関数はバイト数を返します。
2.メッセージボックスに「7」と表示される。
誤り。
VBA内部では文字列がUnicodeで処理されるため、半角文字も全角文字も区別なく1文字あたり2バイトとしてカウントされます。
3.メッセージボックスに「10」と表示される。
正しい。
LenB関数は文字列のバイト数を返します。
VBA内部では文字列はUnicodeで扱われ、1文字あたり2バイトであるため、「ABあいう」の5文字は 5times2=10 バイトとしてカウントされます。
4.メッセージボックスに「8」と表示されるものである。
誤り。
LenB関数が返すバイト数の計算が正しくありません。