文字列演算子 “&” と “+” の違い

1. 文字列演算子とは?

VBAでは、文字列を結合するために “&” と “+” の2つの演算子が使用できます。ただし、これらの演算子には動作の違いがあります。

2. & 演算子(文字列の結合)

& 演算子は、確実に文字列を結合するために使用されます。

使用例:

Sub TestConcatenation()
    Dim str1 As String, str2 As String, result As String
    str1 = "Hello"
    str2 = " World"
    result = str1 & str2
    MsgBox result  'Hello World
End Sub

3. + 演算子(数値と文字列の混在に注意)

+ 演算子も文字列の結合に使用できますが、数値が含まれると加算として扱われる可能性があります。

使用例(文字列同士の場合):

Sub TestPlusOperator()
    Dim str1 As String, str2 As String, result As String
    str1 = "Hello"
    str2 = " World"
    result = str1 + str2
    MsgBox result  'Hello World
End Sub

数値が含まれる場合の挙動:

Sub TestPlusWithNumbers()
    Dim str1 As String, num As Integer, result As String
    str1 = "Total: "
    num = 10
    result = str1 + num  'エラーの可能性
    MsgBox result
End Sub

上記のコードでは、num が数値のため、VBAは + を加算として扱おうとします。エラーを防ぐために CStr(num) を使って明示的に文字列に変換するのが安全です。

result = str1 & CStr(num) '正しい方法

4. & と + の使い分け

演算子動作使用推奨
&文字列を確実に結合する常に安全に結合したい場合
+文字列結合または数値加算計算結果を意図的に利用する場合

基本的には、文字列結合には & を使用するのが推奨されます。+ を使うと型によって意図しない動作をする可能性があるため、注意が必要です。

コメント

タイトルとURLをコピーしました