LoginSignup
2
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-06-08

VBAと混同されるマクロアクション

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

データマクロ

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

マクロアクションメッセージを出してIf文分岐させるにはどうすればよいか

例えば実行確認でCancelを押したら終了する場合
If msgbox("実行確認",vbOkCancel)=vbCancel Then Exit Sub
というような命令を書く時がある。こういうのはどうしたらよいのか
必要に迫られて調べてみた。

知恵袋

マクロアクション、実行時にメッセージボックスでyes/no選択したい

 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
ただし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 マクロ アクション
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

Access2003マクロ アクション一覧 ヘルプの森

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

Access2010 ヘルプの森

Access2010マクロ アクション一覧

Access2010のマクロアクション、データマクロの公式解説

Access 2010 でのマクロと式の操作

概要

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

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

すべてのマクロアクションの表示

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

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2