| Index | Prev | Next |
| Index | Prev | Next |

 

Chapter2-10 マクロとDocmdオブジェクト

マクロで行なえる処理は、VBAではすべて「Docmd」オブジェクトを使うことで処理できます(”オブジェクト”については後述)。Docmdオブジェクトは、VBAにおけるマクロの代替機能です。たとえば、「フォームを開く」アクションは、次のように記述します。


DoCmd.OpenForm "顧客マスタ"



■Docmdオブジェクトの引数
マクロで指定するアクションの引数は、Docmdオブジェクトへの引数として指定します。直接フォーム名などを指定したり、組み込み定数を指定したりします。


VBAのコーディングの際には、Docmdオブジェクトで使えるマクロのアクションや引数は自動ヒント機能で一覧表示されます。しかし、それらはすべて英語なので、その対応をある程度は覚えておかなければなりません。主なものについては下表を参考にしてください。また、具 体的なアクションとの対応や引数が分からないときは、マクロをモジュールに変換することで具体的に知ることができます([ファイル]-[名前を付けて保存]→”モジュール”)。

■Docmdオブジェクトの記述例
アクション Docmdオブジェクトのプログラム例
SQLの実行 DoCmd.RunSQL "DELETE * FROM 顧客マスタ"
オブジェクトの選択 DoCmd.SelectObject acForm, "顧客マスタ"
クエリを開く DoCmd.OpenQuery "qsel顧客マスタ"
コマンドの実行
(すべてのレコードの選択)
DoCmd.RunCommand acCmdSelectAllRecords
コマンドの実行
(レコードの削除)
DoCmd.RunCommand acCmdDeleteRecord
コマンドの実行
(レコードの選択)
DoCmd.RunCommand acCmdSelectRecord
コマンドの実行
(レコードの保存)
DoCmd.RunCommand acCmdSaveRecord
サイズ変更 DoCmd.MoveSize , , 5670, 4536
データベース変換 DoCmd.TransferDatabase acImport, "Microsoft Access", "c:\Database1.accdb", , "顧客マスタ", "顧客マスタ"
テーブルを開く DoCmd.OpenTable "顧客マスタ"
テキスト変換 DoCmd.TransferText acImportDelim, "", "顧客マスタ", "c:\顧客マスタ.txt"
フォームを開く DoCmd.OpenForm "顧客マスタ"
メッセージの設定 DoCmd.SetWarnings False
レポートを開く DoCmd.OpenReport "rpt顧客マスタ"
ワークシート変換 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "顧客マスタ", "c:\顧客マスタ.xls", False
印刷 DoCmd.PrintOut acPages, 1, 2
元のサイズに戻す DoCmd.Restore
砂時計ポインタ DoCmd.Hourglass True
最小化 DoCmd.Minimize
最大化 DoCmd.Maximize
終了する DoCmd.Quit
閉じる DoCmd.Close

  • これ以外のアクションも自動メンバ表示やVBA変換によって確認できます。
  • 上表にない“コントロールの移動”や”レコードの移動”、”再クエリ”などのアクションは、Docmdオブジェクトではなく、「メソッド」と呼ばれるVBA専用の命令で実行します。
  • 「Quit」はApplicationオブジェクト(後述)にも同様のメソッドがあるので、「Quit」という記述だけでも動作します。
Copyright © T'sWare All rights reserved