• 締切済み

UTF-8のCSVファイルを開く

エクセル2000でUTF-8の文字コードで作られたCSVファイルを開くと 文字化けしてしまいます。  文字化けせずに開く方法を御存知の方、教えてください。  VBAを使う方法でも構いません。(コードを教えてください。) 宜しくお願いします。 以上

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

メモ帳や、テキストエディターで変換してから読み込むという解もある様ですが、自分でも使う事があるかもと思ってやってみました。ADODB.Streamで検索すると、情報は多数ヒットします。 ・WEB検索して、ちょこちょこと合成したコードなので、安定動作は?です。 ・メモリーに全部読み込んで処理しているので、巨大なCSVだとエラーになるでしょう。その場合は、一行ずつ読み込んで処理する様にする必要があります。 ・改行はCrLfと、Lfに対応しているつもりです。 Sub read_UTF8_CSV() Dim myStream As Object Dim buf As String, buf2 As Variant, buf3 As Variant, buf4() As Variant Dim i As Long, j As Long Const adReadAll As Long = -1 Const adtypetext As Long = 2 Set myStream = CreateObject("ADODB.Stream") With myStream .Type = adtypetext .Charset = "UTF-8" .Open .LoadFromFile (ThisWorkbook.Path & "\test.csv") buf = .ReadText(adReadAll) .Close End With Set myStream = Nothing buf2 = Split(buf, vbCrLf) If UBound(buf2) = 0 Then buf2 = Split(buf, vbLf) If UBound(buf2) = 0 Then Exit Sub End If ReDim buf4(1 To UBound(buf2) + 1, 1 To UBound(Split(buf2(0), ",")) + 1) For i = 0 To UBound(buf2) buf3 = Split(buf2(i), ",") For j = 0 To UBound(buf3) buf4(i + 1, j + 1) = buf3(j) Next j Next i Range("a1").Resize(UBound(buf4, 1), UBound(buf4, 2)) = buf4 End Sub

  • avanzato
  • ベストアンサー率54% (52/95)
回答No.1

こんにちは。 過去に回答をした中に類似する案件があります。 --------------------- CSVデータがEUC-JPで文字化けしてしまう。 質問番号:5511095 --------------------- この番号をページ↑で検索して見てください。 この回答で載せているフリーソフトはUTF-8による文字化けも対応しています。

B_BOSS
質問者

お礼

有難うございました

関連するQ&A

  • ExcelでUTF8のcsvファイルを開く方法

    UTF8でエンコーディングされたcsvファイルを、 Excelで開いて表示すると文字化けしてしまいます。 文字化けせずに表示する方法をお教えてください。

  • UTF16のCSVファイルをUTF8に変更する方法

    仕事でUTF16のCSVファイルをUTF8に変換する必要があって調べています。 秀丸やフリーソフトなら可能なのですが、お客さんに極力操作させたくないので、バッチファイルで呼び出せたらいいと考えています。 JAVAを使った、UTF16で読み込んでUTF8で書き出すプログラムというのも思いついたのですが、処理速度が懸念材料です。 上記以外の方法で、文字コード変換を行う方法をご存知でしたら、教えてください。

  • UTF-8で作成されたCSV形式のファイルを編集できるソフトを探してい

    UTF-8で作成されたCSV形式のファイルを編集できるソフトを探しています。 拡張子をtxtになおして、エクセルで文字コードを指定して開く方法もありますが 結構面倒なので。 WindowsでXPです。 ご存じでしたら、是非お教えください!!

  • ExcelでUTF-8のcsvデータを表示するには

    あるデータベースから出力したCSV形式のデータがあるのですが、 文字コードがUTF-8なので、直接Excelで開くと文字化けがあります。 なので、一度出力したcsvファイルの拡張子をtxtに変えて、 それをExcelから開くという作業をして対応しています。 (そうすると文字コードが選択できるので) しかしcsvをtxtに変えてExcelで開くと、 思いもよらぬところで改行されてしまい、 正しくデータが表示されません。 例)csvでそのまま開いたとき ユーザーコード 苗字 名前 住所 001    山田 太郎 東京都大田区鵜の木 1-2-3 002    高橋 愛子 東京都港区六本木2-3-4 ↓ txtに変換したのちにexcelで開いたとき ユーザーコード 苗字 名前 住所 001    山田 太郎 東京都大田区鵜の木 1-2-3                  ←余計な改行が発生 002    高橋 愛子 東京都港区六本木2-3-4 これを回避するために、一度csvで開いて、 セル内改行コードを空白と置き換えるという作業をしたのですが、 それでも上記のような改行が発生してしまっています。 UTF-8のcsvを文字化けなくExcelで開く方法は他にはないでしょうか? また上記方法の改善点はありますでしょうか? ご助言宜しくお願いします。

  • UTF-8にエンコードされたCSVファイルをメモ帳で編集

    UTF-8にエンコードされたCSVファイルをメモ帳で編集しても文字コードはそのままなのでしょうか? 上記UTF-8コードCSVファイルをメモ帳で見ると、ちゃんと文字コード変換されてきれいに見えます。 編集作業として、レコード(行)の削除のみです。 よろしくお願いいたします。

  • テキストファイルウィザードを使用したCSVファイル読み込みの挙動について【Excel2003】

    テキストファイルウィザードを使用したCSVファイル読み込みの挙動について【Excel2003】 <CSVファイル例> "aaaa","bbb<改行コード 0d0A>bb","ccc" 上記のようなCSVファイルを、 ダブルクリックにてExcel起動すれば正常に表示されますが、 テキストファイルウィザード(データ→外部データ取り込み→データの取り込み) を使用して、読み込みを行うと改行されて表示されてしまいます。 これは、Excelの仕様なのでしょうか? ご存知の方いらっしゃいましたら教えていただけますでしょうか? 現在の本質的な問題は、 ------------------------------------------------------------------- Excel2003にて、文字コードがUTF-8のCSVファイルを下記方法にて読み込む ・テキストファイルウィザードを使用 ・文字コードをUTF-8 ・カンマ区切り設定 で読み込みを行うと文字化けしないで表示されるのですが ダブルコーテーション中のデータ内に改行コード0d0aが含まれると 改行されてしまいます。 ------------------------------------------------------------------- と言う現象の調査をしております。

    • 締切済み
    • PHP
  • 同じCSVファイルがPCによって文字化けする

    新しくノートパソコンを購入したのですが、タイトルの通り、CSVファイルの文字化けで困っています。 状況としては以下の通りです。 【状況】 ・CSVファイルを今まで使っていた旧PCのエクセル2007で開くと正しく表示する。 ・同じCSVファイルを新PCのエクセル2007で開くと文字化けする。 新PCでも正しく表示したいのですが、どのようにしたらよいでしょうか? CSVファイルの文字コードを変更すれば、表示できるようになるかもしれませんが、CSVファイルが膨大にあり、すべてその作業をするのは現実的ではない状況です。 同じファイルを旧PCで表示できていることから、PCかエクセルが起因なのではと思うのですが、、、 私なりにネットで調べて必要?と思われる情報を下記に記載します。 【情報】 旧PC ASUS製 OS:windows7 新PC HP製 OS:windows10 旧および新PCのexcel2007の主編集言語は日本語に設定済 CSVファイルの文字コードはUTF-8、BOMあり 考えられる対処方法が思いつく方は教えていただけないでしょうか?

  • ExcelからCSVファイルへの変換と文字化け

    エクセルからCSVファイルへの変換したときの文字化けに悩まされています。 たとえば、 千代田区大手町19-1 という住所がはいっているセルがあり、CSVに変換すると、 千代田区大手町19?1 となります。 エクセルで開いても、テキストエディタで開いても「-」が「?」に文字化けします。 エンコードの問題なのでしょうが、どうすれば文字化けが解消されるのか、わかりません。 エクセルはデフォルトではSJISで保存されるようなので、 UTF8で保存すれば、文字化けはなくなるのかもしれません。 ただ、 http://web-laboratories.com/excel-csv こちらのサイトにあるように、 [WEBオプション]をつかってUnicode[UTF-8]で保存しても、 テキストエディタで開きなおすと、SJISのままになっているようです。 文字化けをさせないCSVファイルへの保存のやり方を教えてください。

  • VBAでUTF-8テキストファイル作成したい

    VBA,文字コードなどにあかるくない初心者です。 VBAを利用して、エクセルのとあるセルに記載されている文字を UTF-8形式でテキストファイルに出力させたいと考えています。 (多言語対応のため・・・、韓国語や中国語でセルに記載された文字を  UTF-8形式でテキストファイルに文字化けしないよう出力させたいためです。) どのように実現が可能か、いくつか検索をしてみましたが 難しくてわかりませんでした。 VBAのサンプルコードを教えていただけないでしょうか。 もしくは、初心者でもわかりやすい実現方法が記載されたサイトを教えていただけないでしょうか。 よろしくお願い致します。 ※今文字コードを意識せずに下記のようなVBAを書いています。(簡略化して記載しています。) Sub test() Open "C:\Sample\Data.txt" For Output As #1 'ファイルを新規作成 'データ書き込み Print #1, Cells(1, 1) Close #1 End Sub

  • Excel2000~2003でUTF-8BOM出力

    お世話になります。 Excel2000~2003ファイルで、 (現在、Excel2000ファイルを受け取って、  Excel2007上で互換モードとしてVBA作成中) で、ワークシート内容を、 「UTF-8のBOM付き」で、 VBAで、 (出来ましたらFSOを利用して) CSV出力する方法が知りたいです。 ネット上を探すとCSV出力する方法は、 いろいろありましたが、 サンプルを試しに動かして出力されたCSVファイルの 文字エンコードはShift-JISでした。 以上になります。 よろしくお願いします。

専門家に質問してみよう