「気を付けよう うっかりミスで ゴミマクロ」

 Excelにはプログラム作成用に「マクロ」機能があるが、中にはこれを悪用して「マクロウイルス」を作る不届き者がいる。このためExcelは、マクロを含むファイルを開こうとすると警告画面で通知してくる[注]。

 ところがマクロなど入れてないはずのファイルで、警告が出て驚くことがある(図43)。そんなときは、マクロ編集機能の「Visual Basic Editor」を開いてみよう(図44、図45)。「Module1」などの「標準モジュール」があれば、それが警告の原因だ。モジュールとはマクロの保存場所。ここに何も入力されていなくても、「モジュールの解放」を実行しなければ、“マクロあり”と見なされるのだ。

図43 セキュリティ設定が「中」以上だと、マクロを含んだファイルを開く際にこのような警告が出る。「絶対にマクロなんか作った覚えはない」という自作のファイルでも油断は禁物だ
図43 セキュリティ設定が「中」以上だと、マクロを含んだファイルを開く際にこのような警告が出る。「絶対にマクロなんか作った覚えはない」という自作のファイルでも油断は禁物だ
[画像のクリックで拡大表示]

【ゴミマクロをきれいさっぱり削除する】
図44 「ツール」メニューからVisual Basic Editorを起動したら、「表示」メニューでプロジェクトエクスプローラを表示。「Module1」を右クリックして「Module1の解放」を選ぶ。エクスポートするかと聞かれるので「いいえ」を選ぶ
図44 「ツール」メニューからVisual Basic Editorを起動したら、「表示」メニューでプロジェクトエクスプローラを表示。「Module1」を右クリックして「Module1の解放」を選ぶ。エクスポートするかと聞かれるので「いいえ」を選ぶ
[画像のクリックで拡大表示]

図45 2007ではまずオフィスボタン→「Excelのオプション」→「基本設定」で「[開発]タブをリボンに表示する」をチェックする。その後、「開発」タブの「Visual Basic」をクリックする
図45 2007ではまずオフィスボタン→「Excelのオプション」→「基本設定」で「[開発]タブをリボンに表示する」をチェックする。その後、「開発」タブの「Visual Basic」をクリックする
[画像のクリックで拡大表示]

 このようなゴミマクロがくっついてしまう典型例は、フォーム機能でボタンを描いたときだ。ボタンに割り当てるマクロをうっかり新規作成すると、「Module1」が追加されてプログラムのひな型が作られてしまう(図46)。

【こんな“うっかりミス”でゴミマクロがくっつく】
図46 「フォーム」ツールバーでボタンを描くと、クリック時に実行するマクロの割り当て画面が開く。うっかり「新規作成」ボタンを押すと、このように「Module1」が作られて、プログラムのひな型が自動作成される。ボタンを消しても消えない
図46 「フォーム」ツールバーでボタンを描くと、クリック時に実行するマクロの割り当て画面が開く。うっかり「新規作成」ボタンを押すと、このように「Module1」が作られて、プログラムのひな型が自動作成される。ボタンを消しても消えない
[画像のクリックで拡大表示]

[注]「ツール」メニューの「マクロ」→「セキュリティ」でセキュリティレベルを「中」以上にすると警告画面が表示される。Excel 2007は初期設定で警告が表示される