<スポンサーリンク>

VBAダブルコーテーション内の""の使い方!

この記事は約3分で読めます。
コピーボタン
記事のタイトルとURLをコピー
<スポンサーリンク>

スポンサーリンク

VBA,ダブルコーテーション内の""の使い方!

VBAで数式を作成するときに、
数式を「”」ダブルコーテーションで囲いますが、
数式内にも「”」があるとエラーが起こってしまいます。

これを防ぐためには、数式内の「”」を「””」と2個にすることで回避できます。

実例を使って紹介

VBAで数式を記載するとき、一番簡単なやり方は、

①エクセルのセル内に数式を作り、コピーする。
②range("A1").value="数式" として、数式部分にペーストする

という手順ではないでしょうか?
しかし、数式内に「"(ダブルコーテーション)」を使ってあるときには、
エラーとなってしまいます。

例えば、

=IF(A2="男性","〇","×") を上記のやり方で実装すると

RANGE("A1").VALUE="=IF(A2="男性","〇","×")"
となりますが、下記の通りエラーが出てしまいます。

なぜこのような結果になるかというと、
””に囲まれた範囲は文字列とみなされるため、
"=IF(A2=" 男性 "," "," × ")"

青色 ⇒ 文字列
緑 ⇒ 何かの変数???
と、コンパイラーが認識してしまうからです。

これを回避するためには、数式内の「"」を2回繰り返し「""」とします。

"=IF(A2=" 男性 ",""," × ")"

"=IF(A2="" 男性 "","""","" × "")"

で回避することができます。

応用編

先ほどのことが分かったとして、
下記コードで各セルに何が表示されるかお分かりですか?

Sub ダブルコーテーションの使い方()

S = "TEST"

Range("A1").Value = " " & S & " "
Range("A2").Value = """ & S & """
Range("A3").Value = """" & S & """"

End Sub

解説

1つずつ解説していきます。

分かりやすいように、
文字列として認識させるための「"」を赤色
数式に使用するための「”」を緑色として
区別していきます。

A1

セルA1の数式の「"」に色を付けると下記の通りとなります。

" " & S & " "

文字列として認識させるために「”」が使われており、
その間は「 (空白)」となっていますので、表示結果は「 TEST 」となります。

A2

セルA2の数式の「"」に色を付けると下記の通りとなります。

""" & S & """

この場合、一番左端、右端の「"」は文字列を表すもの。
その中にある「""」は数式に使用するための「"」になります。

結果として、Sも含めてすべてを文字列として認識しますので、「" & S & "」が表示されます。

A3

セルA3の数式の「"」に色を付けると下記の通りとなります。

"""" & S & """"

この場合、""""は文字列を表す「"~"」に囲まれた「""」ですので、左側、右側は「"」
と表示されます。

結果として、「”」 & S & 「"」となりますので、表示は"TEST"となります。

まとめ

非常に複雑ですが、
まずはきちんと数式を作った後に、
「”」⇒「""」に変更していくといいと思います。

コメント欄

<スポンサーリンク>
タイトルとURLをコピーしました