VBScript CSV txt をExcelに読み込ませる

引数に名前が使えないのでコンマ、セミコロンなど指定位置でTrueにするのがポイントです。
最初とっつきにくいのがArray(Array(列番号,データ型))
でしょう。
とくにSkipは、例えば10列あって1列目しか読み込まないとき、あとの9列すべてにSkipをつけないとよみこまれます。
定型のCSVを定期的に変換するときにこのVBSが役立ちます。

あと体感でちょっと遅いかな。
途中で切ってますがExcel研究所のユニークな行だけ取り出すというVBAをVBSで実現しています。
オートフィル、書式設定もVBSからできるのですね。

```visualbasic
Option Explicit
''''''''''''''''''
'' Const Block ''
'' ''
''''''''''''''''''
Const cnsFile = "C:\hoge.txt" ''!!! 読み込む対象のファイル !!!
'XlTextParsingType
Const xlDelimited = 1 '固定長ではない
Const xlFixedWidth = 2 '固定長
Const xlDoubleQuote = 1
' TextQualifier のメンバーテキストを指定するために使用する区切り文字。
Const xlTextQualifierDoubleQuote = 1 'ダブルクオーテーション
Const xlTextQualifierNone = -4142 '((&HFFFFEFD2) なし
Const xlTextQualifierSingleQuote = 2 'シングルクォーテーション

' Excel.XlPlatform のメンバー Originで使用
' テキストの文字コード定数使用できる定数は、 XlPlatform クラスの xlMacintosh 、 xlWindows 、 xlMSDOS のいずれかです。また、目的のコード ページのコード ページ番号を表す整数値を指定することもできます。省略すると、テキスト インポート ウィザードの [ 元のファイル] の現在の設定値を使用します(と書いているが失敗が多いのでわかるなら指定した方がよい)
Const xlMacintosh = 1
Const xlWindows = 2
Const xlMSDOS = 3
Const EnumMac =10001
Const EnumUTF8 = 65001
Const EnumShiftJis = 932
Const EnumUTF7 = 65000
Const EnumJIS0208_1990And0212_1990 = 20932
Const EnumJpEuc = 51932 'Excelでは非表示
Const EnumUSASCII = 20127
Const EnumWinViet = 1258
Const EnumWangTW = 20005
Const EnumDosWestEurope = 850
Const EnumI5_WestEurope = 20105
Const EnumISOWestEurope = 28591
Const EnumMacWestEurope = 10000
Const EnumWinWestEurope = 1252

' Excel.XlColumnDataType のメンバー
Const xlGeneralFormat = 1 '標準 わからないときはこれで
Const xlTextFormat = 2 'テキストとして読み込む
Const xlMDYFormat = 3
Const xlMYDFormat = 6
Const xlDMYFormat = 4
Const xlYMDFormat = 5
Const xlDYMFormat = 7
Const xlYDMFormat = 8
Const xlEMDFormat = 10

Const xlSkipColumn = 9 'その行は読み込まない Skip

Const xlUp = -4162
Const xlToLeft = -4159
Const xlGeneral = 1
Const xlCellTypeVisible = 12
Const xlCenter = -4108
Const xlContext = -5002
''''''''''''''''''''''
' Exporession Memo '
'' ''
''''''''''''''''''''''
'expression . OpenText( Filename , Origin , StartRow , DataType , TextQualifier , ConsecutiveDelimiter , Tab , Semicolon , Comma , Space , Other , OtherChar , FieldInfo , TextVisualLayout , DecimalSeparator , ThousandsSeparator , TrailingMinusNumbers , Local )
'expression . OpenText( フルパスのファイル名 , 文字コード , 開始行 , DataType , TextQualifier , ConsecutiveDelimiter , タブ区切りか , セミコロン区切りか , コンマ区切りか , 空白区切りか否か , Other , OtherChar , FieldInfo , テキストの視覚的な配置を指定します , 小数点。既定システム設定 , 桁区切り , 末尾に負符号が付く数値を負の数値として扱う場合は、 True 文字列はFalse , 区切り記号、数値、およびデータの書式にコンピューターの地域設定を使用する場合は、 True を指定します。 )
'引数の指定ができないので、一つ一つ指定する
'FieldInfo 1番目の要素が1から始まる列番号
'Array(Array(行,データ形式) Array(行,データ形式))とするスキップも可能。
'ConsecutiveDelimiter 連続した区切り文字を 1 文字として扱うときは True を指定します。既定値は False です。
'Other DataType に xlDelimited、区切り文字に引数 OtherChar で指定した文字を使うときは True を指定します。既定値False
'
Wscript.Echo "Start"
''''''''''''''''''''''''''''''
'' Dim Statement 変数の宣言 ''
'' ''
''''''''''''''''''''''''''''''
Dim xlApp: Set xlApp = CreateObject("Excel.Application")
Dim wb, ws, ws1, LastRow, LastCol, iRow, iCol
xlApp.Visible = True
xlApp.Workbooks.OpenText cnsFile, EnumUTF8, 1, xlDelimited, , False, True, True, False, False, False, Array(Array(1, xlGeneralFormat), Array(2, xlGeneralFormat), Array(3, xlGeneralFormat), Array(4, xlGeneralFormat), Array(5, xlGeneralFormat), Array(6, xlGeneralFormat), Array(7, xlGeneralFormat), Array(8, xlGeneralFormat))
Set wb = xlApp.ActiveWorkbook
Set ws = xlApp.ActiveSheet

Wscript.Quit
'以下は読み込んだシートと別のシートを追加し、シート名をユニークとして、元のシートに新たな列を加えて式を追加し
'オートフィルターをかけて、その結果からユニークな行だけ「ユニーク」シートに抜き出す
'ワークシートの追加
set ws1 = xlApp.Sheets.Add(,wb.WorkSheets(1),1)
ws1.Name = "ユニーク" 'シート名の変更
ws.Activate
'最終行 最終列の取得
LastRow = ws.Cells(xlApp.Rows.Count, 1).End(xlUp).Row
LastCol = ws.Cells(1, xlApp.Columns.Count).End(xlToLeft).Column

iCol = LastCol + 1
ws.Cells(1, iCol).Value = "作業列"
wscript.sleep 500
'F列を対象としてCountIf関数を入力
ws.Range(ws.Cells(1, iCol), ws.Cells(LastRow, iCol)) = "=COUNTIF(F2:$F$" & LastRow & ",F2)"
'オートフィルターをかける
ws.Cells(1, 1).AutoFilter iCol, 1
ws.Range(ws.Cells(1, 1), ws.Cells(LastRow, Lastcol)).SpecialCells(xlCellTypeVisible).Copy wb.Worksheets("ユニーク").Cells(1, 1)
ws1.Activate
LastRow = ws1.Cells(xlApp.Rows.Count, 1).End(xlUp).Row
ws1.Rows("2:" & LastRow).RowHeight = 30.75
ws1.Columns("A:C").EntireColumn.AutoFit 'オートフィットで整える
ws1.Cells.Select
'セルのフォントの指定
With xlApp.Selection.Font
.Name = "ＭＳ ゴシック"
.Size = 9
.Strikethrough = False
End With
'セルの結合、テキストの折り返しか縮小して全体表示か、テキストの位置
ws1.Columns("D:G").Select
With xlApp.Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = True
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With

ws1.Columns("D:G").ColumnWidth = 51.25
ws1.Columns("G:G").ColumnWidth = 33.63
ws1.Columns("F:F").ColumnWidth = 33.25
ws1.cells(1,1).value = "作成日時"
ws1.cells(1,2).value = "最終アクセス日時"
ws1.cells(1,2).value = "更新日時"
ws1.cells(1,2).value = "ディレクトリ"
ws1.cells(1,2).value = "ディレクトリ"
```