例文を使って繰り返し業務を時短

【マクロ・VBA】テキストファイルをループ処理してインポートする

エクセル、マクロ、VBAのCSVファイルの様々なインポート方法 VBA

テキストファイルをインポートする際の注意点

  1. ファイルの文字コードが異なる場合:テキストファイルは、UTF-8、UTF-16などのUnicode以外の文字コードで保存されている場合があります。エクセルはUTF-8、UTF-16などのUnicodeを使用するため、テキストファイルとエクセルの文字コードが異なる場合、文字化けが発生する可能性があります。ファイルを開く前に、適切な文字コードを指定する必要があります。
  2. ファイルの区切り文字が異なる場合:テキストファイルは、通常、カンマ、タブ、セミコロンなどの区切り文字を使用してデータを区切ります。エクセルにインポートする際に、適切な区切り文字を指定しない場合、データが正しく区切られず、文字化けが発生する可能性があります。
  3. テキストファイルにヘッダーが含まれている場合:テキストファイルには、列のヘッダーが含まれる場合があります。エクセルにインポートする際に、ヘッダーを処理するためのオプションを適切に指定する必要があります。
  4. ファイルのフォーマットが正しくない場合:テキストファイルには、不正な形式のデータや空のセルが含まれる場合があります。エクセルにインポートする前に、ファイルのフォーマットを正しい形式に変換する必要があります。

これらの注意点を考慮して、テキストファイルをインポートする際には、適切な文字コード、区切り文字、ヘッダー処理オプションを指定し、ファイルのフォーマットを確認する必要があります。また、エラー処理を適切に行うことで、インポートに失敗した場合にはエラーメッセージを表示し、問題を修正することができます。

テキストファイルをインポートする

Sub utf8import()
    Dim ws As Worksheet
    Dim qtbl As QueryTable
    Dim getfilepath As String
    
    Set ws = ActiveSheet
    
    getfilepath = Application.GetOpenFilename("ブック, *.txt") 
    If getfilepath <> "False" Then
    Else
        MsgBox "キャンセル"
        End
    End If
    
    Set qtbl = ws.QueryTables.Add(Connection:="TEXT;" & getfilepath, Destination:=ws.Range("A1")) ' CSV を開く
    With qtbl
        .TextFilePlatform = 65001        
        .TextFileTabDelimiter = True     
        .RefreshStyle = xlOverwriteCells 
        .Refresh                        
        .Delete                          
    End With
    
MsgBox "完了"
End Sub

ダミーデータのダウンロード

コメント

タイトルとURLをコピーしました