目次
指定テーブルの内容を指定Excelブックにエクスポートする
この記事では「指定テーブルの内容を指定ブックにエクスポートする」ために利用可能な ExportTableToBook というユーザー定義関数について紹介します。 この情報が読者のお役に立てば幸いです。
解決できること
Microsoft Access の中でここで紹介する ExportTableToBook をマクロの中で呼び出すと指定された テーブル を %USERPROFILE%からの相対パスで指定された Excel ブックに簡単にエクスポートできます。
ここに %USERPROFILE% は Windows であらかじめ定義されている環境変数で Windows 10 搭載 PCを使っている利用者のデフォルトのフォルダパスを表しています。この環境変数については必要に応じて以下の記事を参照下さい。
読んでほしい方
こうした Microsoft Access VBA を使ったアプリケーションをこれから作ろうと思っている方、今まで VBA によるアプリケーションを作ってきたが、そのツールを第三者に提供する際に、フォルダの保存パス名等の利用者個人に紐づいた環境差分をVBAのプログラムの中にじかに書くのに抵抗がある方。
ExportTableToBook 関数 の紹介
説明
指定された テーブル を %USERPROFILE% からの相対パスで指定された Excel ブックに簡単に エクスポート できます。
参照オブジェクト
この関数を利用するためにはこの関数の実行前に
データベースツール > Visual Basic > ツール > 参照設定
の中で
- Microsoft Office 16.0 Access Database engine
にチェックを入れる必要があります。
利用例
例えば、現在このデータベースの中に以下のような issues というテーブルがあったとします。
この状態で Access のマクロ定義例えば “M0070_Call_ExportTableToBook ” の中で
If ExportTableToBook("Issues","Downloads\Issues.xlsx")>0
If文の最後
のように “Issues” 、 “Downloads\Issues.xlsx”といったパラメータを付けて呼び出します。
そしてこの “M0070_Call_ExportTableToBook ” のデザインビューを閉じ、この ”M0070_Call_ExportTableToBook” マクロをダブルクリックすると、この中で ExportTableToBook が実行され
%USERPROFILE%\Downloads\Issues.xlsx に
がエクスポートされていることがわかります。
引数
属性 | 意味 | |
---|---|---|
テーブル名 | 文字型 | インポート元のテーブル名 |
Excel ブック名 | 文字型 | %USERPROFILE%からの相対パスで指定された 出力Excelブック名 |
戻り値
値 | 意味 |
---|---|
0 | 正常終了 |
1 | 異常終了 |
VBAコード
Function ExportTableToBook(table_name As String, output_xlsx_pathname As String) As Integer
Const C_SUCCESS As Integer = 0
Const C_FAILURE As Integer = 1
Dim fullPathName As String
fullPathName = Environ("UserProfile") & "\" & output_xlsx_pathname
On Error GoTo exitWithFailure
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, table_name, fullPathName
ExportTableToBook = C_SUCCESS
Exit Function
exitWithFailure:
ExportTableToBook = C_FAILURE
End Function
VBAコードの簡単な説明
行番号 | 説明 |
---|---|
1 | 関数名と関数の戻り値の型(Integer:整数型)、入力パラメータ table_name (String:文字列型)、 output_xlsx_pathname (String:文字列型)の名前、型を定義しています。 |
3-4 | このプログラムの中で利用する定数C_SUCCESS(0:成功)、C_FAILURE(1:失敗)を定義しています。ここでは17行目、21行目ででこの関数の戻り値が C_SUCCESS(0:成功)、C_FAILURE(1:失敗)であることが明確にわかるようなコーディングの仕方になります。 |
6-8 |
fullPathName を定義し、Environ 関数を使って求めた %USERPROFILE% と入力パラメータ output_xlsx_pathname による絶対パス名を設定します。 |
10 | この関数の実行中にエラーが発生したときの例外処理として、exitWithFailure にジャンプします。 |
12 | DoCmd.TransferSpreadsheet 関数に table_name 、fullPathName を指定し table_name の内容を fullPathName で指定された Excel ブックにエクスポートします。 |
14-15 | この関数の戻り値に C_SUCCESS(0:成功) を設定して関数を終わります。 |
17-19 | この関数の戻り値に C_FAILURE (1:失敗) を設定して関数を終わります。 |
まとめ
この記事では「指定テーブルの内容を指定ブックにエクスポートする」ために利用可能な ExportTableToBook というユーザー定義関数について紹介しました。 この情報が読者のお役に立てば幸いです。