この質問は、 VBAのRange.Formula =が奇妙なエラーをスローします の下のコメントから来ています。
私は試行錯誤でそのプログラムを書いたので、文字列を連結するために+
を自然に試しました。
しかし、文字列を連結するための&
より+
の方が正しいのでしょうか?
&
はalways文字列コンテキストで評価されますが、オペランドの1つが文字列でない場合、+
は連結できません。
"1" + "2" => "12"
"1" + 2 => 3
1 + "2" => 3
"a" + 2 => type mismatch
これは単に潜在的なバグの微妙な原因であるため、避ける必要があります。 &
alwaysは、引数が文字列ではない場合でも「文字列連結」を意味します。
"1" & "2" => "12"
"1" & 2 => "12"
1 & "2" => "12"
1 & 2 => "12"
"a" & 2 => "a2"
私にとっての主な(非常に興味深い)違いは次のとおりです。"string" & Null
-> "string"
while"string" + Null
-> Null
しかし、おそらくAccessのようなデータベースアプリではより便利です。
連結関数があります。 たとえば
= CONCATENATE(E2、 "-"、F2)