CurrentObjectType プロパティ (Access)Application.CurrentObjectType property (Access)

CurrentObjectTypeプロパティを**Application** オブジェクトと共に使用して、アクティブなデータベースオブジェクト (テーブル、クエリ、フォーム、レポート、マクロ、モジュール、サーバービュー、データベースダイアグラム、またはストアドプロシージャ) の種類を調べることができます。You can use the CurrentObjectType property together with the Application object to determine the type of the active database object (table, query, form, report, macro, module, server view, database diagram, or stored procedure). アクティブデータベースオブジェクトは、フォーカスを持っている、またはコードが実行されているオブジェクトです。The active database object is the object that has the focus or in which code is running. 読み取り専用の**Acobjecttype**。Read-only AcObjectType.

構文Syntax

CurrentObjectTypeexpression.CurrentObjectType

expression**Application** オブジェクトを 表す変数。expression A variable that represents an Application object.

注釈Remarks

アクティブ オブジェクトとして扱われるオブジェクトは、次のとおりです。The following conditions determine which object is considered the active object:

  • アクティブ オブジェクトがプロパティ シート、コマンド バー、メニュー、パレット、またはオブジェクトのフィールド リストの場合、 CurrentObjectType プロパティは、基になるオブジェクトの種類を示します。If the active object is a property sheet, command bar, menu, palette, or field list of an object, the CurrentObjectType property returns the type of the underlying object.

  • アクティブ オブジェクトがポップアップ フォームの場合、 CurrentObjectType プロパティは、ポップアップ フォームが開かれた元のフォームではなく、ポップアップ フォーム自体を指し示します。If the active object is a pop-up form, the CurrentObjectType property refers to the pop-up form itself, not the form from which it was opened.

  • データベース ウィンドウでオブジェクトが選択されている場合、 CurrentObjectType プロパティの値は、選択されているオブジェクトの名前になります。If the active object is the Database window, the CurrentObjectType property returns the item selected in the Database window.

  • オブジェクトが選択されていない場合、 CurrentObjectType プロパティは True を返します。If no object is selected, the CurrentObjectType property returns True.

  • アクティブオブジェクトがテーブル、クエリ、フォーム、レポート、マクロ、モジュールのいずれでもない場合、たとえば、ダイアログボックスにフォーカスがある場合、 CurrentObjectTypeプロパティの値はTrueになります。If the current state is ambiguous (the active object isn't a table, query, form, report, macro, or module), for example, if a dialog box has the focus, the CurrentObjectType property returns True.

このプロパティを SysCmd メソッドと組み合わせて使用すると、どのオブジェクトがアクティブ オブジェクトであるかを判別し、そのオブジェクトの状態 (開いている、新規作成されている、変更後に保存されていないなど) を調べることができます。You can use this property with the SysCmd method to determine the active object and its state (for example, if the object is open, new, or has been changed but not saved).

Example

次の使用例では、 CurrentObjectTypeプロパティとCurrentObjectNameプロパティをSysCmd関数と共に使用して、アクティブオブジェクトが Products フォームであるかどうか、および変更されたが、保存されていないかどうかを調べます。The following example uses the CurrentObjectType and CurrentObjectName properties with the SysCmd function to determine if the active object is the Products form and if this form is open and has been changed but not saved. これらの条件に該当する場合、フォームは保存されてから閉じられます。If these conditions are true, the form is saved and then closed.

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

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.