Access2010でテーブルやクエリをExcelへ出力するマクロを作成して、それをコマンドボタンに登録する方法です。
独立マクロを作成して、コマンドボタンへ登録する方法と、フォームでの埋め込みマクロでの作成を紹介します。
独立マクロの場合は、ウィザードを使用してマクロを設定できます。
この記事の目次
エクスポート操作の保存
[エクスポート操作の保存]は、マクロを作成するときに[保存済みのインポート/エクスポート操作の実行]を選択して設定できるようにするための準備です。
マクロで[保存済みのインポート/エクスポート操作の実行]を指定しない場合は、この準備は不要です。
ただ、設定を保存しておくと、マクロを使用しなくても、いつもで呼び出してエクスポートやインポート操作を行うことができます。
Excelへエクスポート操作を保存
出力したいテーブルやクエリを選択して、[外部データ]タブの[エクスポート]グループにある[Excel]をクリックします。
Excelワークシートにエクスポート
選択したオブジェクトを、Microsoft Excelファイル内のExcelワークシートにエクスポートします。
[エクスポート-Excelワークシート]ウィザードが起動します。
[ファイル名]や[保存先]、[ファイル形式]を選択します。
エクスポートのオプションもよく読んで、選択してください。
- 書式設定とレイアウトを保持したままデータをエクスポートする
テーブル、クエリ、フォーム、またはレポートをエクスポートするときに、書式情報とレイアウト情報をほぼ保持する場合は、このオプションを選択します。 - エクスポートの完了後にエクスポート先のファイルを開く
エクスポート操作の結果を表示する場合は、このオプションを選択します。これは、書式設定されたデータをエクスポートする場合のみ使用できます。 - 選択したレコードのみをエクスポートする
選択したレコードだけをエクスポートする場合は、このオプションを選択します。これは、書式設定されたデータをエクスポートすることを選択し、レコードを選択した場合のみ使用できます。
参考テーブルで[ハイパーリンク]型のフィールドがある場合は、[書式設定とレイアウトを保持したままデータをエクスポートする]をオンにするとハイパーリンクは、そのまま出力されます。
[OK]ボタンをクリックします。
[エクスポート操作の保存]のチェックボックスをオンにします。
チェックボックスをオンにすると、[名前を付けて保存]などのメニューが表示されます。
分かりやすい名前を付けて、[エクスポートの保存]ボタンをクリックします。
エクスポート操作が保存されているかを確認
[外部データ]の[エクスポート]グループにある[保存済みのエクスポート操作]をクリックして、先に作成したエクスポート操作が保存されているかを確認します。
参考同じ方法でインポート操作も保存できます。
①マクロの作成 [保存済みのインポート/エクスポート操作の実行]
独立マクロの作成方法です。ナビゲーションウィンドウにマクロオブジェクトが作成されます。
[エクスポート操作の保存]が保存されている場合のみ設定できます。
[作成]タブの[マクロとコード]グループにある[マクロ]をクリックします。
[すべてのアクションを表示]をオンにして、▼をクリックして、一覧の一番下にある[保存済みのインポート/エクスポート操作の実行]を選択します。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
[保存済みのインポート/エクスポート操作の名前]で保存した名前を選択します。
[Ctrl]+[S]キーを押して、マクロに名前を付けて保存します。
ここでは、[Excelへ出力]という名前にします。
ナビゲーションウィンドウには、[Excelへ出力]と名付けられたマクロオブジェクトが追加されます。
②マクロの作成 [ワークシートのインポート/エクスポート]
上記以外に、Excelへ出力するボタンは、マクロツールの[すべてのアクションを表示]ボタンをクリックして、[ワークシートのインポート/エクスポート]を選択して作成することもできます。
注意Access2013以降には、[ワークシートのインポート/エクスポート]はありません。
[変換の種類]で[エクスポート]を選択します。
マクロに名前を付けて保存します。
参考Access2010のマクロアクションについては、以下の記事でも解説しています。
-
マクロアクション[出力]の代替は[書式設定を保持したままエクスポート]
Access2003のマクロアクションには、[出力]があり、これまでよく使っていました。 すべてのデータをExcelへ出力したほうが、何かと ...
③マクロの作成 [書式設定を保持したままエクスポート]
マクロアクションの一覧から[書式設定を保持したままエクスポート]を選択して、Access2003やAccess2007のときのマクロアクション[出力]と同じように設定することもできます。
[アクションカタログ]から選択してマクロウィンドウへ追加する方法もあります。
作成済みのテーブルやクエリを指定して設定します。
出力ファイル形式には、以下の9個の種類があります。
- Excel 97-2003 ブック (*.xls)
- Excel バイナリ ブック (*.xlsb)
- Excel ブック (*.xlsx)
- HTML (*.htm; *.html)
- Microsoft Excel 5.0/95 ブック (*.xls)
- PDF 形式 (*.pdf)
- XPS 形式 (*.xps)
- テキスト ファイル (*.txt)
- リッチ テキスト形式 (*.rtf)
マクロに名前を付けて保存します。
参考以下は、Access2007での解説です。
Excelへ出力するコマンドボタンの作成(Access2007)
コマンドボタンを作成して独立マクロを登録
上記のいずれかの方法で作成した独立マクロを、コマンドボタンに登録します。
コマンドボタンウィザードは、独立マクロを作成した場合のみ使用できます。
コマンドボタンを作成したいフォームをデザインビューで開きます。
[フォームデザインツール]の[デザイン]-[コントロール]にある[ボタン]をクリックします。
ボタンを作成したい位置にドラッグします。
[コントロールウィザードの使用]は、オンにしておきます。
コマンドボタンウィザードを使用しないでも作成できます。Accessに少し慣れてきた場合は、ウィザードを使用しないほうが簡単だと思います。
コマンドボタンウィザードで設定
[コマンドボタンウィザード]が起動したら、[その他]から[マクロの実行]を選択します。
[次へ]ボタンをクリックします。
作成済みのマクロ[Excelへ出力]を選択します。[次へ]ボタンをクリックします。
[文字列]か[ピクチャ]を選択するようになっていますが、これは完成後にプロパティで変更できます。
文字列もピクチャも両方を表示することもできます。
[文字列]か[ピクチャ]を選択して、[次へ]ボタンをクリックします。
ボタンの名前を付けて、[完了]ボタンをクリックします。
コマンドボタンウィザードを使用しない場合の設定
コマンドボタンウィザードを使用せずに、コマンドボタンのプロパティで設定することもできます。
コマンドボタンのプロパティを表示します。
キーボードから[F4]キーを押すと、プロパティの表示/非表示を切り替えられます。
プロパティの[イベント]タブにある[クリック時]の▼ボタンを押すと、マクロ名が表示されますので、目的のマクロ名を選択します。
参考以下の記事でもウィザードを使用せずに、プロパティのクリック時イベントでマクロを指定しています。
-
独立マクロを作成してフォームを開くボタンを設置
Accessで作成済みのフォームを、ボタンをクリックして開くようにする方法です。 ここでは、独立マクロを作成してボタンに登録する方法を解説し ...
埋め込みマクロで[メニューコマンドの実行]
独立マクロは、作成した後コマンドボタンへ登録しますが、埋め込みマクロは、フォームのコマンドボタンへマクロを直接設定します。
複数のボタンへマクロを設定したい場合は、独立マクロが便利だと思います。しかし、オブジェクトは増えます。
[埋め込みマクロ]であればオブジェクトは増えることはありませんので、管理は楽になると思います。
[埋め込みマクロ]と[独立マクロの違い]については、以下の記事で解説しています。
-
ボタンをクリックしてフォームを開く(マクロビルダーで設定)
Accessで作成済みのフォームを、ボタンをクリックして開くようにする方法です。 ここでは、[ビルダーの選択]ダイアログボックスで[マクロビ ...
埋め込みマクロでも、[保存済みのインポート/エクスポート操作の実行]と[書式設定を保持したままエクスポート]もマクロアクションから選択して設定できます。
もし、テーブル/クエリを基に作成したフォームであればもっと簡単に設定することもできます。
ここでは、[新しいアクションの追加]のプルダウンから選択する方法で解説していますが、[アクションカタログ]から追加する方法もあります。
-
マクロツールで既存のアクションをコピーして活用(再利用)するには
Accessでは多くのマクロアクションが使用できます。 しかし、毎回アクションを選択して入力するのは面倒ですね。 マクロアクションは、コピー ...
フォームのデザインビューで操作
以下のフォームは、クエリを基に作成されています。
フォームのプロパティシートを開いて、[データ]タブの[レコードソース]を確認します。
テーブルかクエリが表示されていると思います。
このテーブル/クエリのデータをそのままExcelへ出力する方法です。
フォームに作成した[出力]コマンドボタンのプロパティを表示します。
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]を選択して[OK]ボタンをクリックします。
[マクロツール]ウィンドウが表示されますので、マクロアクションの一覧から[メニューコマンドの実行]を選択します。
少し下へスクロールすると、見つかると思います。
[コマンド]のプルダウンから、[Excelファイルへのエクスポート]を選択します。
上書き保存して閉じます。
プロパティのクリック時には、[埋め込みマクロ]と表示されます。
フォームビューで確認
フォームビューに切り替えて、[出力]ボタンをクリックします。
[データのエクスポート先の選択]ダイアログボックスが表示されます。
設定できるのは、[参照]ボタンをクリックして場所と名前の指定と、エクスポートの完了後にファイルを開くかどうかです。
[エクスポートの完了後にエクスポート先のファイルを開く]のチェックボックスをオンにしておくと、テーブル/クエリのデータが出力されたExcelファイルが起動します。
[データのエクスポート先の選択]ダイアログボックスの[OK]ボタンをクリックすると、[エクスポート操作の保存]ダイアログボックスが表示されます。
[エクスポート操作の保存]のチェックボックスをオンにすると、操作を保存できます。
[Excelに出力]を選択
[マクロツール]ウィンドウが表示されますので、マクロアクションの一覧から[メニューコマンドの実行]を選択します。
そして、[コマンド]のプルダウンメニューから[Excelに出力]を選択します。
[Excelファイルへのエクスポート]を選択した場合は、[データのエクスポート先の選択]ダイアログボックスが毎回表示されますが、[Excelに出力]の場合は出力のみです。
出力後のExcelファイルは起動します。単純にExcelに出力のみであれば、これが一番簡単かもしれません。
[メニューコマンドの実行]は、コマンドの呼び出しのみの指定になります。
メニューフォームのようにフォーム作成の基になるテーブルやクエリがない場合は使用できません。
以下の記事でも、出力ボタンを埋め込みマクロで設定する方法を解説しています。
-
クエリの抽出条件にテキストボックスの値を設定してレコードを抽出
Accessのクエリでレコードを抽出する方法です。 クエリの抽出条件には、フォームのテキストボックスの値を指定することができます。 また、ク ...
注意65,000件以上の出力は、書式設定を保存したままエクスポートを選択すると出力できません。
-
65000件以上のレコードのエクスポートは書式設定なしで出力
Access2013で7万レコード以上あるテーブルをExcelへエクスポートするマクロを作成しようとしたら、以下のメッセージが表示されました ...
関連[埋め込みマクロ]として設定もできます。
-
フォームを参照用と編集用にボタンで切り替え(埋め込みマクロで設定)
Accessで1つのフォームを作成して、すべての内容を見せてレコードの編集ができるようにしています。 でも、そのフォームを開く時に制限を付け ...
以下の記事では、PDFの作成を[エクスポート操作の保存]をして[埋め込めマクロ]として設定する方法を解説しています。
-
オブジェクトをPDFで保存するには(コマンドボタンの作成までを解説)
AccessのレポートをPDFで保存する方法です。レポートだけでなく、フォームなどもPDFで保存することができます。 また、エクスポート操作 ...
コマンドボタンはウィザードを使って作成した場合、少し注意しなければならないことがあります。以下の記事を参照してください。
-
コマンドボタンウィザードによるボタン作成後の[埋め込みマクロ]について
Accessでは、ウィザードを使用して簡単にボタンを作成することができます。 これについては、ウィザードを使ったコマンドボタンの作成で解説し ...