- ベストアンサー
マクロを使った文字化けしないCSV取込について
- マクロを使って、csvをインポートする方法について解説します。csvを取り込むと日付になってしまう問題を解決するためのコードについても紹介します。
- 毎行に数字と記号が並んだデータを含む元のcsvをマクロを使ってインポートする際、日付に変換される問題が発生します。この問題を解決するためのコードの実装方法について解説します。
- マクロを使用してcsvをインポートする際に、日付に変換される問題が発生します。この問題を回避する方法について説明します。
- みんなの回答 (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 を追加して下さい。
その他の回答 (1)
- Ultra-Hetare
- ベストアンサー率38% (204/526)
line output を使えばよいのでは?
お礼
参考にさせていただきます
お礼
拙い質問で申し訳なかったです。 ただ、ご回答も補足もほぼ期待したものでした。 早々、ありがとうございました。