はじめまして、エクセルのシートを文字コードを指定して出力したいのですが、どうやってよいかわからず困っております。
みなさんご教授いただければと思います。
■やりたいこと
複数のシートがある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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
VBAでテキスト出力時のスペース...
-
MMDでavi出力が出来ない
-
cout と cerrの違い
-
コンセントの電力は入力と出力...
-
エクセルVBAにて アルファ...
-
4Kの外部モニターに出力すると...
-
ACCESSからExcelへエクスポート...
-
coutで出力した文字を消去する...
-
Anker社の充電器について。 Ank...
-
エクセルで英字と数字を組み合...
-
TV出力ポートをOFFにすれば良い...
-
プログラムについての質問です...
-
Accessのテーブルからcsv出力す...
-
【PowerPoint VBAの高速化】
-
タッチパネルの特性
-
VBAで出力したCSVファイルの先...
-
COBOLで可変長ファイルの出力に...
-
wsprintfで浮動小数を扱うには?
-
excel vbaでテキストの文字検索
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
MMDでavi出力が出来ない
-
プログラムについての質問です...
-
COBOLのMOVEで桁数が異なる場合
-
cout と cerrの違い
-
コンセントの電力は入力と出力...
-
スマホのバッテリー消費につい...
-
アクセスでエクセルに出力する...
-
PC電源は、出力DC12VとDC5Ⅴで...
-
Windows Formアプリからコンソ...
-
ACCESS クエリ→フォーム...
-
VBAのExecメソッドで画面を非表...
-
printfの書式%.*s
-
無線とかアンテナに関しの質問...
-
【ExcelVBA】最終行の取得で困...
-
ACCESSからExcelへエクスポート...
-
Accessのテーブルからcsv出力す...
-
CRC16計算について
-
Excel VBAで値を変えながら、pd...
おすすめ情報