図面の Microsoft Visual Basic for Applications (VBA) プロジェクトでマクロの実行が可能かどうか、イベントの処理が可能かどうかを指定します。 読み取り専用です。
構文
式。MacrosEnabled
式Document オブジェクトを表す変数。
戻り値
Boolean
注釈
図面にソリューションの実行に必要なマクロが含まれている場合、MacrosEnabled プロパティを使用してマクロがその図面で有効かどうかを確認できます。 マクロが無効な場合は、図面の設定がマクロの実行を禁止しているために、ソリューションが予期されたとおりに動作しないことを示すメッセージを表示できます。
MacrosEnabled プロパティの値は、マクロの設定とプロジェクトの署名の状態 (信頼できる発行元のデジタル署名があるかどうか、または信頼できる場所にあるかどうか) の組み合わせによって異なります。 次の表でこれらの組み合わせについて説明します。
| マクロの設定 | デジタル署名 | 信頼できる場所 | MacrosEnabled プロパティ |
|---|---|---|---|
| 警告を表示せずにすべてのマクロを無効にする | 該当なし | いいえ | False |
| 警告を表示せずにすべてのマクロを無効にする | 該当なし | はい | True |
| 警告を表示してすべてのマクロを無効にする | 該当なし | いいえ | False |
| 警告を表示してすべてのマクロを無効にする | 該当なし | はい | True |
| デジタル署名されたマクロを除き、すべてのマクロを無効にする | 不要 | いいえ | False |
| デジタル署名されたマクロを除き、すべてのマクロを無効にする | はい | 該当なし | True |
| デジタル署名されたマクロを除き、すべてのマクロを無効にする | 該当なし | はい | True |
| すべてのマクロを有効にする | 該当なし | 該当なし | True |
信頼された発行元からのマクロ、デジタル署名されたマクロ、または信頼できる場所のマクロを除き、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 のサポートおよびフィードバックを参照してください。