• ベストアンサー

Excel+VBAでフランス語を扱いたいのですが・・・

Excel 2002+VBAで、Excelシート上にフランス語で入力してもらった内容をテキストファイルに書き出す処理をしようと思っています。 ところが、VBAで range("A1").value とすると、セディーユなどの区分符号が正しく表示されません。 例えば、Francaisなどが正しく出ません。 (セディーユが正しく出せないようなので、ここに正しい単語も書けません) どうにかして、区分符号を含めた正しい文字をVBAで取得することができないでしょうか?

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 >range("A1").value >とすると、セディーユなどの区分符号が正しく表示されません。 見えないだけです。たとえば、UserForm など、独立させた TextBox では見えたはずです。 テキストファイルに書き出すなら、単に、名前を付けて保存で、[Unicode テキスト]出力すれば、それで出来るはずです。あえて、VBAということもないとは思いますが、もし行うなら、 以下を使います。 CreateTextFile ([in] Name, [in] OverWrite, [in] Unicode) OverWriteがTrue で上書き Unicodeの引数をTrue 例: Set FS = CreateObject("Scripting.FileSystemObject") Set txf = FS.CreateTextFile(filename, True, True) txf.Write (script_text) txf.Close 参考:

参考URL:
http://homepage2.nifty.com/pasocon/nyumon/filesystemobject/createtextfile.html
katsu2000x
質問者

お礼

なるほど、MsgBox等では正しく見えてないのですが、実際はちゃんとした文字を持っていたのですね。 教えていただいたやり方だとエンコードがUTF-16になってしまうので、別のUTF-8で出力できるクラスモジュールを使って出力することにしました。 ただ、考え方としては非常に参考になりました。 ありがとうございました。

関連するQ&A