以下の VBA コードを使用して、Excel で csv ファイルを開きます (コードは Data\Text to Columns - コマンドをシミュレートします)。コードでは、プロパティTextFileColumnDataTypesの配列を指定する必要があります。これは、csv ファイルのすべての列に対してデータ形式 (2 = テキスト形式) を指定します。
ただし、csvファイルが何列になるか分からないので、csvファイルのすべての列にフォーマット2(=テキストフォーマット)を指定したいと思います。現在の問題は、固定数の列 (下の例では 3 列) のデータ形式しか指定できないことです。
その問題を解決するための助けは大歓迎です:)
===============================================
ここに私が使用している完全なコードがあります:
With ThisWorkbook.Worksheets(1).QueryTables.Add(Connection:= _
"TEXT;C:\test.csv", Destination _
:=ThisWorkbook.Worksheets(1).Range("$A$1"))
.name = "Query Table from Csv"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 2)
.TextFileDecimalSeparator = "."
.TextFileThousandsSeparator = ","
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete
End With