

この記事でわかること。
- VBAマクロに電子署名を行う手順がわかる。
- VBAマクロのための電子証明書を発行する手順がわかる。
- 電子署名されたVBAマクロのみを実行可能にするセキュリティ設定手順がわかる。

この記事はExcelを例にしていますが、その他のOffice製品も操作はほぼ共通です。

Excel・Outlook・Word・PowerPoint・Publisher・VisioなどのVBAマクロで電子署名設定する際にもお役に立てる記事になっていると思います。
VBAマクロに電子署名を行うには?
VBAマクロに電子署名を行うメリット
VBAマクロを使用する時、電子署名が適用されたVBAマクロのみを許可することによって、出所が不明な怪しいマクロが意図せず実行されてしまうことを防げる可能性が高くなります。安全面を高く保ったままVBAマクロを使うことができます。
電子署名を行う方法
マクロに電子署名する時の手順
- 証明書を取得する。
- 証明書をマクロプロジェクトに適用する。
- マクロのセキュリティを適切に設定する。
VBAマクロのために証明書を発行するには?
証明書の2つの発行方法

証明書の発行方法には2つあります。
2つの証明書発行方法
- 公的な証明機関が発行する証明書
- 自分自身で発行する証明書(自己署名証明書)

この記事では自分で発行する証明書の発行方法について紹介します!
自己署名証明書の発行方法
自己発行証明書を作成するには、Office製品に付属のselfcert.exeというツールを使うのが一般的です。
VBAマクロのために自己署名証明書をselfcert.exeで発行する手順
selfcert.exeの起動方法
selfcert.exeは、パソコンにOffice製品がインストールされていれば同時にインストールされているはずです。

selfcert.exeを起動してみましょう。selfcert.exeには2つの起動方法があります。
selfcert.exeを「ファイル名から指定して実行」から起動するには?

▲Windowsキー+Rキーを同時におして「ファイル名を指定して実行」を開きます。selfcert.exeと入力してエンターキーを押します。
「デジタル証明書の作成」というタイトルの画面が開きます。

▲「selfcert.exeが見つかりません」というエラーが表示される場合は、次に紹介する「Office保存フォルダから探して起動する」の方法を試します。
selfcert.exeをOffice保存フォルダから探して起動するには?
「ファイル名を指定して実行」からselfcertを実行できない場合は、Office製品保存フォルダの中からselfcert.exeを探して直接ファイルを開く方法があります。

selfcert.exeの保存場所はOffice製品のバージョンによって異なります。詳しくはMicrosoftの下記のページを参照してください。
selfcert.exeの場所
selfcert.exeの保存場所
デジタル署名を追加してデータベースが信頼できることを示す
Office のバージョン | 場所 |
---|---|
Microsoft 365 | C:\Program Files\Microsoft Office\root\Office16 C:\Program Files (x86)\Microsoft Office\root\Office16 |
Office 2019Office 2016 | C:\Program Files\Microsoft Office\Office16 C:\Program Files (x86)\Microsoft Office\Office16 |
Office 2013 | C:\Program Files\Microsoft Office\root\Office15 C:\Program Files (x86)\Microsoft Office\root\Office15 |
Office 2010 | C:\Program Files\Microsoft Office\root\Office14 C:\Program Files (x86)\Microsoft Office\root\Office14 |

selfcert.exeでデジタル証明書を発行する手順は?

▲「証明書の名前」のところに証明書の名前を入力します。複数のマクロで使いまわすことが多いので、後で見てわかりやすい名前にします。名前を入力したらエンターキーを押すかOKボタンを押します。

▲証明書を発行できました。
VBAマクロにデジタル証明書を適用する手順

▲プロジェクトウィンドウからデジタル署名を紐づけるプロジェクトを選択します。プロジェクトはファイル名です。

▲「ツール>デジタル署名」をクリックします。

▲デジタル署名という画面が表示されますので「選択」ボタンをクリックします。

▲「その他」をクリックします。

▲証明書の一覧が表示されますので先ほど作成した証明書を選択しOkボタンをクリックします。

▲「デジタル署名」画面で証明書が適用できたことを確認しOkボタンをクリックして画面を閉じます。
以上でデジタル署名の設定が完了です。
電子署名が適用されたマクロだけを許可するように設定を変更する
デジタル署名が適用されたマクロだけを許可するには、Excelにてマクロに対するセキュリティ設定を変更する必要があります。マクロに対するセキュリティ設定を変更するは、Excelのトラストセンターから行います。
Outlookの場合も操作方法はExcelと同じです。

▲Excelを開き、「ファイル」をクリックします。

▲「オプション」をクリックします。

▲「Excelのオプション」が開きます。左側メニューのトラストセンターをクリックし「トラストセンターの設定」をクリックします。

▲「マクロの設定」をクリックし、「電子署名されたマクロを除き、VBA マクロを無効にする」を選択します。
これでマクロの設定は完了です。
※設定をただしく適用するには現在開いているExcelファイルをすべて開きなおす必要があるかもしれません。
VBAマクロの関連記事
Excelマクロ

Outlookマクロ


▲情報も新しくMicrosoft 365にも対応した本です。わたしはOutlook歴10年以上ありますが知らないことがかなりあったのとOutlookもすごい進化してるんだなと思いました。365に乗り換えたばかりの方に読んでほしいです。
まとめ

Excelマクロ用に自分用の証明書を発行してデジタル署名を行う方法について紹介しました。

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
▲Excel・Wordの基本的な使い方についての初心者向けの解説書です。かなり細かく丁寧に解説されています。著者の方のYouTubeチャンネルも併せて観るとより理解が深まるかと思います。
▲「Excel作業を自動化したいけどVBAはよくわからない・・・」という方でもPower Automate for Desktop(PAD)なら簡単に自動化できるかもしれません。PADは、Windows11にも公式搭載されたMicrosoftのRPAソフトウェアです。本書はPADでExcelなどのパソコン操作全般の自動化の基本がわかりやすく解説されています。
▲「Excel VBAの教科書」というとおりVBAの開き方から解説してるのですが網羅度が半端なくて満足感が高いです。(クラスモジュール・ユーザーフォーム・外部データ取り込み・JSON・Power Queryなど)。JSONやPower Queryは最近のExcelでの使用頻度高いかと思うので個人的にポイント高かったです。網羅度が高いゆえに分厚いです。個人的にVBA書でイチオシ。

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!
▲Excel・Wordの基本的な使い方についての初心者向けの解説書です。かなり細かく丁寧に解説されています。著者の方のYouTubeチャンネルも併せて観るとより理解が深まるかと思います。
▲「Excel作業を自動化したいけどVBAはよくわからない・・・」という方でもPower Automate for Desktop(PAD)なら簡単に自動化できるかもしれません。PADは、Windows11にも公式搭載されたMicrosoftのRPAソフトウェアです。本書はPADでExcelなどのパソコン操作全般の自動化の基本がわかりやすく解説されています。
▲「Excel VBAの教科書」というとおりVBAの開き方から解説してるのですが網羅度が半端なくて満足感が高いです。(クラスモジュール・ユーザーフォーム・外部データ取り込み・JSON・Power Queryなど)。JSONやPower Queryは最近のExcelでの使用頻度高いかと思うので個人的にポイント高かったです。網羅度が高いゆえに分厚いです。個人的にVBA書でイチオシ。