VBAでは、文字列の連結を行うために&演算子または+演算子を使用できますが、これらの演算子には挙動の違いがあります。本記事では、&演算子と+演算子の違いについて説明し、コーディングにおける注意点を紹介します。
&演算子、+演算子の違い
&演算子は文字列の連結のみを行いますが、+演算子は式のデータ型で挙動が変わります。
Dim result As String
Dim strVal As String : strVal = "12"
Dim lngVal As Long : lngVal = 3
' [+演算子] 一方の式がString型で、もう一方が数値だと加算になる。
result = strVal + lngVal ' 結果は"15"となる。
' [+演算子] 両方の式がString型ならば連結になる。
result = strVal + CStr(lngVal) ' 結果は"123"となる。
' [&演算子] 一方の式がString型で、もう一方が数値でも連結になる。
result = strVal & lngVal ' 結果は"123"となる。
+演算子は式のデータ型によって文字列の連結ではなく数値の加算を行うことがあります。
文字列の連結には「&」を使用しましょう
VBAにおいて、文字列の連結に+演算子を使用すると思わぬところで不具合を発生させてしまうことがあります。文字列の連結を適切に行うために&演算子を使用するようにしましょう。
文字列の連結に+演算子を使用すると、加算を行うのか、それとも文字列の連結を行うのか判断しにくくなります。&演算子を使用することで「文字列の連結」を行うという意図を明確にすることもできます。