• ベストアンサー

VBAでテキストを書き出す時に、文字コードを指定するには?

VBAでテキストを書き出す時に、たとえば、 shift_jisなど、文字コードを指定して書き出すには どうすればいいのでしょう? unicodeはFSOを使えばいいことはわかったのですが…。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

FSOを使って書き出す場合、規定値はシフトJISです。 一般的な、文字コードの変換は難しいので、 何もかもやろうとするのではなくて、 いったん出力したものを、NKFとか別のツールを使って変換する(プログラムの呼出はできたと思いますが)のはどうでしょうか NKFとかのDLLをVBAから使うという手もあるとも思いますが、できるかどうかはわかりません。

door_to_tomorrow
質問者

お礼

ありがとうございます^^。 NKF32.DLLを使用する方法なら、 見つけることができました。 VBの例ですが・・・。 NKF32.DLL で文字コード変換 http://www.geocities.co.jp/SilkRoad/4511/vb/nkf32dll.htm #2さんの紹介のツールも参考にして、 いろいろチャレンジしたいと思います。

その他の回答 (1)

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

VBAでは文字コード変換の機能や、文字コードを指定してファイルへ書きだしの固有の機能・関数等はありません。 従って自分でそう言うルーチンを用意しなければなりませんが (A)ロジカルな入出力の都度変換して書き出す(変数レベル)。 (B)一旦既定の文字コードで書き出し(ファイルレベル)、その後ファイル全体を対象に、指定した文字コードにファイル変換する(バッチ的処理)。 オフコン以上だと、文字コードの変換は、メーカー提供のユティリティプログラムがあって、それでファイル単位で行うのが普通ですが、パソコンでは自分で用意しないといけない。 変換プログラムは自作は結構複雑で難しく、バグがあると影響も大きい。 従って(A)タイプの関数か(B)タイプのレディメイドのソフトを探して利用せざるを得ないと思います。 VECTORなどに http://www.vector.co.jp/soft/win95/prog/se274599.html http://computers.yahoo.co.jp/bin/v_searchf?p=JIS+EUC+%95%CF%8A%B7&y=y&b=21 (使ったわけではないが、)紹介があります。

door_to_tomorrow
質問者

お礼

ありがとうございます^^。 紹介してくださった、ツールを使用して、 いろいろやってみます!

関連するQ&A