現在開いている全てのフォームを参照するには、Formsコレクションを使った方法とAllFormsコレクションを使った方法があります。
たとえばこのようなデータベース(accdbファイル)があるとします。
開いている全てのフォーム名を取得するにはそれぞれ次のように記述します。
Formsコレクション
Public Sub GetOpenFormsInfo() Dim frm As Form Dim msg As String For Each frm In Forms msg = msg & frm.Name & vbCrLf Next MsgBox msg End SubFormsコレクションは、現在開いているフォームのコレクションになります。
AllFormsコレクション
Public Sub GetOpenFormsInfo() Dim frm As AccessObject Dim msg As String For Each frm In CurrentProject.AllForms If frm.IsLoaded Then msg = msg & frm.Name & vbCrLf End If Next MsgBox msg End SubIsLoadedは、AccessObjectが現在ロードされているかを示します。すなわちIsLoaded=Trueならフォームが開いているということになります。
実行結果
スポンサーリンク