フォーム&レポート:非公開プロパティ "Category" Hit Counter

対象バージョン : 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 の値でも、プロパティシートに表示されないプロパティもあるようです。

 

補 足


目次へ戻る