#021 指定オブジェクトが閉じるのを待つ VBA

あるフォームを開いてデータ入力を行い、そのフォームが閉じられたら次の処理(ステートメント)を続行したいような場合、そのフォームが"ダイアログ"に設定されていれば自動的にVBAのコードは停止した状態になりますが、それ以外のフォーム、あるいはレポートのプレビューウィンドウではすぐに次のステートメントが実行されてしまいます。そのような場合に利用できる、指定したオブジェクトが閉じるまで待機するSubプロシージャをご紹介します。
Public Sub WaitObjectClose(intObjType As Integer, strObjName As String)
  'intObjType には acTable、acForm、acReportなどの定数を指定します
  'strObjName にはそのオブジェクト名を指定します


  Do
    DoEvents
    'SysCmdでオブジェクトが開いているか確認します
  Loop Until SysCmd(acSysCmdGetObjectState, intObjType, strObjName) = 0

End Sub

使用例:
DoCmd.OpenForm "フォーム1"
WaitObjectClose acForm, "フォーム1"
MsgBox "フォームが閉じられました!"
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved