CSVファイルのマッチング
VBAを使用して、特定のシートにCSVファイルをインポートし、特定の列のデータに基づいて取り込む方法の例です。
1.CSVファイルをインポートするために、以下のコードを使用します。
Sub ImportCSV()
Dim filePath As String
Dim targetSheet As Worksheet
Set targetSheet = ThisWorkbook.Sheets("Sheet1") 'インポートするシート名を指定
filePath = "C:\path\to\file.csv" 'インポートするCSVファイルのパスを指定
With targetSheet.QueryTables.Add(Connection:="TEXT;" & filePath, Destination:=targetSheet.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True 'CSVファイルの区切り文字をカンマに設定
.Refresh
End With
End Sub
2.CSVファイルの特定の列のデータに基づいて、取り込むデータをフィルタリングするには、以下のようにコードを追加します。
Sub ImportCSV()
Dim filePath As String
Dim targetSheet As Worksheet
Set targetSheet = ThisWorkbook.Sheets("Sheet1") 'インポートするシート名を指定
filePath = "C:\path\to\file.csv" 'インポートするCSVファイルのパスを指定
With targetSheet.QueryTables.Add(Connection:="TEXT;" & filePath, Destination:=targetSheet.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True 'CSVファイルの区切り文字をカンマに設定
.Refresh
End With
'特定の列のデータに基づいて、取り込むデータをフィルタリングする
Dim lastRow As Long
lastRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row '最終行を取得
Dim cell As Range
For Each cell In targetSheet.Range("B1:B" & lastRow) 'フィルタリングする列を指定(例:B列)
If Not cell.Value Like "*filter_text*" Then 'filter_textには、フィルタリングしたい文字列を指定
cell.EntireRow.Delete 'フィルタリング条件に一致しない行を削除
End If
Next cell
End Sub
この例では、B列の値に、”filter_text”を含む行のみを取り込むようにフィルタリングしています。必要に応じて、フィルタリング条件を変更することができます。
コメント