電子書籍の厳選無料作品が豊富!

Excel 2002+VBAで、Excelシート上にフランス語で入力してもらった内容をテキストファイルに書き出す処理をしようと思っています。

ところが、VBAで
range("A1").value
とすると、セディーユなどの区分符号が正しく表示されません。

例えば、Francaisなどが正しく出ません。
(セディーユが正しく出せないようなので、ここに正しい単語も書けません)

どうにかして、区分符号を含めた正しい文字をVBAで取得することができないでしょうか?

A 回答 (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/filesy …
    • good
    • 0
この回答へのお礼

なるほど、MsgBox等では正しく見えてないのですが、実際はちゃんとした文字を持っていたのですね。

教えていただいたやり方だとエンコードがUTF-16になってしまうので、別のUTF-8で出力できるクラスモジュールを使って出力することにしました。

ただ、考え方としては非常に参考になりました。
ありがとうございました。

お礼日時:2008/01/18 03:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!