Excel97以前のバージョンではどうだったか、ちょっと忘却してしまっているし、マック版のExcelではどうなのか分かっていないが、VBAのコードのデジタル署名は、Excel2000以降は考え方は変わっていないように思う。


基本的にデジタル署名の証明書を発行する第三者機関であるCA局と契約して証明書の権利を得て(こういう表現がいいのかどうか分からないが)、その権利の下で証明書を付ける。

ずいぶん前だが、デジタル署名の証明書を取得しようとしたことがある。なお、CA局ではコードサイニングという場合が多いようである。

ベリサインでは年8万円超だったが、他社で2万円超くらいで、真剣に検討したことがある。フレームワークの提供を本格化したらこれは再検討したいと思う。


なお、テスト用の目的限定ではあるが、証明書を作成するツールがある。

Ofiice2000ではDeveloper Edition に付いていた(他のEditionは無いと思う)。が、Ofiice XP Developer Editionには入っておらず、マイクロソフトに問い合わせた覚えがある。

2003からDeveloper Editionではなく別のVisual Studio の開発ツールになったこともあり、そちらは調べていないが、Office2007には付いていることを確認した。


環境上セキュリティレベルが高いところでも、署名があると動作させてよし、というポリシーであればこれで回避可能である。しかし、個人利用にとどめるべきだろう。業務で必要ならコードサイニングを行っているCA局と契約することをお勧めする。


余談になるかもしれないが。先日、内部統制について書いたが、VBAプロジェクトにパスワードでロックを掛けるだけで「改変されていないこと」を保証はできない。社内のシステムで、改変されていないことを保証するには、VBAプロジェクトに対してデジタル署名を行うと共に、署名者の管理を行うなどの必要性があるのではないだろうか。