Access マクロアクションでVBAのように確認messageを出すにはどうしたらよいか　

#VBAと混同されるマクロアクション
ついでにデータマクロとも混同されるし、マクロアクション自体がVBAに変換できる。
ようはよく使う動作、アクションクエリ、プロシージャに実行などを、VBAに似たマクロアクションとして記述し、マクロボタンに保存しておく。
動かすときはマクロボタンをダブルクリックするとよい。
Excelなどでも、フォームやコマンドボタンでマクロ（VBA）を動かすことができる。
マクロボタンをつくり、それをクリックするというイベントにCallと書くということでできる。
これに似ている。

##データマクロ
テーブル単位に強く関連している。
ExcelのVBAはモジュールに記録するが、シート内に記述することもできる。
このシート内に記述するVBAに近いものがデータマクロといえる。


#マクロアクションメッセージを出してIf文分岐させるにはどうすればよいか
例えば実行確認でCancelを押したら終了する場合
If msgbox("実行確認",vbOkCancel)=vbCancel Then Exit Sub
というような命令を書く時がある。こういうのはどうしたらよいのか
必要に迫られて調べてみた。
##知恵袋
[マクロアクション、実行時にメッセージボックスでyes/no選択したい]( https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13111207528)

　1. 条件分岐が必要となるので、新しいアクションの追加でIfを選択する。
　2. Ifの入力ボックスの右隣のビルダーを起動する。
　3. 式ビルダから関数→組込関数→MsgBoxを選択する。
　4. MsgBox(≪prompt≫, ≪buttons≫, ≪title≫, ≪helpfile≫, ≪context≫) の構文に値を入力する。

prompt ダイアログ ボックス内にメッセージとして表示する文字列
buttons 表示されるボタンの種類（4 [はい] ボタンと [いいえ] ボタンを表示します。 ）
title ダイアログ ボックスのタイトル バーに表示する文字列 混乱するので省略推奨
helpfile 省略
context 省略
## 実際の実行確認messageのパターン

If msgBox("実行確認",1)=2 Then
マクロの中止
If 文の最後

##定番の動作
この後
メッセージの設定　いいえ(すべてのアクションを表示 システムコマンドから選択 メッセージボックスではない)
砂時計ポインターの表示はい(システムコマンドから選択)
ナビゲーションウィンドウのロックはい

そしてマクロの終わりに
メッセージの設定　はい
砂時計ポインターの表示いいえ
ナビゲーションウィンドウのロックいいえ

を記述する。


##Point MsgBoxの関数の定数は文字はダメなので公式で値を確認する

[MsgBox 関数 -Access]( https://support.office.com/ja-jp/article/MsgBox-%E9%96%A2%E6%95%B0-E23511C8-4157-4E09-93A6-BA9F1749F4C0)
ただしVBAと違い定数が使えない
VbOkOnly とすると自動的に [VbOkOnly]となり、エラーになる


###buttons 引数

|定数|値 |説明|
|:--:|:---:|:---:|
|vbOKOnly|0|[OK] ボタンのみを表示します。|
|vbOKCancel|1|[OK] ボタンと [キャンセル] ボタンを表示します|
|vbYesNoCancel|3|[はい] ボタン、[いいえ] ボタン、[キャンセル] ボタンを表示します。|
|vbYesNo|4|[はい] ボタンと [いいえ] ボタンを表示します。|
|vbCritical|16|重要メッセージ アイコンを表示します。|
|vbQuestion|32|警告クエリアイコンを表示します。|
|vbExclamation|48|警告メッセージアイコンを表示します。|
| vbInformation|64|情報メッセージ アイコンを表示します。|

例えばOKのみで警告なら　0+32=32をいれる。vbOkOnly + vbInformation
という記述はできない。

###メッセージだけだったらメッセージボックスというマクロアクションがある

[MessageBox マクロ アクション](https://support.office.com/ja-jp/article/messagebox-%E3%83%9E%E3%82%AF%E3%83%AD-%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-af01a015-8b69-4be0-a4ab-57bc32497c31)
Access データベースでは、MessageBox マクロ アクションを使用し、警告または情報メッセージを含むメッセージ ボックスを表示できます。たとえば、検証 マクロで MessageBox マクロ アクションを使用できます。コントロール または レコード がマクロの検証条件を満たさないとき、メッセージ ボックスにエラー メッセージが表示され、入力する必要のあるデータの種類に関する指示が与えられます。
####注: 
Access 2010 より、メッセージ ボックス マクロ アクションの名前が MsgBox から MessageBox に変更されました。

####この注は当たり前だ
名前が似すぎて混乱するばかりだ。msgbox多すぎでしょ。

###戻り値
vbCancelは2なのでサンプルでも2を使用した

|定数|値 |説明|
|:--:|:---:|:---:|
|vbOK|1|OK|
|vbCancel|2|キャンセル |
|vbAbort|3|中止 |
|vbRetry|4|再試行|
|vbIgnore|5|無視|
|vbYes|6|はい|
|vbNo|7|いいえ |

#参考
##マクロアクションの一覧
### Access2003 -Relief
[Access マクロのアクション一覧-2003](https://www.relief.jp/docs/001880.html)

[ Access2003マクロ アクション一覧 ヘルプの森](http://www.helpforest.com/access/ac_list/ac100001.htm)

>Access2003のマクロのアクション一覧です。
今や古きよき記録になりましたね。

### Access2010 ヘルプの森
[ Access2010マクロ アクション一覧 ](http://www.helpforest.com/access/ac_list/ac100002.htm)


## Access2010のマクロアクション、データマクロの公式解説
[Access 2010 でのマクロと式の操作](https://msdn.microsoft.com/ja-jp/library/office/gg435977(v=office.14).aspx#odc_ac14_ta_WorkingwithDataMacros_MacroDesigner)
###概要

>ほとんどの Microsoft Access 2010 開発者は、マクロの記述を好みません。特別な状況 (AutoKeys および AutoExec マクロの作成など) を除き、アプリケーションの拡張性が重視される世界でマクロは十分な市民権を得ていません。マクロは、Microsoft Access ユーザーが Microsoft Visual Basic for Applications (VBA) プログラミングの領域に飛び込む前の準備をするための手段になっています。マクロの記述で使用されるアクション (DoCmd オブジェクトの派生オブジェクト) は VBA で使用されるメソッドに相当しますが、マクロ デザイナーのインターフェイスは Visual Basic Editor の機能の充実ぶりに比べると貧弱です。

>Access 2010 のリリースによって、マクロのデザインと使用法にいくつかの新機能が追加されました。これらは、開発者にとってもユーザーにとっても魅力的なものです。具体的には、***マクロ デザイナー***の改良、***テーブルベースのデータ マクロ***、***式の作成方法の変更(式ビルダ)***が挙げられます。改良されたマクロ デザイナーは、これまでよりも柔軟で読んで理解しやすいマクロを作成するのに役立ちます。また、マクロをテーブルに追加できるようになり、追加したマクロはそのテーブルに基づいて作成されたすべてのオブジェクトで継承されます。式ビルダーでは、Intellisense によって式の作成が容易になりました。

###すべてのマクロアクションの表示
>アクションは、ダブルクリックしたり、マクロ デザイナー上にドラッグ アンド ドロップしたりできます。既定では、[ アクション カタログ] と [新しいアクションの追加] コンボ ボックスに、信頼されていないデータベースで実行されるアクションが表示されます。すべてのアクションを表示するには、リボンの [すべてのアクションを表示] コマンドをクリックします (図 4 を参照)。