
はじめまして、エクセルのシートを文字コードを指定して出力したいのですが、どうやってよいかわからず困っております。
みなさんご教授いただければと思います。
■やりたいこと
複数のシートがある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自体は初心者で、サンプルのコードを書き換えて使っている程度です。
皆さんのお知恵を貸していただければと思います。
よろしくお願いいたします!!!
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
Excel から Text形式で保存する場合は Unicode に対応できますが
CSV形式には対応していません。
このあたりの情報は以下のHpに掲載されています。
■Excel で Unicode 文字を含むデータを CSV形式で保存すると…
→ http://kaitousearch.blog37.fc2.com/blog-entry-31 …
◆Unicode については
Wikipedia → http://ja.wikipedia.org/wiki/Unicode
◆VBAにおけるUnicodeの取り扱い
http://codezine.jp/article/detail/1718
対応策としてはカンマを列に挿入するしかなさそうです。
その状態でText形式で保存すればCSVと同じになると思います。
回答ありがとうございます!!
質問の書き方がCSV出力のコードになっていまして申し訳ありません。
.txt出力(UTF-16)が出来れば問題はありません。
回答して頂いたURLを参考にして、試行錯誤してみます!!
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 に変換してしまうしかありません。
ダメだったら、一度、こちらでも試してみます。
この回答への補足
回答ありがとうございます!!
私のわがままなのですが
可能であれば、エクセルVBA上で処理をまとめたいです。
質問の書き方がCSV出力のコードになっていまして申し訳ありません。
.txt出力(UTF-16)が出来れば問題はありません。
回答して頂いたURLを参考にして、ちょっと書いてみます~
以上、よろしくお願いします!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- Visual Basic(VBA) VBAで出力したCSVファイルの先頭にカンマを挿入したい 5 2022/10/14 12:20
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) 別ブックからシートのコピー 3 2022/04/01 20:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
真空管 300 B の前段について
-
FLEXSOLARパネルからAmazonで買...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
Accessのテーブルからcsv出力す...
-
COBOLのMOVEで桁数が異なる場合
-
printfとputcharの違いは
-
4種類(A4縦、A4横、A3縦、A3横)のヘ...
-
【VBA】PDFを2in1で出力したいです
-
テキストファイルから特定の文...
-
【ExcelVBA】最終行の取得で困...
-
SYSLOGとSNMP
-
【エクセル、並び替えについて】
-
printfですぐに出力
-
PIC16F88のアナログコンパレー...
-
【UWSC】WEBページ中の特定文字...
-
VBAでPowerPointからExcelにレ...
-
ACCESSからExcelへエクスポート...
-
1〜50まで順に数字を入力し、3...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
PD充電器について
-
cout と cerrの違い
-
スマホ充電器購入にあたり
-
Accessのテーブルからcsv出力す...
-
MMDでavi出力が出来ない
-
printfとputcharの違いは
-
VBAのExecメソッドで画面を非表...
-
TV出力ポートをOFFにすれば良い...
-
COBOLのMOVEで桁数が異なる場合
-
VBAでテキスト出力時のスペース...
-
ACCESS クエリ→フォーム...
-
coutで出力した文字を消去する...
-
4種類(A4縦、A4横、A3縦、A3横)のヘ...
-
Windows Formアプリからコンソ...
-
コンセントの電力は入力と出力...
-
C#でアクセス権限の取得方法が...
-
【VBA】PDFを2in1で出力したいです
おすすめ情報