DoCmdオブジェクトとは
DoCmdオブジェクトを使用することで、Accessに存在するデータベースオブジェクトを、VBAから操作・制御することができます。DoCmdオブジェクトはアクションによって、ウィンドウを閉じる、フォームを開く、コントロールの値を設定する、などのタスクを実行する等、Accessで行える殆どのアクションを実行することが可能です。
DoCmdオブジェクトのメソッド一例
- OpenTableメソッド
データシート ビュー、デザイン ビュー、または印刷プレビューでテーブルを開く場合に使用します。
| 引数名 | 必須/オプション | データ型 | 説明 |
|---|---|---|---|
| TableName | 必須 | Variant | 開くテーブル名 |
| View | オプション | AcView | 開くビューのタイプ |
| DataMode | オプション | AcOpenDataMode | 開く時のデータ入力モード |
- OpenQueryメソッド
データシート ビュー、デザイン ビュー、または印刷プレビューで選択クエリまたはクロス集計クエリを開く場合に使用します。
| 引数名 | 必須/オプション | データ型 | 説明 |
|---|---|---|---|
| QueryName | 必須 | Variant | 開くクエリ名 |
| View | オプション | AcView | 開くビューのタイプ |
| DataMode | オプション | AcOpenDataMode | 開く時のデータ入力モード |
- OpenFormメソッド
フォームビュー、フォームデザインビュー、印刷プレビュー等でフォーム開く場合に使用します。また、DataModeとWindowModeを指定することで、フォームに表示されるレコードを制限することが出来ます。
| 引数名 | 必須/オプション | データ型 | 説明 |
|---|---|---|---|
| FormName | 必須 | Variant | 開くフォーム名 |
| View | オプション | AcView | 開くビューのタイプ |
| FilterName | オプション | Variant | クエリ名を文字列で指定 |
| WhereCondition | オプション | Variant | SQL WHERE句を文字列で指定 |
| DataMode | オプション | AcOpenDataMode | 開く時のデータ入力モード |
| WinidowMode | オプション | VAcwindowmode | ウィンドウモードの指定 |
| OpenArgs | オプション | Variant | 開くときに渡す文字列 |
- OpenReportメソッド
レポートをデザインビューまたは印刷プレビューで開いたり、レポートをすぐに印刷する場合に使用します。
| 引数名 | 必須/オプション | データ型 | 説明 |
|---|---|---|---|
| ReportName | 必須 | Variant | 開くレポート名 |
| View | オプション | AcView | 開くビューのタイプ |
| FilterName | オプション | Variant | クエリ名を文字列で指定 |
| WhereCondition | オプション | Variant | SQL WHERE句を文字列で指定 |
| DataMode | オプション | AcOpenDataMode | 開く時のデータ入力モード |
| WinidowMode | オプション | VAcwindowmode | ウィンドウモードの指定 |
| OpenArgs | オプション | Variant | 開くときに渡す文字列 |
- MoveSizeメソッド
アクティブなウィンドウを移動またはサイズ変更します。
| 引数名 | 必須/オプション | データ型 | 説明 |
|---|---|---|---|
| Right | オプション | Variant | 表示するウィンドウの左端からの距離 |
| Down | オプション | Variant | 表示するウィンドウの上端からの距離 |
| Width | オプション | Variant | ウィンドウの幅 |
| Height | オプション | Variant | ウィンドウの高さ |
引数の単位はtwipで、$1twip = 1/1440インチ$に相当します。
上記のメソッドを用いて下の画像のようにウィンドウのサイズと位置を指定して、テーブル、クエリ、フォーム、レポートを開くことが出来ます。
Sub OpenAllObjects_CompactView()
' フォームビュー(左上)
DoCmd.OpenForm "CustomerForm", acNormal
DoCmd.MoveSize 0, 0, 8000, 4000
' クエリビュー(右上)
DoCmd.OpenQuery "RecentOrders", acViewNormal
DoCmd.MoveSize 8200, 0, 8000, 4000
' テーブルビュー(左下)
DoCmd.OpenTable "Customers", acViewNormal
DoCmd.MoveSize 0, 4100, 8000, 4000
' レポートビュー(右下、プレビュー)
DoCmd.OpenReport "SalesReport", acViewPreview
DoCmd.MoveSize 8200, 4100, 8000, 4000
End Sub

#### 参照
武藤 玄「VBAエキスパート公式テキスト Access VBA ベーシック」
DoCmd.OpenTable メソッド (Access) | Microsoft Learn
DoCmd.OpenQuery メソッド (Access) | Microsoft Learn
DoCmd.OpenForm メソッド (Access) | Microsoft Learn
DoCmd.OpenReport メソッド (Access) | Microsoft Learn
DoCmd.MoveSize メソッド (Access) | Microsoft Learn