次の方法で共有


InvisibleApp.ActiveDocument プロパティ (Visio)

作業中のウィンドウに表示されるドキュメントである作業中の Document オブジェクトを返します。 読み取り専用です。

構文

ActiveDocument

InvisibleApp オブジェクトを表す変数。

戻り値

Document

注釈

開いている図面がない場合は、アクティブな図面は存在せず、ActiveDocument プロパティは値 Nothing を返します。この場合、例外は発生しません。

コードが Visio ドキュメントの Microsoft Visual Basic プロジェクトにある場合、 ActiveDocument プロパティは、多くの場合、必ずしも、すべての Microsoft Visio ドキュメントの Visual Basic プロジェクトのクラス モジュールである ThisDocument オブジェクトへの参照を返します。 ThisDocument オブジェクトがアクティブ ウィンドウに表示されている場合、ActiveDocument オブジェクトと ThisDocument オブジェクトは同じドキュメントを参照します。 ThisDocument オブジェクトがプロジェクト内のコードから参照されると、プロジェクトの Document オブジェクトへの参照が返されます。

ActiveDocument オブジェクトまたは ThisDocument オブジェクトを使用するかどうかは、コードの目的によって異なります。

ActiveDocument プロパティによって返される結果を値 Nothing と比較して、図面がアクティブであるかどうかを確認できます。 Documents.Count プロパティの値が 0 より大きい場合、少なくとも 1 つのドキュメントが開いてアクティブになります。

次の Microsoft Visual Basic for Applications (VBA) マクロは、作業中の文書を取得する 2 つの安全な方法を示しています (存在する場合)。 いずれの場合も、作業中の文書の名前がイミディエイト ウィンドウに出力されます。 このコードは、Visio グローバル オブジェクトから修飾なしで作業中の文書を取得します。これは、Visio ドキュメントの VBA プロジェクトの一部である VBA コードで自動的に使用できます。

 
Public Sub ActiveDocument_Example() 
 
 Dim vsoDocument As Document 
 
 'First method 
 If Documents.Count > 0 Then 
 Set vsoDocument = ActiveDocument 
 Debug.Print vsoDocument.Name 
 Else 
 Debug.Print "No active document." 
 End If 
 
 'Second method 
 If Not(ActiveDocument Is Nothing) Then 
 Set vsoDocument = ActiveDocument 
 Debug.Print vsoDocument.Name 
 Else 
 Debug.Print "No active document." 
 End If 
 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。