Excel などのMicrosoft Office でマクロを組み込んだファイルを開くと、マクロの有効/無効を選択する必要がありますが、自分の作成したマクロ付きファイルに、自分で作成した「独自の自己署名証明書(デジタル署名)」で署名すると、それ以降、そのファイルはデジタル署名を作成したPC内では、マクロ有効化の操作をすることなく、マクロを有効にすることができます。
デジタル署名の作り方については、以下のMicrosoftサポートページにて紹介されています。「SELFCERT.EXE」を用いる方法です。
OSが、Windows10/Windows8/Windows7とそれ以前。それぞれのバージョンで説明されています。
先ず、「SELFCERT.EXE」を実行するのですが、Windows10の例だと以下のディレクトリ配下 「C:\Program Files (x86)\Microsoft Office\root\Office16」に「SELFCERT.EXE」が存在するので、これを実行します。
実行すると、以下のダイアログ「デジタル証明書の作成」が出てきます。
「証明機関の一覧を参照するには、ここをクリックしてください。」は、これから作成する自分用のデジタル署名作成には関係ありませんが、クリックすると認証局一覧が表示されます。
Microsoft Root Certificate Program Members | Microsoft Docs
「デジタル証明書の作成」ダイアログの一番下のテキストボックスに、証明書の名前を入力します。
「私自身の野生の証明20190518」と入力してみました。
入力後、[OK]ボタンをクリックします。
すぐに SelfCert成功 のダイアログボックスが表示されました。
「私自身の野生の証明20190518に対する新しい証明書が作成できました。」
これも[OK]ボタンをクリックします。
「デジタル証明書の作成」ダイアログが閉じます。
これでデジタル証明書が作成できました。
あとは、VBE(Visual Basic Editor)を利用して Excel ファイルへ、ここで作成した証明書を登録すれば完了です。
その前に、作成した証明書の確認をしてみます。
コントロールパネルを開き、インターネットオプションを起動します。
「インターネットオプション」をクリック。
「コンテンツ」タブ を選択して、「証明書」ボタンをクリック。
「個人」タブに、先ほど作成した証明書が表示されています。
では、次に Excel ファイルに、この証明書を登録します。
証明書を登録したいExcelファイルを開いた後、VBE(Visual Basic Editor)を起動します。[ALT]キー と [F11]キーを同時に押します。
そして、ツール > デジタル署名 を選択。
デジタル署名ダイアログボックスが開くので、署名欄の「選択」ボタンをクリック。
表示された証明書名が、以前作成した古いものであれば、[その他]のリンクをクリックして、登録したい証明書を選択し、[OK]ボタンをクリックします。
表示されたデジタル署名の名前を確認して、[OK]ボタンをクリック。
では実際に、マクロコード書いた後で、一度Excelファイルを終了させ、再度開いてみると・・・
Microsoft Excel のセキュリティに関する通知 ダイアログボックスが表示されました。
別のデジタル署名登録無しのExcelファイルを起動すると・・・
ここまで書いておいて何なのですけど、デジタル署名したファイルもデジタル署名しないファイルも、一度「マクロを有効にする」を選択すると、次回から無条件でマクロが有効になってしまいます。
Excel のオプション > セキュリティ センター > マクロの設定 で
デジタル署名されたマクロを除き、すべてのマクロを無効にする
または
警告を表示してすべてのマクロを無効にする
のどちらに設定しても、状況は変わらずです。
信頼できる場所に登録してないフォルダ配下です。
ということで、デジタル署名の説明をしておきながら、なんとも締まりのない結果になってしまいました。この続きは、別途分かり次第、ということで終了します。
(2019/5/23 追記)
Excel のオプション > セキュリティ センター > マクロの設定 で
「デジタル署名されたマクロを除き、すべてのマクロを無効にする」を選択していると、そのPCで初めて開くマクロ入りExcelファイルは、無条件でマクロが無効になってしまいます。なので、
「警告を表示してすべてのマクロを無効にする 」
にしておくのが無難です。この設定にしておくと、初めての起動時には、マクロの有効/無効 を聞いてきます。