1つだけ過去を変えられるとしたら?

下記の書式で、CSV出力させています。
途中割愛の部分は変数をカンマ区切りで1行ずつ積み重ねている過程なので
影響ないと思って省略しました。

Open filePath For Output As #1 ' 作成するファイルを開く

・・・途中割愛・・・

Close #1 '作成するファイルを閉じる

このまま出力すると秀丸だと日本語(Shift-JIS)
Windowsメモ帳だとANSIとなったのですが、
UTF-8(BOM無)で欲しいという指定があったので、どんな記述を加えたら実現できますか?

A 回答 (3件)

ご質問の話とは違うのですが、私の場合はAutoCADからCSV出力するとBOMありUTF-8で出力され、それを読み込む方のソフトはBOM無しでしか受け付け無いので、毎回メモ帳で開いて「名前を付けて保存」で文字コードをBOM無しUTF-8に変えて保存する。

ということをしています。

最初からBOM無しで出力出来れば、もしくは自動変換するツールがあればいいのですが、今のところは、メモ帳に頼ってますね。
    • good
    • 0

BOMありUTF-8だと、回答の付いているADODB.Stream で出来ます。


BOM無しUTF-8は指定できないので、一旦BOMありUTF-8でファイルを作ったあとで、先頭3バイトを削る処理を追加する必要があり、やや面倒です。

ファイルを渡すのに人手が介在するなら、人手でメモ帳などで変換するのが楽です。
人手を介さず自動的に連携するなら、VBAのみで行うのであれば、上記のような処理が必要です。エンコーディング変換用の外部コマンド(iconvとかnkfとか)が使用可能ならShift_JISで書いてコマンドを呼び出して変換するのが楽です。
    • good
    • 0

こんにちは



>どんな記述を加えたら実現できますか?
書き加えるというよりは ADODB.Stream を利用して出力してください。
https://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub …
    • good
    • 1
この回答へのお礼

ありがとう

お礼日時:2024/08/06 19:18

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A