Application.CurrentObjectType プロパティ (Access)
CurrentObjectType プロパティを Application オブジェクトと共に使用して、アクティブなデータベース オブジェクト (テーブル、クエリ、フォーム、レポート、マクロ、モジュール、サーバー ビュー、データベース ダイアグラム、またはストアド プロシージャ) の種類を決定します。 アクティブなデータベース オブジェクトは、フォーカスを持つオブジェクト、またはコードが実行されているオブジェクトです。 読み取り専用 AcObjectType。
構文
式。CurrentObjectType
expressionApplication オブジェクトを 表す変数。
注釈
アクティブ オブジェクトとして扱われるオブジェクトは、次のとおりです。
アクティブ オブジェクトがプロパティ シート、コマンド バー、メニュー、パレット、またはオブジェクトのフィールド リストの場合、 CurrentObjectType プロパティは、基になるオブジェクトの種類を示します。
アクティブ オブジェクトがポップアップ フォームの場合、 CurrentObjectType プロパティは、ポップアップ フォームが開かれた元のフォームではなく、ポップアップ フォーム自体を指し示します。
データベース ウィンドウでオブジェクトが選択されている場合、 CurrentObjectType プロパティの値は、選択されているオブジェクトの名前になります。
オブジェクトが選択されていない場合、 CurrentObjectType プロパティは True を返します。
現在の状態があいまいな場合 (アクティブなオブジェクトがテーブル、クエリ、フォーム、レポート、マクロ、またはモジュールではありません)、たとえば、ダイアログ ボックスにフォーカスがある場合、 CurrentObjectType プロパティは True を返します。
このプロパティを SysCmd メソッドと共に使用して、アクティブなオブジェクトとその状態を確認します (たとえば、オブジェクトが開いている場合、新規である場合、または変更されたが保存されていない場合など)。
例
次の例では、SysCmd 関数と共に CurrentObjectType プロパティと CurrentObjectName プロパティを使用して、アクティブなオブジェクトが Products フォームであるかどうかを判断し、このフォームが開き、変更されたが保存されていないかどうかを判断します。 これらの条件が true の場合、フォームは保存され、閉じられます。
Public Sub CheckProducts()
Dim intState As Integer
Dim intCurrentType As Integer
Dim strCurrentName As String
intCurrentType = Application.CurrentObjectType
strCurrentName = Application.CurrentObjectName
If intCurrentType = acForm And strCurrentName = "Products" Then
intState = SysCmd(acSysCmdGetObjectState, intCurrentType, _
strCurrentName)
' Products form changed but not saved.
If intState = acObjStateDirty + acObjStateOpen Then
' Close Products form and save changes.
DoCmd.Close intCurrentType, strCurrentName, acSaveYes
End If
End If
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。