pickup

目次

MsgBoxが処理を続けるか判断する

こんにちは。伊川(@naonaoke)です。

今回は、MsgBoxが処理を中断するか、続行するかを判断します。


以前、上の記事で、MsgBoxを紹介しました。

しかし、みなさんの日常で、【再試行】とか、【よろしいですか?】等を選択後に、処理が実行される場合があります。

MsgBoxの処理の方法を紹介します。

問題提起

 

(株)IKAWAの阿久 世子男(アク セスオ)は、上司から下記の依頼を受けました。

・市販のソフトのように、アラートの中で、【Yes】or 【No】を選択できるようにして欲しい。

どのようなコードを記載すればいいだろうか?

解決策

 

回答
sesuo2.jpg
・MsgBoxで、【Yes】or 【No】を選択させる
・Select case 、IF構文で条件分岐をする。

MsgBoxで処理実行判定をする

他のセクションと共同でACCESSを利用する場合は、丁寧に作成したと思われます。

しかし、処理判定を何度も要求されると、ユーザーが面倒と思うこともありますので、注意が必要です。

MsgBox処理判定作成手順 その1 データベースを確認する


3つのうち、どれか1つというような処理をする場合は、ラジオボタンを使います。

チェックボックスと、ラジオボタンの違い
・チェックボックスは、複数選択可能
・ラジオボタンは、1つのみ選択可能

今回は、ラジオボタンを作成して、MsgBoxで処理実行判断をします。

MsgBox処理判定作成手順 その2 処理判断実行のフォームを作成する


空白のフォームを作成して、「デザインビュー」を開きます。


「オプショングループ」を選択します。


選択するフォームを入力します。


通常は、一番上の入力した値が既定値になります。

今回は、「赤フォーム」が既定値になります。


上の図に、値という項目があります。

赤フォーム⇒値:1

青フォーム⇒値:2

黄フォーム⇒値:3

この値を元にVBAのコードを記載することになります。


オプションボタンを選択します。


オプショングループの名前(お題)を決めます。


上の図のようなグループが作成できました。

MsgBox処理判定作成手順 その3 VBA実行ボタンを作成して、VBAのコードを仕込む

オプショングループの名前は、「フレーム0」が既定値になっているので、名前を変更します。

「選択フレーム」にします。


フォームを開くというボタンにVBAのコードを仕込みます。

MsgBox処理判定作成手順 その4 VBAのコードを読んでみる

赤フォーム(既定値:1)が選択されたとき、

MsgBoxで【Yes】が選択されたら、赤フォームを開く。

そじゃなければ、フォームを開かない。


上の2つの記事が参考になると思います・


赤フォームしか記載していませんが、青フォーム、黄フォームも、既定値と、フォームの名前が変わるだけです。

Private Sub 開く_Click()

  Select Case Me![選択フレーム]
    Case 1
      If MsgBox("赤フォームを開きますか?", vbOKCancel) = 1 Then
          DoCmd.OpenForm "赤フォーム"
        Else
          MsgBox "キャンセルしました", 48 + 0, "処理中止"
      End If
    Case 2
      If MsgBox("青フォームを開きますか?", vbOKCancel) = 1 Then
          DoCmd.OpenForm "青フォーム"
        Else
          MsgBox "キャンセルしました", 48 + 0, "処理中止"
      End If
    Case 3
      If MsgBox("黄フォームを開きますか?", vbOKCancel) = 1 Then
          DoCmd.OpenForm "黄フォーム"
        Else
          MsgBox "キャンセルしました", 48 + 0, "処理中止"
      End If
  End Select
  
End Sub
スポンサーリンク

ここがポイント

 

ここがポイント
Function8.png
処理を実行するのは、すぐ憶えるのですが、処理を中止するというのは、なかなか憶えないものです。必要な場合は、処理を中止するというコードも憶えましょう。

 

まとめ

 

今回のまとめ
sesuo6.jpg
ラジオボタンを作成して、MsgBoxで処理を中止するということができました。すこしだけ、市販のようなソフトを作成した阿久 世子男(アク セスオ)なのでした。

今回のサンプルファイルは、No57です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事