● 概要 ●
構文 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)」に変更すると、文頭にある余分なカンマと半角スペースを省いて表示することができます。