VBAでADOを使用し、CSVデータを読み込みます。

Sub ReadCsv()
Dim objCn As New ADODB.Connection
Dim objRS As ADODB.Recordset
Dim i As Long
Dim strSQL As String
'CSVへのコネクション
With objCn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Properties("Extended Properties") = "Text;HDR=Yes;FMT=Delimited"
.Open ThisWorkbook.Path & "\"
End With
'SQL文作成
strSQL = ""
strSQL = strSQL & " SELECT *"
strSQL = strSQL & " FROM"
strSQL = strSQL & " [csvtest.csv]"
strSQL = strSQL & "WHERE 列2 = 'bb'"
'SQLを実行しレコードセット取得
Set objRS = New ADODB.Recordset
Set objRS = objCn.Execute(strSQL)
With Worksheets("csv")
.UsedRange.ClearContents
'1行目に見出しの出力
For i = 0 To objRS.Fields.Count - 1
.Cells(1, i + 1) = objRS.Fields(i).Name
Next
'レコードセットを一括出力
.Range("A2").CopyFromRecordset objRS
End With
objCn.Close
Set objRS = Nothing
Set objCn = Nothing
End Sub
Sub ReadCsv()
Dim objCn As New ADODB.Connection
Dim objRS As ADODB.Recordset
Dim i As Long
Dim strSQL As String
'CSVへのコネクション
With objCn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Properties("Extended Properties") = "Text;HDR=Yes;FMT=Delimited"
.Open ThisWorkbook.Path & "\"
End With
'SQL文作成
strSQL = ""
strSQL = strSQL & " SELECT *"
strSQL = strSQL & " FROM"
strSQL = strSQL & " [csvtest.csv]"
strSQL = strSQL & " WHERE 列2 = 'bb'"
'SQLを実行しレコードセット取得
Set objRS = New ADODB.Recordset
Set objRS = objCn.Execute(strSQL)
'カラム名を配列に
Dim ary() As String
ReDim ary(objRS.Fields.Count - 1)
For i = 0 To objRS.Fields.Count - 1
ary(i) = objRS.Fields(i).Name
Next
'csv出力
Open ThisWorkbook.Path & "\csvtest2.csv" For Output As #1
Print #1, Join(ary, ",")'カラム名
Print #1,objRS.GetString(adClipString, -1, ",", vbCrLf, "")
Close #1
objCn.Close
Set objRS = Nothing
Set objCn = Nothing
End Sub
[TSVファイル名1]ColNameHeader=True/FalseFormat=TabDelimited/CSVDelimited/Delimited(1文字)Col1=カラム名 データ型 [長さ]Col2=カラム名 データ型 [長さ]・・・[TSVファイル名2]ColNameHeader=True/FalseFormat=TabDelimited/CSVDelimited/Delimited(1文字)Col1=カラム名 データ型 [長さ]Col2=カラム名 データ型 [長さ]・・・
CSVの読み込み方法
CSVの読み込み方法(改)
CSVの読み込み方法(改の改)
CSVの読み込み方法(ジャグ配列)
CSVの読み込み方法(ジャグ配列)(改)
CSVの出力(書き出し)方法
UTF-8でCSVの読み書き(ADODB.Stream)
ADOでマスタ付加と集計(SQL)
ADOでマスタ更新(SQL)
ADOでCSVの読み込み(SQL)
ADOでテキストデータを集計する
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
実績/予算ごとの3年間通算累計を出力|エクセル練習問題(2025-11-15)
【何かの情報試験に出るかもしれない問題】4択クイズ|エクセル雑感(2025-11-16)
最長連続出現数(ランレングス)の算出|エクセル練習問題(2025-11-15)
SQL基礎問題11:連続期間の開始月と終了月を抽出|SQL入門(2025-11-14)
セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
1.最終行の取得(End,Rows.Count)|VBA入門
2.変数宣言のDimとデータ型|VBA入門
3.日本の祝日一覧|Excelリファレンス
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.FILTER関数(範囲をフィルター処理)|エクセル入門
7.RangeとCellsの使い方|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門