フォーム&レポート:非公開プロパティ "Category" |
対象バージョン : 97, 2000, 2002, 2003
最終更新日 : 2005/04/25
(オリジナル作成日:1998/10/01)
概 要
フォームやレポート、そしてこれらのオブジェクトに配置されるコントロールオブジェクトには、公開されていないプロパティ "Category" があります。このプロパティの値の取得方法と、値の内容の概説です。
解 説
オンラインヘルプや、Access 97
のプロシージャ作成時のインテリセンスによる入力ガイドには表示されませんが、フォームやレポート、そしてこれらに配置されるコントロールオブジェクトには
"Category" というプロパティが存在します。
1.プロパティの取得方法
以下のプロシージャは、フォーム "Form1"
のフォームに属する各プロパティの "Category" プロパティの内容を、デバッグウィンドウに表示する例です。
この例では "Form1"
をフォームビュー、デザインビュー、データシートビューを問わず、開かれていることが必要です。
Sub Sample() Dim frm As Form Dim intprp As Integer Set frm = Forms!Form1 For intprp = 0 To frm.Properties.Count - 1 Debug.Print frm.Properties(intprp).Name, frm.Properties(intprp).Category Next End Sub
"Category" プロパティは、Property
変数を介して参照すると、なぜかコンパイル時にエラーとなります。
このため、次のような For Each はできません。
Dim prp As Property For Each prp In frm.Properties Debug.Print prp.Name, prp.Category Next
2.Category プロパティの値
このプロパティの示す値は、基本的には各オブジェクトのデザインビュー時に表示されるプロパティシートの各タブの分類に相当しています。
タブの名称 | Category の値 |
書式 | 1 |
データ | 2 |
イベント | 4 |
その他 | 8 |
Category プロパティでは、この他 0 や 66 等の値が設定されているプロパティがありますが、おそらく Visual Basic でのみで参照できるプロパティに与えられた値のようです。
また、上記 1 〜 8 の値でも、プロパティシートに表示されないプロパティもあるようです。
補 足