はじめに
AccessとExcelを連携させることで、
-
データの一括出力
-
帳票作成の自動化
-
分析用Excelファイル作成
など、業務効率が大幅に向上します。
本記事では、
Access VBAでExcelを操作する基本から実務レベルまでをわかりやすく解説します。
Access VBAでExcelを操作する準備
方法①:参照設定を使う(初心者向け)
-
VBAエディタを開く
-
メニュー「ツール」→「参照設定」
にチェック
Excelを起動する基本コード
Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
xlApp.Visible = True
新しいExcelブックを作成
Dim wb As Excel.Workbook
Set wb = xlApp.Workbooks.Add
セルに値を書き込む
xlApp.Cells(1, 1).Value = “商品名”
xlApp.Cells(1, 2).Value = “価格”
AccessテーブルのデータをExcelへ出力
Dim rs As DAO.Recordset
Dim i As Integer
Set rs = CurrentDb.OpenRecordset(“商品テーブル”)
i = 1
Do Until rs.EOF
xlApp.Cells(i, 1).Value = rs!商品名
xlApp.Cells(i, 2).Value = rs!価格
rs.MoveNext
i = i + 1
Loop
Excelファイルとして保存
wb.SaveAs “C:\test\sample.xlsx”
Excelを閉じる
wb.Close
xlApp.Quit
Set wb = Nothing
Set xlApp = Nothing
実務でよく使う応用例
✔ クエリ結果をExcelに出力
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, _
“売上クエリ”, “C:\test\sales.xlsx”, True
✔ 既存Excelファイルを開く
Set wb = xlApp.Workbooks.Open(“C:\test\data.xlsx”)
✔ シート名を変更
On Error Resume Next
xlApp.Quit
Set xlApp = Nothing
よくあるトラブル
| トラブル | 原因 |
|---|---|
| Excelが閉じない | Set Nothing 忘れ |
| 参照設定エラー | Officeバージョ違い |
| 動作が遅い | 1セルずつ書込み |
高速化テクニック
xlApp.ScreenUpdating = False
xlApp.Calculation = xlCalculationManual
まとめ
Access VBAとExcel連携を使えば、
-
帳票作成の自動化
-
データ分析の高速化
-
業務効率UP
が実現できます。
まずは
✅ Excel起動
✅ 書き込み
✅ 保存
から始めてみましょう。
内部リンク(関連記事)
Access VBA|Excelの列を選択してインポートできるフォームの作り方
Access VBA|Accessでテーブルのフィールド一覧を取得する方法
Accessでフォルダ内のファイル名を一覧取得し、Excelへ出力する方法【VBA】