まず、開いている「フォーム」の一覧を取得してみましょう。これには、「#03 フォームのコントロール一覧を取得する」で若干説明しているのですが、Forms というコレクションを使用します。Forms は現在開かれているフォームの集まりを表します。ここではフォームビューとデータシートビューだけでなく、デザインビューも開いているフォームとしてその集まりに含まれます。
例えば、Forms(0) は開いている1つ目のフォームオブジェクトを示します。また Forms(1) は開いている2つ目のフォームオブジェクトを示します。ここではカッコ内の添え字がゼロから始まることに注意して下さい。
Debug.Print Forms(0).Caption
を実行すると、1つ目のフォームの[Caption/標題]プロパティがデバッグウィンドウに表示されます。
さらに、開いているフォームオブジェクトの総数はFormsコレクションのCountプロパティを使って、Forms.Count で取得することができます。
そこで、配列の添字に注意して、すべての開いているフォームの名前を列挙するコードを作成すると次のようになります。
|
Dim iintLoop As Integer
For iintLoop = 0 To Forms.Count - 1
Debug.Print Forms(iintLoop).Name
Next iintLoop
この方法を用いれば、各々のフォームの[Name/名前]以外のプロパティ、例えば標題やレコードソース、境界線スタイルなどの値を列挙することもできます。
あとはレポートやモジュールに簡単に応用することができます。それにはフォームの Forms の替わりに、レポートでは Reports、モジュールでは Modules を使うだけです。なお、モジュールではあくまでもその中に記述されているコードが実行されているという意味ではなく、目に見える形、つまりデザインとしてコードが表示されているという意味の"開いている"です。
For iintLoop = 0 To Reports.Count - 1
Debug.Print Reports(iintLoop).Name
Next iintLoop
For iintLoop = 0 To Modules.Count - 1
Debug.Print Modules(iintLoop).Name
Next iintLoop |