2009-06-24 6 views
1

私はVB.NETアプリケーションからVisio 2003を自動化しています。この文書に記載されているコードで自動化するときにVisioのマクロ警告プロンプトを表示できますか?

マクロがセキュリティため無効になっている:私は最後の行は、Visioが言って隠されたメッセージボックスを高めるために引き起こすことを発見しました

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を使ってファイルをネイティブフォーマットからSVGに変換するだけです。セキュリティレベルを下げることをユーザーに示唆したくないし、セキュリティレベルを下げることも望まないだろう。

上記のコードからわかるように、私はファイルオープン警告をオフにしますが、マクロ警告は表示されません。 Visio.InvisibleAppを使用しているので、警告はユーザーに表示されません。バッチコンバータを作成しているので、Visioの可視インスタンスを実行することは役に立ちません。メッセージが表示されていても、ユーザーは各ファイルに対して[OK]をクリックする必要があります。これは、バッチ変換機能を本質的に無用にします。

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

Visioでオートメーションを使用しているときに、その警告を抑制できるかどうかは知りませんか? Visio 2007に切り替えるとできますか?

答えて

5

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

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

+0

これは私が最初に気づいたはずのものであることを認識しています。他の人が同様の問題を抱えている場合に備えて、ここで質問と回答を残しておきます。 –

関連する問題