• ベストアンサー

ExelのVBAでダブルクォートをセルに埋めるには?

文字列の中にダブルクォートを入れるにはどうするのでしょうか? C言語であれば、\" と書くところですが。 Range("A1") = "<img src=""" & DataName & "."">" 、のように、 ダブルクォートを2つ続けると、Exel上で見ると期待どおりに表示されますが、 テキスト形式に保存してからファイルをみると、ダブルクォート2つ入ってます。 エクセルでデータベース管理をし、VBAでそれを編集して、 HTMLを自動生成するようなツールを作成したいのですが、 ダブルクォートをテキストに吐き出せなくて困っています。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

下記を参考にしてください。 Sub test01() a = "" For i = 1 To 20 a = a & Chr(34) Next i Range("a1") = a End Sub --- Sub test02() Open "c:\my documents\aaa11.txt" For Output As #1 a = Chr(34) Print #1, a Close #1 End Sub メモ帳で開くと、「”」の1文字が書き込まれていました。#1解答の「補足」の事実の状況が掴めません。

kaz-sugi
質問者

お礼

Open "c:\my documents\aaa11.txt" For Output As #1 こんな懐かしいステートメントが使えるとは知りませんでした。。。 おかげで、やりたいことが全て解決いたしました。 ありがとうございました。

その他の回答 (2)

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.3

DataName = "hoge" Range("A1") = "<img src=""" & DataName & "."">" 上記で、A1に書き込みしました。 エクセル表示上:<img src="hoge."> テキスト形式保存:"<img src=""hoge."">" このようになると言いたいわけですよね? これは、エクセルが正常にファイルの内容を取得する上で決まりの形式の為です。 セルの内容に"や,等が含まれる場合に1セル内の値である事を識別する為に""で囲まれます。 そして、終わりの"で無いので文字である事を意味する為に""となるわけです。 これは、仕様の為に仕方がありません。 kaz-sugiさんは、エクセル表示上の形式でファイルに保存したいのですよね? それなら、以下2通りの方法があります。 1.セルの内容を自分で取得してimogasiさんのように手動でファイルを保存する 2.excelのテキスト形式保存後、保存したファイルを開きいらない"を除いてファイルを保存 以上の方法でするしかないですよ。参考になれば幸いです。

kaz-sugi
質問者

お礼

ありがとうございました。 今後ともよろしくおねがいいたします。

noname#102878
noname#102878
回答No.1

「""」の替わりに Chr(34)を使ってみてはどうでしょうか?

kaz-sugi
質問者

お礼

ありがとうございました。

kaz-sugi
質問者

補足

回答ありがとうございます。 エクセルの画面上では期待どおりですが、 テキスト形式でファイルへ保存すると、 やはりダブルクォートが2つ並んで入っているようです。

関連するQ&A