コードを自動化するときにVisioのマクロ警告プロンプトを抑制できますか?

StackOverflow https://stackoverflow.com/questions/1040843

  •  22-07-2019
  •  | 
  •  

質問

VB.NETアプリからVisio 2003を自動化しています。私のコードは次のようになります(面白くないものは削除されています):

Dim objApp As New Microsoft.Office.Interop.Visio.InvisibleApp
objApp.Settings.ShowFileOpenWarnings = False
Dim objDoc As Microsoft.Office.Interop.Visio.Document
objDoc = objApp.Documents.Open(VisioFilename)

最後の行により、Visioが次のような隠しメッセージボックスを表示することがわかりました。

セキュリティレベルが高く、マクロがデジタル署名されていないか、安全であると確認されていないため、このドキュメントのマクロは無効になっています。マクロを実行するには、マクロに署名するか、セキュリティレベルを変更します。

これはコンピューター上で実行されるため、ファイルで制御することはありません。これらのオプションのいずれも制御しません。マクロが無効になっていることは本当に気にしません。Visioを使用して、ファイルをネイティブ形式からSVGに変換するだけです。確かに、ユーザーにセキュリティレベルを下げることを提案したくはありません。また、ユーザーのためにセキュリティレベルを下げたくありません。

上記のコードからわかるように、ファイルを開く警告をオフにしますが、マクロ警告は含まれていないようです。私はVisio.InvisibleAppを使用しているので、ユーザーには警告が表示されないことがわかります。メッセージが表示されていても、ユーザーが各ファイルに対して[OK]をクリックする必要があることを意味します。これにより、バッチ変換機能は本質的に役に立たなくなります。

VisioクラスにはVBAEnabledプロパティがありますが、読み取り専用です。ファイルを開くときにVBAをオフにする方法があれば、問題を解決できる可能性があります。すべてのプロパティとクラスのSettingsプロパティを調べましたが、何も見つかりません。 Googleで大量の検索を実行しましたが、この問題に対処するものが見つかりません。

Visioで自動化を使用しているときにその警告を抑制できるかどうか、誰でも知っていますか? Visio 2007に切り替えるとできますか?

役に立ちましたか?

解決

Openと同様に機能するOpenExメソッドがありますが、フラグを受け入れます。これらのフラグの1つはvisOpenMacrosDisabled(& H80)です。

visOpenDontList(& H8)などの他の便利なフラグもあるため、自動化によって開かれたファイルは最近のファイルリストに追加されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top