同じCSVファイルがPCによって文字化けする

このQ&Aのポイント
  • 新しいPCでCSVファイルを開くと文字化けしてしまう問題について
  • CSVファイルの文字コードを変更することで解決できる可能性があるが、作業量が膨大であるため現実的ではない
  • 旧PCで表示できることから、PCかエクセルが原因の可能性がある
回答を見る
  • ベストアンサー

同じ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あり 考えられる対処方法が思いつく方は教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • kawais070
  • ベストアンサー率52% (2242/4282)
回答No.1

Excel2007が発売された当初はUTF-8に対応していなかったけど、サービスパックでUTF-8対応が行われたのかもしれません。 新PCには、まだサービスパックが適用されていないのかも。 http://blog.goo.ne.jp/lloyd_vs/e/e75a697865ab5d295ac5abdf6604ac10 上記の記事を参考に、Office2007にサービスパックを適用してみてください。 (Microsoft ダウンロードセンターからダウンロードするのが一番確実かな?)

itatwaok
質問者

お礼

早速の回答ありがとうございます。今、出先なので帰宅後確認してみます。

その他の回答 (1)

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.2

同じバージョンのエクセルで、しかも「OS」の新しい方がダメとは・・・ 以下に示すプログラムは、最終手段としてお使いください。 以下のプログラムをメモ帳かテキストエディタに貼り付け、「~.vbs」という名前で保存します。 「~」の部分は、何でもかまいませんが、「.vbs」の部分は、必ず半角です。 できたプログラムファイル(「~.vbs」ファイル)を「csv」ファイル(必ず、すべて「UTF-8」)の存在するフォルダに放り込んで、ダブルクリックすると、すべての「UTF-8、csv」ファイルを、タブ区切りの「UTF-16、csv」ファイルに変換します。 どうして「タブ区切り」か、というと、エクセルでは、「UTF-16」の場合は、タブ区切りでないと、エクセルでちゃんと読み込まれないからです。 最後に「Finished!」と表示していますので、「OK」を押して、終了してください。 Option Explicit Dim a, b, f, m, n, r, s, t Set s = CreateObject("Scripting.FileSystemObject") Set f = s.GetFolder(".") For Each m In f.Files If LCase(s.GetExtensionName(m.Name)) = "csv" Then Set a = CreateObject("ADODB.Stream") a.Type = 2 a.Charset = "UTF-8" a.Open a.LoadFromFile f & "\" & m.Name b = s.GetBaseName(m.Name) Set t = s.OpenTextFile(f & "\" & b & ".xyz",2 ,True, True) r = a.ReadText(-1) r = Replace(r, ",", vbTab) t.Write(r) a.Close t.Close s.DeleteFile f & "\" & m.Name Set n = s.GetFile(f & "\" & b & ".xyz") n.Name = b & ".csv" Set t = Nothing Set a = Nothing Set n = Nothing End If Next Set s = Nothing Set f = Nothing MsgBox("Finished!") 簡単な説明です。 Option Explicit 「厳密に」というような意味ですが、気にしないでください。 Set s = CreateObject("Scripting.FileSystemObject") ファイルやフォルダを扱えるようにしていますが、今回は特に、「UTF-16」テキストファイルを扱うのにも必要です。 Set f = s.GetFolder(".") プログラムファイル(「~.vbs」ファイル)自身が存在するフォルダを取得してます。 For Each m In f.Files プログラムファイルの存在するフォルダ内のすべてのファイルを1つずつ処理。 If LCase(s.GetExtensionName(m.Name)) = "csv" Then もし、拡張子が「csv」なら、 Set a = CreateObject("ADODB.Stream") 「UTF-8」テキストファイルを扱うのに必要です。 a.Type = 2 a.Charset = "UTF-8" a.Open a.LoadFromFile f & "\" & m.Name 「UTF-8」ファイルを開いています。 b = s.GetBaseName(m.Name) ベースネーム(たとえば「xyz.csv」なら「xyz」の部分)を取得しています。 Set t = s.OpenTextFile(f & "\" & b & ".xyz",2 ,True, True) 「UTF-16」テキストファイルを新規作成しています。 r = a.ReadText(-1) 一気に全部読み込んでいます。 r = Replace(r, ",", vbTab) 「,」を「タブ」に置換しています。 t.Write(r) 「UTF-16」の方に書き込んでいます。 a.Close t.Close 閉じています。 s.DeleteFile f & "\" & m.Name 元の「csv」ファイルを削除。 Set n = s.GetFile(f & "\" & b & ".xyz") 今作成した「~.xyz」ファイル(「UTF-16」)を取得しています。 n.Name = b & ".csv" 名前を「~.csv」にしています。 Set t = Nothing Set a = Nothing Set n = Nothing End If Next 変数を解放しています。 を、繰り返しています。 Set s = Nothing Set f = Nothing MsgBox("Finished!") 最後に「Finished!」と表示しています。

itatwaok
質問者

お礼

す、すごいですね!びっくりしました。私のためにプログラムまで作ってくださりありがとうございます。BAに選ぶことでお礼をさせて頂きたかったのですが、エクセルのサービスパックをあてることで、表示できてしまったので、利用できませんでした。本当ありがとうございました。

関連するQ&A

  • csvファイルの文字化け

    とあるcsvファイルがあるのですが、 文字コードがEUCのためか、普通にExcelで開くと文字化けします。 仕方なく、Terapadで開いていますが、 ソートもできないしたいへん不便です・・・ 試しに、いちどExcelで開いて文字化けしたままソートをかけてから、 再度Terapadで開いてみたら、 最初からTerapadで開いた時には無かった文字化けが 新たに大量に発生してしまい、 全然意味がありませんでした(--;) Excelで文字コードを指定して開く方法はあるのでしょうか。 または、Excelと同じような表計算ソフトで、 文字化けせずにソートも出来るソフトは無いでしょうか。 素人質問でわかりにくかったら申し訳ありません。 よろしくお願いします。

  • csv excel文字化け永久対処

    あるシステムか抽出したcsvファイルについて、開くと文字化けします。メモ帳でみると、コードののころが、bom utf8 になっています。ansiに変えて保存しねから開くと、うまくいきます。 毎回この操作をせず、一回で開くほうほうは、ありますでしょうか。何らかの設定変更などで。 win10 chromeからのダウンロードをしたcsv Excelの、データとりこみからいく方法以外で。 よろしくお願いいたします。

  • csvファイル文字化け

    csvファイルをExcelで開くと文字化けしてしまいます。クライアントの人間が送ってきたファイルなのですが、クライアントは正常に開けるようです。何が文字化けの原因になっているのか、またどうすれば解決できるか教えてください。

  • VBで出力したCSVファイルの文字化けについて。

    VBで複数のCSVファイルから必要なデータのみを 新たなCSVファイルに出力するアプリケーションを作成しています。 処理自体は出力ファイルの作成まできちんとできるのですが、 エクセルで開くと文字化けが起きてしまいます。 文字化けが起きるのは漢字と片仮名(全角、半角両方)です。 ちなみにNotepadで開くと文字化けは起きていませんでした。 また、エクセルのほかにwordpadで開いても文字化けが起きていました。 入力用のCSVファイルの文字コードは分かっていません。 ファイルの読み込みはGetEncoding("Shift_JIS")で読み込んでいます。 文字化けに関する質問は他にも多数あり重複しているかもしれませんが 宜しくお願いします。

  • エクセルをcsv化すると文字化けするのを直したい

    エクセルをcsv化すると文字化けするのを直したいです。 文字コードをどうすればいいのかわかりません 教えてください。

  • PCの文字化けについて

    csvファイルをnotepad.exeでは正常に表示される日本語がGoogleスプレッドシートにインポートすると2倍と文字のみ文字化けします。 csvファイルはゆうちょダイレクトからDL(csv出力)したデータです。 ゆうちょダイレクトとGoogleで使用している文字コードの違いが原因と思いますが、どこで変更したら良いか不明です。ご存じの方、ご教示頂きたく宜しくお願いします。 OS:Windows10 HOME 64bit サイト閲覧 Google Chrome

  • 筆まめの名簿をCSVに落としましたが、CSVファイルが文字化けします。

    筆まめの名簿を人に頼んでCSVファイルに落としてもらいましたが、これをエクセルで読もうとすると文字化けしてしまいます。エクセルでどのような設定をすればCSVファイルが読めるようになるのでしょうか。 パソコン初心者ですので分かりやすく教えて下さい。

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

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

  • メールで添付されたCSVファイルを開くと文字化けしてしまいます。

    ソフトにあまり詳しくないので質問させてください。 仕事でとあるレポートがCSVファイルでメールに添付されてくるのですが、そのファイルをそのまま開くと文字化けしてしまいます。EXCELファイルで文字化けさせずに開きたいのですが、どのようにしたらよいでしょうか? メールソフトは「Becky」を使用しています。 Outlookを使用している人にも同じCSVファイルが送付されるのですが、その人は、きちんと文字化けせずに開けます。 わかりやすく教えていただけると助かります。 よろしくお願いします。

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

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

専門家に質問してみよう