Document.MacrosEnabled プロパティ (Visio)

図面の Microsoft Visual Basic for Applications (VBA) プロジェクトでマクロの実行が可能かどうか、イベントの処理が可能かどうかを指定します。 読み取り専用です。

構文

MacrosEnabled

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

戻り値

Boolean

注釈

図面にソリューションの実行に必要なマクロが含まれている場合、MacrosEnabled プロパティを使用してマクロがその図面で有効かどうかを確認できます。 マクロが無効な場合は、図面の設定がマクロの実行を禁止しているために、ソリューションが予期されたとおりに動作しないことを示すメッセージを表示できます。

MacrosEnabled プロパティの値は、マクロの設定とプロジェクトの署名の状態 (信頼できる発行元のデジタル署名があるかどうか、または信頼できる場所にあるかどうか) の組み合わせによって異なります。 次の表でこれらの組み合わせについて説明します。

マクロ設定 デジタル署名 信頼できる場所 MacrosEnabled プロパティ
警告を表示せずにすべてのマクロを無効にする 該当なし いいえ 不正解
警告を表示せずにすべてのマクロを無効にする 該当なし はい はい
警告を表示してすべてのマクロを無効にする 該当なし いいえ 不正解
警告を表示してすべてのマクロを無効にする 該当なし はい はい
デジタル署名されたマクロを除き、すべてのマクロを無効にする いいえ いいえ 不正解
デジタル署名されたマクロを除き、すべてのマクロを無効にする はい 該当なし はい
デジタル署名されたマクロを除き、すべてのマクロを無効にする 該当なし はい はい
すべてのマクロを有効にする 該当なし 該当なし はい

信頼された発行元からのマクロ、デジタル署名されたマクロ、または信頼できる場所のマクロを除き、Visio 図面のマクロは既定で無効になります。

ただし、Visio セキュリティ センター[マクロ設定] カテゴリで既定の設定を変更できます ([ファイル] タブをクリックし、[オプション]、[セキュリティ センター] の順にクリックし、[セキュリティ センターの設定] をクリックします)。 [デジタル署名されたマクロを除き、すべてのマクロを無効にする] が選択されている場合、信頼できない場所の Visio 図面のマクロは、図面がデジタル署名されている場合に限り、有効になります。 [警告を表示せずにすべてのマクロを無効にする] または [警告を表示してすべてのマクロを無効にする] が選択されている場合は、信頼できる場所以外の図面のマクロは無効になります。 [すべてのマクロを有効にする] が選択されている場合は、常にすべてのマクロが有効になりますが、このオプションはセキュリティ上、危険なため推奨しません。

信頼されたソースは、セキュリティ センター[信頼された発行元] カテゴリに一覧表示され、[信頼された場所] カテゴリに信頼された場所が一覧表示されます。

無効な状態 (マクロが有効になっていない) でドキュメントを開くには、Document オブジェクトの OpenEx メソッドを使用できます。 例:

Documents.OpenEx(fileName , visOpenMacrosDisabled)

次の例では、アドオンからドキュメントを開き、 MacrosEnabled プロパティを使用してマクロが有効かどうかを判断する方法を示します。 マクロが無効な場合は、メッセージ ボックスにユーザー機能が制限されていることを知らせる警告を表示します。 この例を実行する前に、変数 filename を有効な図面ファイル名に変更してください。

 
Public Sub MacrosEnabled_Example() 
 
    Dim vsoDocument As Visio.Document 
    Dim blsStatus As Boolean 
 
    Set vsoDocument = Documents.Open("filename ") 
    blsStatus = vsoDocument.MacrosEnabled 
 
    If Not blsStatus Then 
 
         MsgBox "Macro execution has been disabled for this document." & _  
            "Functionality may be limited." 
 
    End if 
 
End Sub

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

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