VBAにデジタル署名を付けて安全に配布する方法

スポンサーリンク

Excelで作成したマクロを会社内などに配布して利用する機会が増えているものの、「マクロファイルを無条件に有効」するのは気が引けるとコメントをもらったため、デジタル署名を使ってみることにしました。

2022/07/09追記:エクスポート可能なデジタル証明書の作成方法をまとめました。この方法を使えばデジタル証明書ををコピーして複数端末で共有して使う事ができます。記事はこちら。

やりたいこと


ExcelやOutlookのVBAのセキュリティ設定で、「VBAマクロを有効にする」を使わずに、「電子署名されたマクロを除き、VBAマクロを無効にする」を利用する。

こうすると、デジタル署名がなされていないマクロは無条件で実行できなくなりますが、デジタル署名が付加されているマクロを実行する際には、警告表示が出力されるようになります。警告表示の中で「デジタル署名を認める」ことで、同一のデジタル署名がついたマクロ(=同一の人が作成したマクロ)は実行できるようになります。

やりかた


やり方は簡単です。次の2手順でできます。

  1. デジタル証明書を作成する
  2. デジタル証明書をマクロに付加する

デジタル証明書を作成する

Microsoft Officeには最初からデジタル証明書作成ツールが付属しているので、これを使う。

ツールを起動する

次のプログラムを実行する。

C:\Program Files (x86)\Microsoft Office\root\Office16\SELFCERT.EXE

作成する証明書名を入力する

作成する証明書名を入力する

下図を例に、証明書の名前を入力する。自分が作ったと分かれば何でもよい。入力後、「OK」を押下する。

デジタル証明書をマクロに付加する

上記手順で作成した証明書をマクロに登録する。

配布したいマクロ(=デジタル証明書を付加したいマクロ)を開く

開いたファイルのVisual Basic開発画面を開く

「Alt+F11」や「開発タブ」からVisualBasic Editorの画面を開く。

デジタル署名を登録する

「ツール>デジタル署名」と進む。下図のようなウインドウが開く。

「選択」を押下すると、先ほど作成した証明書が表示されるで、選択する。複数の証明書を作った人は適切なものを選択する。

以上です。

トラブルシューティング


デジタル証明書作成ツールが存在しない場合は下記の方法で解決できる可能性があるので試してみてください。

・Officeバージョンによって格納先が異なるらしいので、ググってみてください。
・Office製品のインストール時にカスタムインストールとなっていた場合など、SelfCert.exeがインストールされていない可能性があります。Officeを再インストールし、その際に証明書作成ツールのインストールを選択してください。

コメントを残す