#780 | レコードセットをそのままExcelのシートに出力する方法(DAO版) | VBA | |
Excelオブジェクトの「CopyFromRecordset」メソッドを利用し、その引数としてDAOで生成したRecordsetオブジェクトを渡すことで、そのレコードセットに含まれるレコード・フィールドのデータを一括してExcelのワークシートに出力することができます。 次のプログラム例では、テーブル「mtbl商品マスタ」からRecordsetを生成しオブジェクト変数「rst」に代入、それをCopyFromRecordsetメソッドに渡すことで各データをExcelワークシート上に出力しています。 Dim dbs As Database Dim rst As Recordset Dim xls As Object Set dbs = CurrentDb 'レコードセットを開く Set rst = dbs.OpenRecordset("mtbl商品マスタ") 'Excelオブジェクトを生成 Set xls = CreateObject("Excel.Application") With xls '新しいブックを追加 .Workbooks.Add '1行目の3列目(C1セル)からレコードセットを出力 .Cells(1, 3).CopyFromRecordset rst 'ワークシートを最後尾に追加 .Worksheets.Add after:=.Worksheets(.Worksheets.Count) 'レコードセットを先頭レコードに戻す rst.MoveFirst 'D4セルから先頭の10レコード・4フィールド分だけ出力 .Range("D4").CopyFromRecordset rst, 10, 4 'Excelを可視状態にする .Visible = True End With Set xls = Nothing 実行例:
※参考Tips:ADO版 → 「#686 レコードセットの内容をそのままExcelのシートに出力する方法」 |
|||
|
Copyright © T'sWare All rights reserved |