• 締切済み

エクセルで指定のシートを指定の文字コードで出力する方法

はじめまして、エクセルのシートを文字コードを指定して出力したいのですが、どうやってよいかわからず困っております。 みなさんご教授いただければと思います。 ■やりたいこと 複数のシートがあるxlsファイルがあり、その中で特定のシートを UTF-16の文字コードで.txt出力したいです。 ■現在理解していること 【その1】 shift-jisで出力する方法は、以下のコードで行えることがわかって います。(以下のコードはCSV形式での出力ですが気にしないでください) ------------------------------------------ ''''''''''''''''''''''''''''''''' '指定したシートをcsv出力 ''''''''''''''''''''''''''''''''' Sub aaa_CSV出力() Dim Sh As Worksheet Dim strName As String Application.ScreenUpdating = False Application.DisplayAlerts = False '定型はここから Sheets("シート”).Activate 'csv出力したいシート名(=ファイル名) strName = ActiveWorkbook.Path & "\csv\" & ActiveSheet.Name & ".csv" 'csv出力する場所 'strName = "D:\csv_out\" & ActiveSheet.Name & ".csv" 'csv出力する場所 ActiveSheet.Copy With ActiveWorkbook .SaveAs Filename:=strName, FileFormat:=xlCSV .Close savechanges:=False End With End Sub ------------------------------------------ 【その2】 以下の参照設定を有効にして、以下の機能を使用しないと おそらく文字コードの指定は厳しいと、認識しています。 Microsoft ActiveX Data Object X.X Library 当方VBA自体は初心者で、サンプルのコードを書き換えて使っている程度です。 皆さんのお知恵を貸していただければと思います。 よろしくお願いいたします!!!

みんなの回答

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.2

Excel から Text形式で保存する場合は Unicode に対応できますが CSV形式には対応していません。 このあたりの情報は以下のHpに掲載されています。 ■Excel で Unicode 文字を含むデータを CSV形式で保存すると… → http://kaitousearch.blog37.fc2.com/blog-entry-312.html ◆Unicode については Wikipedia → http://ja.wikipedia.org/wiki/Unicode ◆VBAにおけるUnicodeの取り扱い   http://codezine.jp/article/detail/1718 対応策としてはカンマを列に挿入するしかなさそうです。 その状態でText形式で保存すればCSVと同じになると思います。

kazumin39
質問者

お礼

回答ありがとうございます!! 質問の書き方がCSV出力のコードになっていまして申し訳ありません。 .txt出力(UTF-16)が出来れば問題はありません。 回答して頂いたURLを参考にして、試行錯誤してみます!!

すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 ここの質問者さんの書いているコードを少し変えれば可能なはずです。 http://oshiete1.goo.ne.jp/qa5476986.html ご本人は、自分のコードで納得されていないようですが、私が調べた限りでは、問題ないです。 UTF.Charset = "utf-8"    ↓ UTF.Charset = "UTF-16" としてあげるだけでよいはずです。 >以下の機能を使用しないと >Microsoft ActiveX Data Object X.X Library 参照設定する事前バインディングでも、上記のコードのように、実行時バインディングでも、どちらでも良いでしょう。負担はそんなに多くはないはずですから。 CSVが、文字化けなどしていないとしたら、一旦、通常の方法でCSVに出力した後に、UTF-16 に換えてしまってよいと思います。文字化けが存在するのでしたら、出力の時に、String 型変数に行か全文を代入して、UTF-16 に変換してしまうしかありません。 ダメだったら、一度、こちらでも試してみます。

kazumin39
質問者

補足

回答ありがとうございます!! 私のわがままなのですが 可能であれば、エクセルVBA上で処理をまとめたいです。 質問の書き方がCSV出力のコードになっていまして申し訳ありません。 .txt出力(UTF-16)が出来れば問題はありません。 回答して頂いたURLを参考にして、ちょっと書いてみます~ 以上、よろしくお願いします!!

すると、全ての回答が全文表示されます。

関連するQ&A