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

CurrentObjectNameプロパティをApplicationオブジェクトと共に使用して、アクティブなデータベースオブジェクトの名前を調べることができます。You can use the CurrentObjectName property with the Application object to determine the name of the active database object. アクティブデータベースオブジェクトは、フォーカスを持っている、またはコードが実行されているオブジェクトです。The active database object is the object that has the focus or in which code is running. 値の取得のみ可能な文字列型 (String) の値です。Read-only String.



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


CurrentObjectName プロパティには、アクティブ オブジェクトの名前を表す文字列式が Microsoft Office Access により自動的に設定されます。The CurrentObjectName property is set by Microsoft Access to a string expression containing the name of the active object.

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

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

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

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

  • オブジェクトが選択されていない場合、 CurrentObjectName プロパティは、長さ 0 の文字列 ("") を示します。If no object is selected, the CurrentObjectName property returns a zero-length string (" ").

  • アクティブオブジェクトがテーブル、クエリ、フォーム、レポート、マクロ、モジュールのいずれでもなく、ダイアログボックスがフォーカスを持っているなど、現在の状態が不明確な場合、 CurrentObjectNameプロパティはダイアログボックスの名前を返します。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 CurrentObjectName property returns the dialog box name.


このプロパティを 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).

次の使用例では、 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, _ 
 ' 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.