今回はAccessVBAでテーブルを新規マクロ有効のExcelブック
にエクスポートして保存する方法を解説します。
簡単に自己紹介ですが私は会社員15年程経験しその中でAccessVBAを使い沢山の効率化を図ってきました。Accessの資格も取得していますので有益な情報になると思います。
今回の記事の対象者
- AccessVBAでテーブルやクエリを新規マクロ有効のExcelブックの任意のセルにエクスポートする方法が知りたい方
今回の記事を見た事で得られる事
- AccessVBAでテーブルやクエリを新規マクロ有効のExcelブックの任意のセルにエクスポートする方法がわかる
早速結論ですが実装出来たコードは以下です。
Private Sub btnエクスポート_Click()
Dim xlApp As Object
Dim xlWb As Object
Dim xlWs As Object
Dim rst As DAO.Recordset
Dim path As String
Dim n As Variant
n = Format(now(), "yyyy_mm_dd_hhmmss")
Set rst = CurrentDb.OpenRecordset("SELECT * FROM T_全利用者マスター")
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlWb = xlApp.Workbooks.Add
Set xlWs = xlWb.Sheets(1)
xlWs.Range("C5").CopyFromRecordset rst
xlWb.SaveAs CurrentProject.path & "\" & n & ".xlsm", 52
rst.Close
Set rst = Nothing
xlApp.Quit
Set xlApp = Nothing
MsgBox "エクスポートが完了しました"
End Sub
これでカレントディレクトリにxlsm形式で保存されたと思います。
xlWb.SaveAs CurrentProject.path & “\” & n & “.xlsm”, 52
上記の52という部分です。
この52というのはExcel マクロ有効ブックの事を指しています。
他にも以下の様々な形式があります。
今回は拡張子がxlsxではなくxlsm形式保存の方法を記事にしました。
| 種類 | 定数 | 拡張子 | 説明 | 値 |
|---|---|---|---|---|
| CSV | xlCSV | *.csv | CSV | 6 |
| xlCSVMac | *.csv | Macintosh CSV | 22 | |
| xlCSVUTF8 | *.csv | UTF8 CSV | 62 | |
| txt | xlCurrentPlatformText | *.txt | 現在のプラットフォームの テキスト | -4158 |
| xlTextWindows | *.txt | Windows テキスト | 20 | |
| xlUnicodeText | *.txt | Unicode テキスト | 42 | |
| Excel 形式 | xlWorkbookDefault | *.xlsx | ブックの既定 | 51 |
| xlOpenXMLWorkbookMacroEnabled | *.xlsm | Excel マクロ有効ブック | 52 | |
| xlWorkbookNormal | *.xls | Excel 97-2003 ブック | -4143 | |
| xlExcel8 | *.xls | Excel 97-2003 ブック | 56 | |
| その他 | xlXMLSpreadsheet | *.xml | xml スプレッドシート | 46 |
| xlWebArchive | *.mht | Webページのアーカイブ ファイル | 45 | |
| xlHtml | *.htm | HTML形式 | 44 |
単純にxlsmと直に記述するとエラーになりますので自身の忘備録としても記述しました。


