• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロを使った文字化けしないCSV取込について)

マクロを使った文字化けしないCSV取込について

このQ&Aのポイント
  • マクロを使って、csvをインポートする方法について解説します。csvを取り込むと日付になってしまう問題を解決するためのコードについても紹介します。
  • 毎行に数字と記号が並んだデータを含む元のcsvをマクロを使ってインポートする際、日付に変換される問題が発生します。この問題を解決するためのコードの実装方法について解説します。
  • マクロを使用してcsvをインポートする際に、日付に変換される問題が発生します。この問題を回避する方法について説明します。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.2

Workbooks.Openを使う以上不可能です。 QueryTables を使えばできますが、どの列が文字列かを指定する必要があります。 「とある一列」ではどの列か解りません。回答は欲しいが情報は出したくない人間は多いですが、それでは正しい回答ができません。 また、文字コードの指定も必要です。 取りあえず、C列が文字列(日付にしたくない) ANSI(シフトジス)又はUNICODE にしました。 直接シートに取り込むので、コピーする必要はありません。 Option Explicit ' Sub Macro1()   Dim FileName As String '   FileName = Application.GetOpenFilename("CSV ファイル,*.csv") '   If FileName = "False" Then     End   End If '   With ActiveSheet.QueryTables.Add("TEXT;" & FileName, [A1])     .RefreshStyle = xlOverwriteCells     .TextFileParseType = xlDelimited     .TextFileCommaDelimiter = True     .TextFileColumnDataTypes = Array(1, 1, 2)     .Refresh   End With   [A1].QueryTable.Delete   End End Sub 指定の方法は Arrayの中で文字列したい列を 2にします。その後(この場合D列以右)は省略してもいいです。 UTF-8 だと文字化けします。その場合、     .TextFileCommaDelimiter = True の下に     .TextFilePlatform = 65001 を追加して下さい。

QQwerty123
質問者

お礼

拙い質問で申し訳なかったです。 ただ、ご回答も補足もほぼ期待したものでした。 早々、ありがとうございました。

その他の回答 (1)

回答No.1

line output を使えばよいのでは?

QQwerty123
質問者

お礼

参考にさせていただきます