エクセルのVBAに関する質問です。S-JISの CSV ファイルを読み込んで、UTF-8 に出力したいのですが、http://d.hatena.ne.jp/niemands/20090316/1237225383 のように一行ずつでないとだめなのでしょうか?

一括でできる方法あったら教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/07/31 18:00:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:hathi No.1

回答回数216ベストアンサー獲得回数49

ポイント60pt

見当違いの回答かもしれませんが、その場合はごめんなさい。

VBAのコードを使わなくても良いと言う条件での回答です。

 

①元になる[S-JISの CSV ファイル]甲は、テキストファイルですよね。

②ファイル甲の文字コードを、UTF-8 or UTF-8Nに 変更したファイル乙を作るのですか?

テキストエディタで(.txtや .csvの)ファイルを開いて、その文字コード(多くの場合Shift-JIS)を、指定したい文字コード(UTF-8/UTF-8N)に指定し直してファイルを保存し直してはいかがでしょうか。

 

[テキストエディタで、ファイル甲を開いて、ファイル乙の名前を付けて、文字コード形式をUTF-8 or UTF-8Nに指定して、保存する]という単純なことではダメでしょうか?

  TEPA エディタ http://www.greenspace.info/tepa/

  MKEditor  http://www.mk-square.com/home/software/mkeditor/download/index.h...

  windowsのアクセサリにある『メモ帳』ではできないようですが、私が普段使っている

  上記のフリーのエディタは、保存時にコードを指定して、.txtで保存しても、.CSVで

  保存しても、問題なく保存時指定の文字コードでファイルが作られるように見えます。

 

すべて、手作業になりますが、1ファイル1回の処理なので、それほど手間ではないと思います。

VBAで、テキストエディタを起動させて、ファイル甲を読み込ませ、文字形式を指定して、ファイル乙名で保存すると言うのは、面倒そうです。

 

世の中にフリーの文字コードコンバータが沢山あるようですが、私は使ったことがないので、

使いやすさなどわかりません。

 http://download.goo.ne.jp/software/category/win/util/text/conv/c...

 

私はこれまでは、ほとんどテキストエディタで開いて、コードを指定して保存しなおしていました。

  • id:ardarim
    1行ごとになにか制御が必要なのでなく、単純にUTF-8のCSVファイルを吐き出したいだけであれば、まずS-JISでCSVファイルを出力し、外部の文字コード変換プログラムを呼び出してS-JISからUTF-8にファイルごと変換で十分だと思います。

    例えばrtfconvであれば、コマンドラインから呼び出してS-JISからUTF-8に変換もできますので、VBAからShell関数でコマンドラインを指定して呼び出せます。
    http://www5b.biglobe.ne.jp/~harigaya/rtfcnv.html
    rtfconv -cJ -cUTF8 SJISファイル > 変換後ファイル名
  • id:degucho
    提示のサンプルはadReadLineですがadReadAll指定でいけませんかね?
    http://msdn.microsoft.com/ja-jp/library/cc364207.aspx
  • id:t-wata
    内部で1行毎読み込んだり1行毎書き込んだりしてようが関係無いでしょう。
    結局ループで全部処理するんだから。

    小規模なCSVなら一括だろうが1行毎だろうが体感できるほど処理速度なんて変わらないだろうし、
    大規模なCSVファイルなら尚更一括で読み込んで変換するのはメモリを大量に必要とするので危険だし。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません