外部データの読み込み:VBAでCSVやテキストファイルを扱う方法

2024/07/06

今回は、VBA(Visual Basic for Applications)を使用して外部データ(CSVファイルやテキストファイル)を読み込む方法について学んでいきましょう。外部データを読み込むことで、Excelなどのアプリケーションでデータの自動処理を行うことが可能になります。

CSVファイルの読み込み

まずは、CSVファイルを読み込む方法について見ていきましょう。


  Sub ImportCSVFile()
      Dim fileName As String
      Dim wb As Workbook
      Dim ws As Worksheet
      
      ' ファイルを選択するダイアログを表示し、ファイル名を取得する
      fileName = Application.GetOpenFilename("CSVファイル (*.csv), *.csv")
      
      ' ファイルが選択された場合のみ処理を続行する
      If fileName <> "False" Then
          ' 新しいブックを作成し、データをインポートする
          Set wb = Workbooks.Add
          Set ws = wb.Sheets(1)
          With ws.QueryTables.Add(Connection:="TEXT;" & fileName, Destination:=ws.Range("A1"))
              .TextFileParseType = xlDelimited
              .TextFileCommaDelimiter = True ' CSVファイルの場合、カンマ区切り
              .Refresh
          End With
      End If
  End Sub
    

この例では、CSVファイルを選択し、新しいブックにデータをインポートするVBAのサブルーチンを示しています。

テキストファイルの読み込み

次に、テキストファイルを読み込む方法について見ていきましょう。


  Sub ImportTextFile()
      Dim fileName As String
      Dim textLine As String
      Dim rowNum As Integer
      
      ' ファイルを選択するダイアログを表示し、ファイル名を取得する
      fileName = Application.GetOpenFilename("テキストファイル (*.txt), *.txt")
      
      ' ファイルが選択された場合のみ処理を続行する
      If fileName <> "False" Then
          Open fileName For Input As #1
          rowNum = 1
          Do Until EOF(1)
              Line Input #1, textLine
              Cells(rowNum, 1).Value = textLine
              rowNum = rowNum + 1
          Loop
          Close #1
      End If
  End Sub
    

この例では、テキストファイルを選択し、セルにテキストを行ごとに読み込むVBAのサブルーチンを示しています。

まとめ

外部データの読み込みは、VBAを使ってExcelなどのアプリケーションで重要な作業です。CSVやテキストファイルからデータを取り込み、必要な処理を自動化することで、効率的な作業が可能になります。

この記事はAIを使用して作成されています。