CSVファイルに接続(ADO)
ADOでCSVファイルに接続
ADO を使用してCSVファイルを読み込みます。CSVファイルをデータベースのテーブルとみなし、SQL文を使うことが出来ます。
    <ConnectionString(ADO)に設定する文字列>
    Provider = Microsoft.Jet.OLEDB.4.0;
    Data Source = DBFileName;
    Extended Properties = EXProperties;
引数・戻り値
- DBFileName ・・・ 対象となるCSVファイルのパスを指定します。(※ファイル名は不要です。また、パスの最後には「\」が必要です。)
- EXProperties  ・・・  3つのプロパティ値を指定します。各プロパティ値は「;(セミコロン)」で区切ります。全体を「”」で括ります。
 (例)Extended Properties = “Text;HDR=Yes;FMT=Delimited”
Extended Properties に指定する各プロパティ値について
      ・Text は、データベースの種類を表しています(テキストファイル)。
      ・HDR は、CSVファイルの1行目をフィールド名として扱うかどうかを指定します。No を指定した場合、フィールド名は、F1、F2、F3 のように F[列番号] で表示されます。
      ・FMT は、ファイルのフォーマットを指定します。CSVファイルの場合、Delimited を指定します。
CSVファイル名は、テーブル名として扱います。
    (例)Select * from [CSVファイル名];
CSVファイルへ接続する例
サンプルVBAソース
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | Sub Sample_ADO_CSV()     Dim cn As New ADODB.Connection     Dim rs As New ADODB.Recordset     Dim constr As String     Dim DBFilePath As String     Dim DBFileName As String     Dim EXProperties As String     Dim strSQL As String     Dim i As Long     Dim j As Long     DBFilePath = ActiveWorkbook.Path & "\"     DBFileName = "mydb1.csv"     EXProperties = """Text;HDR=Yes;FMT=Delimited"""     constr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _              "Data Source=" & DBFilePath & ";Extended Properties=" & EXProperties     cn.ConnectionString = constr     cn.Open     strSQL = "Select * from " & DBFileName & " order by ID;"     rs.Source = strSQL     rs.ActiveConnection = cn     rs.Open     With Worksheets("csv")         .Cells.Clear         i = 1         Do Until rs.EOF             For j = 0 To rs.Fields.Count - 1                 If i = 1 Then .Cells(i, j + 1) = rs.Fields(j).Name                 .Cells(i + 1, j + 1) = rs(j).Value             Next j             rs.MoveNext             i = i + 1         Loop     End With     rs.Close     Set rs = Nothing     cn.Close     Set cn = Nothing End Sub | 
実行結果
関連記事
-  
              
- 
      BOF プロパティ・EOF プロパティ(ADO)EOF プロパティ・BOF プロパティ BOF プロパティは、カレントレコードの … 
-  
              
- 
      Excelファイルに接続(ADO)ADOでExcelファイルに接続 ADO を使用してExcelファイルを読み込み … 
-  
              
- 
      レコードの更新(ADO)Update メソッドデータベースのレコードを更新する Update メソッド カレントレコードの内容 … 
-  
              
- 
      レコードの追加(ADO)AddNew メソッド,Update メソッドデータベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 … 
-  
              
- 
      テーブル名、クエリ名の取得(ADOX)テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje … 
-  
              
- 
      カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、MoveMoveFirst メソッド、MoveLast メソッド、MoveNext メソ … 
-  
              
- 
      クエリにパラメータを渡して結果を取得する(ADO)Command オブジェクト・Execute メソッドクエリにパラメータを渡して結果を取得する手順 Command オブジェクトの作成 … 
-  
              
- 
      データベース(SQL Server)に接続する(ADO)データベース(SQL Server)に接続 ODBC または OLE DB で接 … 
-  
              
- 
      データベース(Access 等)に接続(ADO)ADO で、データベースに接続 外部データベースを操作する方法のひとつに ADO … 
-  
              
- 
      クエリの作成・削除(ADOX)ADOX を使用してクエリを作成・削除 クエリを作成する手順 【書式】 <参照設 … 
 
        
