Topへもどる
前へ

ADOを使ったExcelとデータベースの連携

ADOを使ってExcelブックを操作する

タイトル一覧へもどる
次へ
■サイト内検索
Google

Excel ブック上のデータを読み込む

Sub 任意のシートのデータを取得()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset, FileName As String

'接続先のExcelファイル
FileName = ThisWorkbook.Path & "\xls\DataBook.xls"

'接続
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & FileName

'「伝票一覧」シートの内容を読み込む
myRS.Open "[伝票一覧$]", myCon

'A1番地を基点に転記
Range("A1").CopyFromRecordset myRS

myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing

End Sub
任意のシート内容をRecordset オブジェクトで扱うには、「テーブル名」の代わりに次のように「シート名」を使用する。
[伝票一覧$]
元シートの1行目の内容(「フィールド名」に相当) や書式情報(「フィールドのデータ型」に相当)などを除いて転記される。

■伝票一覧シート


■実行結果



「見出し行」も含めて転記する

Sub 見出し行も転記する()
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset, FileName As String
Dim i As Integer

FileName = ThisWorkbook.Path & "\xls\DataBook.xls"
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & FileName

'「伝票一覧」シートの内容を読み込む
myRS.Open "[伝票一覧$]", myCon

'フィールド名を書き出す
For i = 1 To myRS.Fields.Count
  Cells(1, i) = myRS.Fields(i - 1).Name
Next

'A2番地を基点にデータ転記
Range("A2").CopyFromRecordset myRS

myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing

End Sub
■伝票一覧シート


■実行結果

前へ 次へ
Topへもどる タイトル一覧へもどる