即効テクニック |
● 概要 ● 構文 expression.AllForms 取得のみ 設定項目 内容 expression CurrentProjectオブジェクト[省略不可] AllFormsコレクションを参照します。このコレクションは、カレントプロジェクト内に保存されているフォームに対応するAccessObjectオブジェクトをすべて含んでいます。 次のコードは、保存されているすべてのフォームの名前を列挙するものです。 For Each...Nextステートメントを利用して、カレントプロジェクトに保存されているフォームを1つずつ参照しています。 ● サンプル1 ● 'カレントデータベース内のフォーム名を列挙する Sub AllFormsSample1() 'フォーム参照用 Dim myObject As AccessObject 'メッセージ出力用 Dim myStr As String myStr = "" '保存されているフォームを1つずつ参照する For Each myObject In CurrentProject.AllForms 'フォーム名を取得 myStr = myStr & ", " & myObject.Name Next 'メッセージボックスにフォーム名を書き出す MsgBox myStr End Sub ● サンプル2 ● 前述のコードは、インデックスによる参照を利用して、次のように書くこともできます。 'カレントデータベース内のフォーム名を列挙する Sub AllFormsSample2() 'インデックス用 Dim i As Integer 'メッセージ出力用 Dim myStr As String '補足1 For i = 0 To CurrentProject.AllForms.Count - 1 'フォーム名を取得 myStr = myStr & ", " & CurrentProject.AllForms(i).Name Next 'メッセージボックスにフォーム名を書き出す MsgBox myStr End Sub ● 補足1 ● インデックスの最大値を、Countプロパティを用いて求めています。インデックスは0から始まるので、最大値はCountプロパティの値から1引いたものになります。 ● 補足2 ● このサンプルの実行結果では、メッセージボックスに表示されるすべてのフォーム名の文頭にカンマと半角スペースが表示されますが、「MsgBox myStr」を「MsgBox Mid(myStr, 3)」に変更すると、文頭にある余分なカンマと半角スペースを省いて表示することができます。