マクロを含むブックを開くとき「このブックにはマクロが含まれているけど、どうする?」という警告を表示させるには、Excel 2003まででしたら[ツール]-[マクロ]-[セキュリティ]で、セキュリティレベルを「中」にします。この設定に相当するのが、Excel 2010では[セキュリティセンター]-[マクロの設定]の「警告を表示してすべてのマクロを無効にする」です。
このレベルを選択しておくと、マクロを含むブックを開いたとき、下図のようになります。
ここで[コンテンツの有効化]ボタンをクリックすると、マクロが有効になります。メッセージバーの色が、Excel 2007に比べて派手になりましたね。「目立たない」「気づきにくい」など不評だったのでしょうか。さらに、Excel 2007では、同じ位置に表示された[オプション]ボタンをクリックした後、「セキュリティの警告 - マクロ」と書かれたダイアログボックスが開き、ここで[このコンテンツを有効にする]をオンにして[OK]ボタンをクリックしなければ、マクロを使えるようにはなりませんでしたが、Excel 2010では[コンテンツの有効化]ボタン一発でマクロが有効になります。
ちなみに、マクロを含むブックを開いたとき、先のメッセージバーではなく、次のダイアログボックスが表示されることがあります。
これは、VBEを起動しているときに表示されるメッセージです。なぜ、VBEを起動しているときと、していないときで警告に違いがあるのかはわかりませんが、ややこしいと感じるのは私だけではないでしょう。
さて、本題はこれからです。
この「マクロの警告メッセージ」ですが、同じマクロ入りブックを2回目に開いたときには、表示されません。最初は気のせいかと思いましたが、どうやらExcel 2010では、そういう機能が追加されたようです。そのヒントは[セキュリティセンター]にありました。
「信頼済みドキュメントをすべてリセットして、信頼されていない状態にする」の右にある[リセット]ボタンをクリックすると、一度マクロを有効にしたブックでも、再び開くときには[コンテンツの有効化]ボタンが表示されるようになります。つまり、こういうことです。
となります。
ちなみにテクニカルプレビュー版では、この機能は標準でオンになっています。個人的な予想ですが、おそらく製品版でも、標準でオンになるような気がします。この仕組みがわかっている人には、とても便利な機能ですが、そんな仕組みがあるとは想像もできないビギナーにとっては「警告が出るときと出ないときがあるんですけど、私のExcelは壊れてしまったのでしょうか?再インストールした方がいいでしょうか?」みたいに不安をあおりそうで、ちょっと心配です。
さて、一度開いて信頼した"マクロ入りブック"は、[セキュリティセンター]の[リセット]ボタンでクリアできるのですが、この[クリア]ボタンは『信頼したもの全部クリア』です。今まで信頼したブックの中から、一部を"信頼リスト"から除外する・・・ということはできません。てゆーか、そもそも"信頼リスト"は、どこに記録されているのでしょう。Excelが終了しても、Windowsを再起動しても残っているということは、たぶんレジストリだろうな・・・ということで調べてみると、次のところでした。
場所は、
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\Trusted Documents\TrustRecords
です。ただし「TrustRecordsキー」は、信頼したブックが1つもないと存在しません。
まぁ、とりあえずレジストリに記録されるようですし、レジストリのデータを手動で削除しても大丈夫なようですし、何ならここのデータをVBAから調べることもできるでしょう。ちなみに、[セキュリティセンター]で[クリア]ボタンをクリックする操作をマクロ記録しても、何も記録されません。このクリアをVBAで行うことは、できなさそうです。また、上図を見てもわかるように、マクロを含まない「xls」ブックも"信頼リスト"に登録されています。これは、Webからダウンロードしたブックに関しては、その旨のメッセージが表示されるようになったからです。その件に関しては、また別のコンテンツで解説します。