ExcelのVBAでADOを使ってAccessのデータをExcelのアクティブセルに貼り付けるサンプルプログラム

Excel

ExcelのVBAからADOを利用してAccessのテーブルやクエリー(SQL文含む)、で取得したレコードセットをアクティブセルに貼り付けるサンプルプログラム。

今回のサンプルプログラムではCopyFromRecordsetメソッドは使用せずに、セルに1つ1つデータを書き込む方法を用いている。

以下にサンプルプログラムを記述。

VBAサンプルプログラム1

接続するデータベースは、Accessに添付されているサンプルデータベース”Northwind.mdb”を使用している。

セルにデータを書き込む際に、表示形式の設定やデータそのものの加工をして書き込んでいる。

VBAサンプルプログラム2

貼り付け範囲に別のデータが入っていた場合に上書きしてかまわないかどうかを確認するメッセージを表示し、[いいえ]が選択されたら処理を中止するコードを追加。

貼り付けるレコード数が多い場合は、チェックに時間がかかる点に注意。

フィールド名を除外したい場合

貼り付け範囲はフィールド名も含めた範囲が指定されているので、フィールド名を省いて貼り付ける場合は、24~26行目を以下のように変更する。

このプログラムでデータを貼り付けると[元に戻す]ボタンを使っても貼り付ける前には戻らないので注意が必要。