Excel、インポート ウィザード、間違ったファイル タイプを検出

Excel、インポート ウィザード、間違ったファイル タイプを検出

毎月、パイプで区切られた毎日のファイルを月間 Excel ワークブックにコンパイルする権限があります。インポート ウィザードを使用して、テキスト ファイルをワークブックのワークシートに変換します。一度に 30 ファイルすべてを開き、各ファイルについてウィザードのプロンプトを実行します。ウィザードは、ファイルがパイプで区切られていることを通常正しく検出します。ただし、ファイルのバッチごとに 1 回だけ、ファイルの種類を「区切り」から「固定幅」に変更します。各ファイルは、日付、部門、アカウント、タイプ、金額など同じ形式です。各フィールドには、すべてのファイルで同様のデータが含まれています。日付はすべて 8 文字、部門はすべて 5 文字、アカウントはすべて 6 文字などです。

Excel がファイルの区切り形式を突然認識しなくなったのはなぜですか?
1 つのファイルだけが認識されるのはなぜですか?

私が注意を払っているか確認しているのでしょうか?

これはExcel 2013とExcel 365 Pro(MSO 16.0)の両方で発生します。

答え1

VBA を理解している場合は、次のマクロを使用できます。このマクロはファイル名を要求し、パイプ区切りとして強制的にインポートします。

Sub Test()
    Dim Filter As String, Title As String
    Dim FilterIndex As Integer
    Dim FileName As Variant

    ' File filters
    Filter = "Text Files (*.dat),*.dat," & "All Files (*.*),*.*"

    ' Default Filter to *.*
    FilterIndex = 3

    ' Set Dialog Caption
    Title = "Select a File to Open"

    ' Select Start Drive & Path
    ChDrive ("G:")
    ChDir ("G:\Scot\MS Excel")

    With Application
        ' Set File Name to selected File
        FileName = .GetOpenFilename(Filter, FilterIndex, Title)
        ' Reset Start Drive/Path
        ChDrive (Left(.DefaultFilePath, 1))
        ChDir (.DefaultFilePath)
    End With

    ' Exit on Cancel
    If FileName = False Then
        MsgBox "No file was selected."
        Exit Sub
    End If

    ' Import File
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName, Destination:=Range("A1"))
        .TextFileParseType = xlDelimited
        .TextFileOtherDelimiter = "|"
        .Refresh BackgroundQuery:=False
    End With
End Sub

「開始ドライブとパスの選択」の下のコードに独自の値を入力します。

ソース

関連情報