機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > Excel 2010レビュー

2回目からはマクロの警告しません



マクロを含むブックを開くとき「このブックにはマクロが含まれているけど、どうする?」という警告を表示させるには、Excel 2003まででしたら[ツール]-[マクロ]-[セキュリティ]で、セキュリティレベルを「中」にします。この設定に相当するのが、Excel 2010では[セキュリティセンター]-[マクロの設定]の「警告を表示してすべてのマクロを無効にする」です。



このレベルを選択しておくと、マクロを含むブックを開いたとき、下図のようになります。



ここで[コンテンツの有効化]ボタンをクリックすると、マクロが有効になります。メッセージバーの色が、Excel 2007に比べて派手になりましたね。「目立たない」「気づきにくい」など不評だったのでしょうか。さらに、Excel 2007では、同じ位置に表示された[オプション]ボタンをクリックした後、「セキュリティの警告 - マクロ」と書かれたダイアログボックスが開き、ここで[このコンテンツを有効にする]をオンにして[OK]ボタンをクリックしなければ、マクロを使えるようにはなりませんでしたが、Excel 2010では[コンテンツの有効化]ボタン一発でマクロが有効になります。

ちなみに、マクロを含むブックを開いたとき、先のメッセージバーではなく、次のダイアログボックスが表示されることがあります。



これは、VBEを起動しているときに表示されるメッセージです。なぜ、VBEを起動しているときと、していないときで警告に違いがあるのかはわかりませんが、ややこしいと感じるのは私だけではないでしょう。


さて、本題はこれからです。
この「マクロの警告メッセージ」ですが、同じマクロ入りブックを2回目に開いたときには、表示されません。最初は気のせいかと思いましたが、どうやらExcel 2010では、そういう機能が追加されたようです。そのヒントは[セキュリティセンター]にありました。



「信頼済みドキュメントをすべてリセットして、信頼されていない状態にする」の右にある[リセット]ボタンをクリックすると、一度マクロを有効にしたブックでも、再び開くときには[コンテンツの有効化]ボタンが表示されるようになります。つまり、こういうことです。

  • 初めて開く"マクロ入りブック"では、警告を表示する
  • その"マクロ入りブック"でマクロが有効にされると、そのブックを覚えておく
  • 再び同じ"マクロ入りブック"を開くときは、警告を表示しない
  • [セキュリティセンター]の[リセット]ボタンをクリックすると、覚えておいたブックの情報をクリアする
  • [信頼するドキュメントをすべて無効にする]チェックボックスをオンにしておくと、この機能は働かない
  • Excel 2010を終了させても、一度開いた"マクロ入りブック"の情報は消えない

となります。

ちなみにテクニカルプレビュー版では、この機能は標準でオンになっています。個人的な予想ですが、おそらく製品版でも、標準でオンになるような気がします。この仕組みがわかっている人には、とても便利な機能ですが、そんな仕組みがあるとは想像もできないビギナーにとっては「警告が出るときと出ないときがあるんですけど、私のExcelは壊れてしまったのでしょうか?再インストールした方がいいでしょうか?」みたいに不安をあおりそうで、ちょっと心配です。

さて、一度開いて信頼した"マクロ入りブック"は、[セキュリティセンター]の[リセット]ボタンでクリアできるのですが、この[クリア]ボタンは『信頼したもの全部クリア』です。今まで信頼したブックの中から、一部を"信頼リスト"から除外する・・・ということはできません。てゆーか、そもそも"信頼リスト"は、どこに記録されているのでしょう。Excelが終了しても、Windowsを再起動しても残っているということは、たぶんレジストリだろうな・・・ということで調べてみると、次のところでした。



場所は、
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Security\Trusted Documents\TrustRecords
です。ただし「TrustRecordsキー」は、信頼したブックが1つもないと存在しません。

まぁ、とりあえずレジストリに記録されるようですし、レジストリのデータを手動で削除しても大丈夫なようですし、何ならここのデータをVBAから調べることもできるでしょう。ちなみに、[セキュリティセンター]で[クリア]ボタンをクリックする操作をマクロ記録しても、何も記録されません。このクリアをVBAで行うことは、できなさそうです。また、上図を見てもわかるように、マクロを含まない「xls」ブックも"信頼リスト"に登録されています。これは、Webからダウンロードしたブックに関しては、その旨のメッセージが表示されるようになったからです。その件に関しては、また別のコンテンツで解説します。




このエントリーをはてなブックマークに追加