2009年12月10日木曜日

Microsoft Excel 2007が無断で追加したスタイルを削除するマクロ

いつも使っているExcel 2003の個人用マクロブック(PERSONAL.XLS)に、かなり前から以下のマクロを仕込んでいる。エラーチェックも何もないひどいマクロだとは自分でも思うのだが、このマクロを実行するのはクサクサした気持ちの時が多いので、マクロの品質もクサクサしたもので良いのだ。

Sub DeleteUnnecessaryStyles()
    ActiveWorkbook.Styles("20% - アクセント 1").Delete
    ActiveWorkbook.Styles("20% - アクセント 2").Delete
    ActiveWorkbook.Styles("20% - アクセント 3").Delete
    ActiveWorkbook.Styles("20% - アクセント 4").Delete
    ActiveWorkbook.Styles("20% - アクセント 5").Delete
    ActiveWorkbook.Styles("20% - アクセント 6").Delete
    ActiveWorkbook.Styles("40% - アクセント 1").Delete
    ActiveWorkbook.Styles("40% - アクセント 2").Delete
    ActiveWorkbook.Styles("40% - アクセント 3").Delete
    ActiveWorkbook.Styles("40% - アクセント 4").Delete
    ActiveWorkbook.Styles("40% - アクセント 5").Delete
    ActiveWorkbook.Styles("40% - アクセント 6").Delete
    ActiveWorkbook.Styles("60% - アクセント 1").Delete
    ActiveWorkbook.Styles("60% - アクセント 2").Delete
    ActiveWorkbook.Styles("60% - アクセント 3").Delete
    ActiveWorkbook.Styles("60% - アクセント 4").Delete
    ActiveWorkbook.Styles("60% - アクセント 5").Delete
    ActiveWorkbook.Styles("60% - アクセント 6").Delete
    ActiveWorkbook.Styles("アクセント 1").Delete
    ActiveWorkbook.Styles("アクセント 2").Delete
    ActiveWorkbook.Styles("アクセント 3").Delete
    ActiveWorkbook.Styles("アクセント 4").Delete
    ActiveWorkbook.Styles("アクセント 5").Delete
    ActiveWorkbook.Styles("アクセント 6").Delete
    ActiveWorkbook.Styles("タイトル").Delete
    ActiveWorkbook.Styles("チェック セル").Delete
    ActiveWorkbook.Styles("どちらでもない").Delete
    ActiveWorkbook.Styles("メモ").Delete
    ActiveWorkbook.Styles("リンク セル").Delete
    ActiveWorkbook.Styles("悪い").Delete
    ActiveWorkbook.Styles("計算").Delete
    ActiveWorkbook.Styles("警告文").Delete
    ActiveWorkbook.Styles("見出し 1").Delete
    ActiveWorkbook.Styles("見出し 2").Delete
    ActiveWorkbook.Styles("見出し 3").Delete
    ActiveWorkbook.Styles("見出し 4").Delete
    ActiveWorkbook.Styles("集計").Delete
    ActiveWorkbook.Styles("出力").Delete
    ActiveWorkbook.Styles("説明文").Delete
    ActiveWorkbook.Styles("入力").Delete
    ActiveWorkbook.Styles("良い").Delete
End Sub

Microsoft Excel 2007は、それ以前のExcelのファイル(.xls)を編集するとき、勝手に上記のスタイルを勝手に追加する。数えてみたら41個。それも勝手に追加するのだ。私の知る限り、この機能をオフにするオプションはない。

私は自分で設定した4~5個のスタイルをほぼ常にかつ頻繁に使っている。ここに41個もスタイルを追加されてしまうと、スタイルのメニューが混み合ってしまい、自分で設定したスタイルを選択するのにとても苦労してしまうのだ。また、追加されたこれらのスタイルは、私の趣味に全然合わない。正直に言えば、大嫌いなデザインだ。

この“スタイル無断追加機能”をExcel 2007でオフにする手段については、かなり真剣に探したのだが、今のところ見つかっていない。一度気になるともう我慢ができないので、このマクロをExcel 2003側に入れて使っているわけだ。マクロを実行するときは、Excel 2007への呪詛で、頭がいっぱいになっている。

Microsoft Excelには初期のMac版から、かれこれ20年以上もお世話になっているのだが、こうした“余計なお世話”機能にはいつも閉口する。Wordのオートコレクトやオートフォーマットも不要だったが、これらはオフに設定することが容易だった。この“スタイル無断追加機能”、リボンインタフェースと同時に、Excelから直ちになくなってほしいと願っている。