発掘:Microsoft Access Club Access RunCommand 解説

2003年ごろの記述であり、現在と異なっている場合、現在と画面が異なっていることが***通常***です。
私見ですが。RunCommandは削除、終了という機能もありますがそのほとんどは半自動化機能です。なにかのWindowを立ち上げたりネットにつないだりします。しかし、そこから先はRuncommandではできない。ツールバーの何かの機能をクリックした状態を作り出すものが多いです。これに似ているのがMicrosoftが必死に消しているCommandBarです。
VBAの一番最初の使い方は印刷だと思います。これもファイルから印刷をクリックします。Docmd.Runcommandもこれと同じです。

Microsoft Access Club
Access RunCommand 解説
http://accessclub.jp/runcommand/
DoCmdオブジェクトのRunCommandメソッドは、簡易な操作で多くの機能を利用することができます。 このメソッドは、組み込みメニュー コマンドまたはツールバー コマンドを実行します。

次の例では、RunCommand メソッドを使って、[ツール] メニューの [オプション] ダイアログ ボックスを開きます。

例.

```visualbasic
Public Function OpenOptionsDialog() As Boolean

    DoCmd.RunCommand acCmdOptions
    OpenOptionsDialog = True

End Function
```

AcCommand クラスの定数を使用します。実行される組み込みメニュー コマンドまたはツールバー コマンドを指定する組み込み定数を指定します。

Access の各メニュー コマンドまたはツールバー コマンドには、対応する定数があります。この値を指定して RunCommand メソッドを使うと、コードでコマンドを実行できます。

なお、RunCommand メソッドを使用して、カスタム メニューまたはカスタム ツールバー上のコマンドは実行できません。RunCommand メソッドは、DoCmdオブジェクトの DoMenuItemメソッドを置換します。


Runcommandサンプル図その1

![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/3d7a83e8-db02-b112-e011-52ceeb84eeb3.png)

Runcommandサンプル図その2
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/791c4965-5656-1090-e1aa-812b12fa227c.png)

Runcommandサンプル図その2
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/d9204d8f-f3fb-2e2d-31f2-4ab47925f2c4.png)

数多くの定数がありますが、働きがいまいち分からないものも多く、
利用する際に有益なものだけを選択しました。（考察完了）

|No   |Runcommand name|詳細   |
|:----|:-------------------------|:------------------|
| 1|acCmdAboutMicrosoftAccess|バージョン情報|
| 2|acCmdAddInManager|Comアドインの追加|
| 3|acCmdAnalyzePerformance|パフォーマンスの最適化|
| 4|acCmdAnalyzeTable|テーブル正規化ウィザード|
| 5|acCmdAppMaximize|Accessウィンドウを最大化|
| 6|acCmdAppMinimize|Accessウィンドウを最小化|
| 7|acCmdAppRestore|Accessウィンドウを元の状態に戻す|
| 8|acCmdAnswerWizard|アンサーウィザード-HELP起動|
| 9|acCmdDebugWindow|イミディエイト画面を表示|
| 10|acCmdDelete|オブジェクトの削除|
| 11|acCmdDocMaximize|オブジェクトを最大化|
| 12|acCmdDocMinimize|オブジェクトを最小化|
| 13|acCmdDocRestore|オブジェクトを元のサイズに戻す|
| 14|acCmdDocumenter|データベース構造の解析画面の呼び出し|
| 15|acCmdExit|データベースの終了（保存）|
| 16|acCmdArrangeIconsAuto|アイコンの自動整列機能をオン/オフ|
| 17|acCmdArrangeIconsByCreated|アイコンの作成順並び替え|
| 18|acCmdArrangeIconsByModified|アイコンの更新順並び替え|
| 19|acCmdArrangeIconsByName|アイコンの名前順並び替え|
| 20|acCmdArrangeIconsByType|アイコンの種類順並び替え|
| 21|acCmdAutoCorrect|オートコレクトオプション画面の起動|
| 22|acCmdClose|オブジェクトを閉じる|
| 23|acCmdCloseWindow|ウィンドウを閉じる|
| 24|acCmdCompileAllModules|モジュール（プロシージャ）をコンパイルする|
| 25|acCmdDatabaseProperties|データベースプロパティを表示する|
| 26|acCmdDatabaseSplitter|データベース分割ツール画面を表示|
| 27|acCmdDatasheetView|フォームをデータシート ビューに切り替え|
| 28|acCmdDeleteRecord|フォーム上でレコードを削除する|
| 29|acCmdDesignView|フォームのデザインビュー画面に切り替え|
| 30|acCmdEncryptDecryptDatabase|暗号化したデータベースの作成|
| 31|acCmdExport|オブジェクトのエクスポート|
| 32|acCmdImport|オブジェクトのインポート|
| 33|acCmdFavoritesAddTo|お気に入りフォルダーに追加する|
| 34|acCmdFavoritesOpen|お気に入りフォルダーからファイルを開く|
| 35|acCmdFormView|フォームビューへ画面を切り替える|
| 36|acCmdInsertActiveXControl|ActiveXコントロールの挿入画面を開く|
| 37|acCmdLinkedTableManager|リンクテーブルマネージャ画面を表示|
| 38|acCmdLinkTables|リンク設定ダイアログの表示|
| 39|acCmdMicrosoftAccessHelpTopics|Accessヘルプを立ち上げる|
| 40|acCmdMicrosoftOnTheWeb|Officeウエブサイトを立ち上げる|
| 41|acCmdMoreWindows|オブジェクト選択ダイアログを開く|
| 42|acCmdNewObjectClassModule|クラスモジュールを新規作成|
| 43|acCmdNewObjectForm|フォーム作成新規ウィザードの立ち上げ|
| 44|acCmdNewObjectMacro|新規マクロ作成画面の立ち上げ|
| 45|acCmdNewObjectModule|新規標準モジュール作成画面の立ち上げ|
| 46|acCmdNewObjectQuery|クエリ作成新規ウィザードの立ち上げ|
| 47|acCmdNewObjectReport|レポート作成新規ウィザードの立ち上げ|
| 48|acCmdNewObjectTable|テーブル作成新規ウィザードの立ち上げ|
| 49|acCmdOfficeClipboard|クリップボードの立ち上げ|
| 50|acCmdOpenSearchPage|MSN Searchのウエブサイトを開く|
| 51|acCmdOpenStartPage|IEの標準WEBページを開く|
| 52|acCmdOpenURL|任意のURLを開くダイアログを立ち上げ|
| 53|acCmdOptions|Accessのオプション設定ダイアログを開く|
| 54|acCmdOutputToExcel|テーブル、クエリデータをExcelへ出力|
| 55|acCmdOutputToRTF|テーブル、クエリデータをRTF形式で出力|
| 56|acCmdOutputToText|テーブル、クエリデータをTXT形式で出力|
| 57|acCmdPrintPreview|印刷プレビューの表示|
| 58|acCmdPrintRelationships|リレーションシップの印刷|
| 59|acCmdRegisterActiveXControls|ActiveX コントロールの登録ダイアログ|
| 60|acCmdRelationships|リレーション設定画面を開く|
| 61|acCmdRunMacro|マクロ実行選択ダイアログを表示させる|
| 62|acCmdRunOpenMacro|開いているマクロの実行|
| 63|acCmdSave|開いているオブジェクトの上書き保存|
| 64|acCmdPageSetup|ページ設定ダイアログを開く|
| 65|acCmdPrint|印刷設定ダイアログを開く|
| 66|acCmdSaveAs|名前を付けて保存ダイアログを開く|
| 67|acCmdSaveAsDataAccessPage|データアクセスページの保存|
| 68|acCmdSaveAsReport|フォームからレポートの作成|
| 69|acCmdSaveRecord|テーブル、クエリのレコードの保存|
| 70|acCmdSelectAllRecords|テーブル、クエリの全レコードの選択|
| 71|acCmdSelectDataAccessPage|データアクセスページのプロパティ表示|
| 72|acCmdSelectRecord|テーブル、クエリのレコード選択|
| 73|acCmdSend|オブジェクトを添付文書としてメール送信|
| 74|acCmdSetDatabasePassword|データベースパスワードの設定|
| 75|acCmdShowOnlyWebToolbar|ツールバーをWEBのショートカットに変更|
| 76|acCmdStartupProperties|起動時の設定ダイアログの表示|
| 77|acCmdSwitchboardManager|メニュー用フォームビルダを開く|
| 78|acCmdTileHorizontally|オブジェクトを上下に配置|
| 79|acCmdTileVertically|オブジェクトを左右に配置|
| 80|acCmdToolbarsCustomize|ツールバーのユーザー設定ダイアログ|
| 81|acCmdUndo|元に戻す|
| 82|acCmdUnfreezeAllColumns|列の固定設定の解除|
| 83|acCmdUnhideColumns|隠れているフィールドの表示|
| 84|acCmdUpsizingWizard|アップサイジングウィザードを開く|
| 85|acCmdUserAndGroupAccounts|ユーザー/グループアカウントの設定|
| 86|acCmdUserAndGroupPermissions|ユーザー/グループのパーミッション設定|
| 87|acCmdUserLevelSecurityWizard|セキュリティ ウィザード ダイアログを開く|
| 88|acCmdViewDataAccessPages|データベースウィンドウのページを表示|
| 89|acCmdViewDetails|詳細モードでデータベースウィンドウを表示|
| 90|acCmdViewForms|データベースウィンドウのフォームを表示|
| 91|acCmdViewLargeIcons|大きいIconでデータベースウィンドウ表示|
| 92|acCmdViewList|一覧モードでデータベースウィンドウ表示|
| 93|acCmdViewMacros|データベースウィンドウのマクロを表示|
| 94|acCmdViewModules|データベースウィンドウのモジュールを表示|
| 95|acCmdViewQueries|データベースウィンドウのクエリを表示|
| 96|acCmdViewReports|データベースウィンドウのレポートを表示|
| 97|acCmdViewSmallIcons|小さいIconでデータベースウィンドウ表示|
| 98|acCmdViewTables|データベースウィンドウのテーブルを表示|
| 99|acCmdViewToolbox|ツールボックスメニューを表示する|
| 100|acCmdVisualBasicEditor|Visual Basic Editor を開く|
| 101|acCmdWindowCascade|開いているオブジェクトを整列させる|
| 102|acCmdWindowHide|データベースウィンドウを非表示にする|
| 103|acCmdWorkgroupAdministrator|ワークグループの管理者ダイアログを開く|
| 104|acCmdZoom10|印刷プレビューの表示倍率を10%に設定|
| 105|acCmdZoom25|印刷プレビューの表示倍率を25%に設定|
| 106|acCmdZoom50|印刷プレビューの表示倍率を50%に設定|
| 107|acCmdZoom75|印刷プレビューの表示倍率を75%に設定|
| 108|acCmdZoom100|印刷プレビューの表示倍率を100%に設定|
| 109|acCmdZoom150|印刷プレビューの表示倍率を150%に設定|
| 110|acCmdZoom200|印刷プレビューの表示倍率を200%に設定|
| 111|acCmdZoom500|印刷プレビューの表示倍率を500%に設定|
| 112|acCmdZoom1000|印刷プレビューの表示倍率を1000%に設定|

###acCmdAddInManager : Access RunCommand
http://accessclub.jp/runcommand/acCmdAddInManager.html
この定数は、Comアドインの追加を画面上から行うことができます。このComアドインは通常は使用する機会はまずないかと思います。

```visualbasic
'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。
Function RunCommandMenu()
    DoCmd.RunCommand acCmdAddInManager
End Function

Private Sub Cmボタン_Click()

    Call RunCommandMenu
End Sub
```

この定数を実行しますと、下記の画面が表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/953e0798-6a94-8794-9ccd-1d86cbf1bdcc.png)

2003/05/22

####acCmdAboutMicrosoftAccess : Access RunCommand
http://accessclub.jp/runcommand/acCmdAboutMicrosoftAccess.html

この定数は、メニューバーの「ヘルプ」→「バージョン情報」をクリックした時と同じアクションを返します。この「バージョン情報」とは、下記のメッセージボックスが表示されることです。

　
```visualbasic

'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。

Function RunCommandMenu()
    DoCmd.RunCommand acCmdAboutMicrosoftAccess
End Function
Private Sub Cmボタン_Click()
    Call RunCommandMenu
End Sub
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/15ea3672-b396-9f05-8bc0-43eec5df285e.png)
2003/05/22

acCmdAnalyzePerformance : Access RunCommand


この定数は、パフォーマンスの最適化 ツールを呼び出すことができます。 この定数を実行しますと、下記の画面が表示されます。

　
```visualbasic

'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。

Function RunCommandMenu()
    DoCmd.RunCommand acCmdAnalyzePerformance
End Function
Private Sub Cmボタン_Click()
    Call RunCommandMenu

End Sub
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/62c87e7f-4bca-04f2-7dc1-5f8e8c3b414d.png)

#####パフォーマンス最適化ツールを実行する
パフォーマンス最適化ツールを使用して、Access データベースのパフォーマンスを最適化することができます。ただし、Access プロジェクトでは、パフォーマンス最適化ツールを利用できません。
 1. 最適化する Access データベースを開きます。
 2. [ツール] メニューの [解析] をポイントし、[パフォーマンスの最適化] をクリックします。
 3. 最適化するデータベース オブジェクトの種類のタブをクリックします。すべてのデータベース オブジェクトの一覧を表示するには、[すべてのオブジェクト] タブをクリックします。
 4. 最適化するデータベース オブジェクトの名前を選択します。一覧に示されたすべてのデータベース オブジェクトを選択するには、[すべて選択] をクリックします。
 5. 手順 3、4 を繰り返して最適化するオブジェクトをすべて選択し、次に [OK] をクリックします。 <br> パフォーマンス最適化ツールでは、推奨事項、提案事項、およびアイデアの 3 種類の解析結果が示されます。[解析結果] ボックスの一覧に表示された最適化処理をクリックすると、[メモ] ボックスに情報が表示されます。提案事項の最適化処理の場合は交換条件があり、実行する前にその利益と不利益を考慮する必要があります。交換条件については、一覧の [提案事項] をクリックし、[メモ] ボックスに表示される情報を参照してください。推奨事項および提案事項の最適化処理は Access で実行されます。アイデアの最適化処理はユーザーが実行します。 
 6. 実行する推奨事項または提案事項の最適化処理を 1 つまたは複数クリックし、[最適化] をクリックします。パフォーマンス最適化ツールは、最適化処理を実行し、実行した処理に "修正済み" のマークを付けます。選択した推奨事項または提案事項の最適化処理をすべて実行するまで、この処理を行います。<br><br>  推奨事項または提案事項の最適化処理をすべて実行するには、[すべて選択] をクリックし、[最適化] をクリックします。<br><br>  アイデアの最適化処理を実行するには、その最適化処理をクリックし、[メモ] ボックスに表示される指示に従ってください。 

メモ  パフォーマンス最適化ツールでは、Access 自体または Access を実行するシステムのパフォーマンスを向上させる方法に関する提案事項は表示されません。
 ※Accessヘルプから引用しています。
2003/05/24

####acCmdAnalyzeTable : Access RunCommand

この定数は、テーブル正規化ウィザードツールを呼び出すことができます。 この定数を実行しますと、下記の画面が表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/c5839500-43c9-3cc0-d2e5-f2feb82f0cb2.png)

```visualbasic
'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。
Function RunCommandMenu()
    DoCmd.RunCommand acCmdAnalyzeTable
End Function
Private Sub Cmボタン_Click()
    Call RunCommandMenu
End Sub
```
#####テーブル正規化ウィザード
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/7784a2fc-bb74-af14-810b-7e5c58d8c79a.png)
    1. 元のテーブル
    2. テーブル正規化ウィザードで作成したテーブル
    3. テーブル正規化ウィザードで作成したクエリ
    4. ルックアップ リスト

Access データベースのテーブルの 1 つまたは複数のフィールドに重複する情報が保存されている場合、テーブル正規化ウィザードを使用してデータを複数の関連テーブルに分割すると、より効率的に保存することができます。この処理を正規化といいます。

テーブル正規化ウィザードは、重複する情報が格納されているテーブルを分割し、各情報がいずれかのテーブルで 1 つだけ保持されるようにします。

これにより、より効率的で容易にデータベースを更新できるようになると共に、データベースのサイズが縮小されます。
このウィザードでデータが分割された後も、ウィザードで作成されたクエリを利用することにより、引き続きデータを 1 か所で表示および操作することができます。

 クエリを使用して、複数のテーブルのデータを同時に更新できます。クエリを使用すると、このほかにもさまざまな機能で、データを短時間により正確に処理することができます。

 - クエリ内で重複するフィールドの値を変更する場合、実際にはクエリの基になるテーブルの 1 つのフィールドの値を更新しているので、その値を含むすべてのレコードが自動的に更新されます。
 - クエリは、新しいテーブルからルックアップ フィールドを継承します。ルックアップ フィールドでは、値を入力する代わりに、一覧から値を選択してフィールドの値を変更することができます。ルックアップ リストには、基になるテーブルから参照した値が表示されます。同じ値が複数のレコードに適用される場合、その都度一覧から値を選択して、正確さと一貫性を保持することができます。
 - このウィザードでは、元のテーブルの名前がクエリに割り当てられ、テーブルの名前が変更されるので、元のテーブルを基にしていたフォーム、レポート、およびデータ アクセス ページは、自動的にクエリを基にするようになります。
 - クエリを基にする既存のフォームやレポートは、フィールドの自動更新を継承します。新しいフォームやレポートは、ルックアップ リストも継承します。
 ※Accessヘルプから引用しています。

2003/05/24

####acCmdAppMaximize : Access RunCommand
http://accessclub.jp/runcommand/acCmdAppMaximize.html
 この定数は、Accessウィンドウを最大化することができます。 この定数は下記のように実行することができます。

```visualbasic
'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。

Function RunCommandMenu()
    DoCmd.RunCommand acCmdAppMaximize
End Function
Private Sub Cmボタン_Click()
    Call RunCommandMenu
End Sub
```

実際に使用する一例としては、フォーム上からコマンドボタンのクリック時イベントに配置する方法があります。

 - フォームの「ポップアッププロパティ」を"はい"に設定します。

このプロパティを"はい"にすると、フォームを下記のようにAccess領域の外側に移動させることができます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/a2449c71-c9f7-02e0-a98f-7ff295a20d3c.png)
これを元に戻す場合などに使用できます。

 -「作業ウィンドウ」プロパティを"はい"に設定すると、この定数を利用できなくなります。
　
2003/05/24
####acCmdAppMinimize 最小化(略)
####acCmdAppRestore : Access RunCommand
http://accessclub.jp/runcommand/acCmdAppRestore.html

この定数は、Accessウィンドウを元の状態に戻すことができます。 この定数は下記のように実行することができます。

　
```visualbasic


'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。
Function RunCommandMenu()
   DoCmd.RunCommand acCmdAppRestore
            
End Function

Private Sub Cmボタン_Click()
    Call RunCommandMenu    
End Sub
```

実際に使用する一例としては、フォーム上からコマンドボタンのクリック時イベントに配置する方法があります。

 - フォームの「ポップアッププロパティ」を"はい"に設定します。

このプロパティを"はい"にすると、フォームを下記のようにAccess領域の外側に移動させることができます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/6baf7262-d13f-8aa5-01c7-60243d37c60c.png)
この状態からAccess領域を最大化にして、次にこの定数を実行させると、元のこの状態に戻る仕組みです。

   -「作業ウィンドウ」プロパティを"はい"に設定すると、この定数を利用できなくなります。

※Accessヘルプから引用しています。
2003/05/24
####acCmdAnswerWizard : Access RunCommand
http://accessclub.jp/runcommand/acCmdAnswerWizard.html



```visualbasic
'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。
'サンプルプロシージャは、フォーム上のコマンドボタンをクリックし処理を実行する設定です。
Function RunCommandMenu()
   DoCmd.RunCommand acCmdAnswerWizard
End Function
Private Sub Cmボタン_Click()
   Call RunCommandMenu    
End Sub
```
　
下記のヘルプ画面が立ち上がります
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/17ae8099-e6e2-4576-0f1d-3ee796258971.png)
2003/11/13

acCmdDebugWindow : Access RunCommand


この定数を用いると、VBE画面の イミディエイト 画面を開く ことができます。 利用するには、下記のように記述します

```visualbasic

'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。
'サンプルプロシージャは、フォーム上のコマンドボタンをクリックし処理を実行する設定です。
Function RunCommandMenu()
    DoCmd.RunCommand acCmdDebugWindow    
End Function
Private Sub Cmボタン_Click()
    Call RunCommandMenu
End Sub
```
  この場合、イミディエイト画面だけが立ち上がるのではありません。VBE画面も同時に立ち上がります。
   但し、カーソルはイミディエイト画面にあります（フォーカスはイミディエイト画面）。
2003/11/27

####acCmdDelete : Access RunCommand
この定数を用いると、フォーカスを持つオブジェクトを削除 することができます。 利用するには、下記のように記述します

```visualbasic

'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。
'サンプルプロシージャは、フォーム上のコマンドボタンをクリックし処理を実行する設定です。

Function RunCommandMenu()

    DoCmd.RunCommand acCmdDelete
                
End Function
```

警告メッセージ非表示、エラー処理を施したプロシージャは、下記のとおり。

```visualbasic

Function RunCommandMenu2()

    On Error GoTo エラー
    
    DoCmd.SetWarnings False '警告メッセージをオフにします。

    DoCmd.RunCommand acCmdDelete
    
    DoCmd.SetWarnings True '警告メッセージをオンにします。
    
    Exit Function
    
エラー:

    '削除をキャンセルした場合のエラーナンバー。
    If Err.Number = 2501 Then
        MsgBox "取り消ししました。"
    Else
        MsgBox "予期せぬエラーが発生しました。"
    End If
                
End Function
```

 - この削除コマンド（acCmdDelete）は、フォーム上のコマンドボタンでは利用できません。
 - イミディエイト画面でこのプロシージャを実行すると、データベースウィンドウでフォーカスのあるオブジェクトが削除されます。
 - 削除に際しては、事前に警告メッセージが立ち上がります。
 - 但し、カーソルはイミディエイト画面にあります（フォーカスはイミディエイト画面）。

2003/11/27

####acCmdDocMaximize --Access RunCommand--
http://accessclub.jp/runcommand/acCmdDocMaximize.html
この定数を用いると、開いているオブジェクトを最大化 することができます。 <コード省略>

 -　この場合、このプロシージャを実行したフォームが最大化されます。
 -　Access自体が最大化されるのではありません。

####acCmdDocMinimize : Access RunCommand(略)
http://accessclub.jp/runcommand/acCmdDocMinimize.html
上記の最小化命令。
####acCmdDocRestore : Access RunCommand(略)
この定数を用いると、開いているオブジェクトを元に戻す ことができます。
DoCmd.Restore を用いるのと同じです。
この場合、このプロシージャを実行したフォーム状態が元に戻ります。
Access自体の状態が元に戻るのではありません。

####acCmdOfficeClipboard : Access RunCommand 049
この定数を用いると、クリップボードのダイアログを立ち上げる ことができます。イミディエイト画面上、フォーム上のコマンドボタン、ツールバーからといろいろと利用できます。

```visualbasic
Function RunCommandMenu()

    On Error GoTo エラー
    
    DoCmd.RunCommand acCmdOfficeClipboard
    
    Exit Function
    
エラー:

    'エラーを分岐。
    If Err.Number = 2046 Then
        MsgBox Err.Description
    ElseIf Err.Number = 2501 Then
        MsgBox Err.Description
    Else
        MsgBox "予期せぬエラーが発生しました。： " & Err.Number
    End If
    
    End

End Function
```

 - プロシージャを実行すると、~~左記~~下記の画面が開きます。
 - これ以降の作業は、通常と同じです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/3da30876-466d-1d74-8e52-02db3d847d65.png)

####acCmdOpenSearchPage : Access RunCommand050
http://accessclub.jp/runcommand/acCmdOpenSearchPage.html

この定数を用いると、~~MSN Search~~Bingのウエブサイトを開く ことができます。イミディエイト画面上、フォーム上のコマンドボタン、ツールバーからといろいろと利用できます。

```visualbasic

'Functionプロシージャは、VBE画面の標準モジュール欄に記述してください。
Function RunCommandMenu()
    On Error GoTo エラー
    DoCmd.RunCommand acCmdOpenSearchPage
    Exit Function
エラー:
    'エラーを分岐。
    If Err.Number = 2046 Then
        MsgBox Err.Description
    ElseIf Err.Number = 2501 Then
        MsgBox Err.Description
    Else
        MsgBox "予期せぬエラーが発生しました。： " & Err.Number
    End If
    
    End

End Function
'サンプルプロシージャは、フォーム上のコマンドボタンをクリックし処理を実行する設定です。

Private Sub Cmボタン_Click()

    Call RunCommandMenu
    
End Sub
```

   残念ながら、本家（米国）のMSN Searchページとなります。下記を参照。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/126919/dd98f89e-6d98-f4c1-abd7-1c9599556705.png)

MSN Search ウエブサイト(この発掘を行ったときはBing.comにジャンプしました)
    http://search.msn.com/
2003/12/16
acCmdOpenSearchPage : Access RunCommand