Excel VBAサンプル(ADO、ODBC)

 ※要ODBCドライバインストール

  1. エクセルのブックを新規作成
  2. メニューバーから「ツール」−「マクロ」−「Visual Basic Editor」をクリック
  3. Visual Basic Editorのメニューバーから「ツール」−「参照設定」をクリック
  4. 参照設定ウィンドウで「Microsoft ActiveX Data Objects x.x Library」をチェック(新しそうな奴を適当に)
  5. ↓のソースを貼り付け実行(SQLやDBのパスは適当に変更)
Sub hoge()
   Dim con As ADODB.Connection
   Dim recordSet As ADODB.recordSet
   Dim outPutSheet As Worksheet
   Dim row As Long
   Dim col As Long

   Set con = New ADODB.Connection
   Set recordSet = New ADODB.recordSet
   Set outPutSheet = ThisWorkbook.Sheets("Sheet1") '出力先シート
   outPutSheet.Cells.Clear

   'DB接続とデータ取得
   con.Open "DRIVER=Firebird/InterBase(r) driver; SERVER=localhost; DATABASE=c:\hoge.fdb;" & _
            "UID=sysdba; PWD=masterkey;Client=C:\Program Files\Firebird\Firebird_2_0\bin\fbclient.dll"
   recordSet.Open "select * from rdb$database", con, adOpenForwardOnly, adLockReadOnly, -1

   'データ展開
   For col = 0 To recordSet.Fields.Count - 1
       outPutSheet.Cells(1, col + 1).Value = recordSet.Fields(col).Name    '列名
   Next col
   row = 2
   While (Not recordSet.EOF) And row < 60000
       For col = 0 To recordSet.Fields.Count - 1
           outPutSheet.Cells(row, col + 1).Value = recordSet.Fields(col).Value   'データ
       Next col
       recordSet.MoveNext
       row = row + 1
   Wend

   '終了処理
   recordSet.Close
   con.Close
   If row > 60000 Then
       MsgBox "60000行を超えたため中断しました"
   Else
       MsgBox "出力が終了しました"
   End If
End Sub