Excel VBAサンプル(ADO、ODBC)
※要ODBCドライバインストール
- エクセルのブックを新規作成
- メニューバーから「ツール」−「マクロ」−「Visual Basic Editor」をクリック
- Visual Basic Editorのメニューバーから「ツール」−「参照設定」をクリック
- 参照設定ウィンドウで「Microsoft ActiveX Data Objects x.x Library」をチェック(新しそうな奴を適当に)
- ↓のソースを貼り付け実行(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