事象
Outlook VBAを実行しようとしたところ、Outlook の開発タブから実行したが実行されない。
開発環境である自身のPC上では問題なく動作するが、ユーザーのPCでのみ事象発生。
VBEから実行すると、セキュリティセンターで、「すべてのマクロを有効にする」としているのに以下の画面が表示された。
原因
セキュリティセンターの設定にかかわらず、証明書が設定されていないとOutlook VBAを実行できない仕様のようです。
※自身のPCでは引き渡された時、既に設定済み。
事象発生したPCのVBE-ツール-デジタル署名を確認したところ、以下のように証明書が設定されていませんでした。
対応
selfcert.exe を実行し、自己証明書を作成し、VBEに設定します。
自身のPCでは検索でVBAと検索するとVBAプロジェクトのデジタル証明書として検索できたのですが、ユーザーのPCでは出てこなく、ファイル名を指定して実行でも起動できず。
自身のPCでexeが格納されているフォルダパスはユーザーのPCにはなく、最終的にユーザーPCのエクスプローラーでofficeインストールフォルダ周辺を検索してもらい、発見しました。
起動すると、以下の画面が出るので、適当な名前をつけてOK。
VBE-ツール-デジタル署名から先ほど作成した署名を選択、VBEを保存してOutlook 再起動後にVBAが実行できるようになりました。
厄介ポイント
- VBEの画面から実行しないと、エラーメッセージ出ないが実行できない、という挙動になり気が付くのが難しい。
- なぜかユーザーのPCで初回は実行できてしまった。
- selfcert.exeが環境次第で場所が変わる。
参考