#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 "フォームが閉じられました!" |
|||
|
Copyright © T'sWare All rights reserved |