web-dev-qa-db-ja.com

VBAで文字列を連結するにはどうすればよいですか?

この質問は、 VBAのRange.Formula =が奇妙なエラーをスローします の下のコメントから来ています。

私は試行錯誤でそのプログラムを書いたので、文字列を連結するために+を自然に試しました。

しかし、文字列を連結するための&より+の方が正しいのでしょうか?

56
ilya n.

&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"
114
Joey

私にとっての主な(非常に興味深い)違いは次のとおりです。
"string" & Null-> "string"
while
"string" + Null-> Null

しかし、おそらくAccessのようなデータベースアプリではより便利です。

2
Patrick Honorez

連結関数があります。 たとえば

= CONCATENATE(E2、 "-"、F2)
0
wallyk