• ベストアンサー

VBAの文字列の中に”(全角のダブルコーテーション)を使う

VBAのStringの中に”(全角のダブルコーテーション)を使おうとしているのですが、VisualBasicEditorにより自動的に ""(半角のダブルコーテーション2つ)に変換されてしまいます。 Dim str as String str = "abc”def"    ↓ str = "abc""def" 文字列中に全角のダブルコーテーションを使う方法を教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

#1のmshr1962です。 強制的にやるなら str = "abc" & Chr(-1449) & "def" で可能ですね。

zuntac
質問者

お礼

再び回答いただきありがとうございます。chr(-1449)でうまくいき、なんとかプログラムが動くようになりました。ただし、本当は Private Const str As String = "abc" + chr(-1449) としたかったのですが、chrを使うとこの書き方は許されないようです。strは定数ではなく、変数を後から初期化する方法で使うこととしました。

その他の回答 (3)

noname#22222
noname#22222
回答No.4

s_husky です。 VBエディターには反映さえませんが、MSGBOXで表示したりするとちゃんと反映されます!

zuntac
質問者

補足

オートコレクトオプションに設定するとセルE11に "" (半角x2)と書くと確かに ”(全角)になります。そして以下のsubを実行するとMsgBox内に”(全角)が表示されます。 Sub test()   MsgBox (Range("E11")) End Sub でも、やりたいのはこうゆうことではなくて、VBAの中で文字列として”(全角)を記述したいのです。

noname#22222
noname#22222
回答No.2

[ツール]-[オプション]-[スペルチャック] [オートコレクト オプション(P)] "" -> ” を登録すると良いです。

zuntac
質問者

お礼

回答ありがとうございます。 これはエクセルでの設定だと思いますが、VisualBasicEditorには影響しないみたいです。 そのため、VisualBasicEditorの中では相変わらず「”」は「""」に変換されてしまいます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

上記の""の状態で文字列中に一個の"になりますので、そのままお使いください。 イミディエイト ウィンドウで print str とか msgbox str とすれば表示が確認できます。 ※文字列の初めや最後の場合は"""と3個つながるようになります。

zuntac
質問者

お礼

早速の回答ありがとうございます。 でも、全角のダブルコーテーションが、半角のダブルコーテーション2個に変換されているので、msgbox strとすると半角のダブルコーテーション1個が表示されるのではないでしょうか。msgbox strで全角のダブルコーテーションが表示されるようにしたいのですが…