仕事で使ってるExcelファイルで、突然マクロのボタンが押せないという現象が発生しました。なので、その解決法とか。結論から言えばタイトル通りなんですが。
<2015/5/20 追記>
コメント欄でも指摘がありましたが、2015年5月に行われたアップデートに登場したKB2965291でも同様の現象が起きます。
対処法としては同様なのですが、なんとなく原因ぽいことについての考察を記事の下の方に追記しました。
<2015/5/20 追記ここまで>
<2015/3/25 追記>
と思ったら、こちらのブログ記事で解決策が出てました。下記のマイクロソフトサポートURLで解決できるとのこと。
http://support.microsoft.com/ja-jp/kb/2956142
<2015/3/25 追記ここまで>
【状況】
前述のとおり、マクロの起動ができないという状態になりました。F8で無理やり起動してもオブジェクト参照エラーとなり、動かなくなるという状態。
いろいろ探してみたところ、ワークシートやワークブックを参照するときにエラーが起きてるようです。ただし、オブジェクトを変数に入れてちゃんと参照している場合は問題ない様子。
つまり、
Sheets(“Sheet1”).Activate
みたいな書き方はだめだけど、あらかじめSTというオブジェクト変数を作っておいて
ST.Activate
みたいに書くのは問題なさそうなんです。この辺はちゃんと検証したわけじゃないので、詳細は不明ですけど、だいたいそんな感じ。
【原因】
WindowsUpdateを行った翌日にいきなり発生したので、問題はそれしかないと思ってました。ただ、一度に大量にインストールしたせいでどれが原因だったのか分からず。
インストールとアンインストールを繰り返して、原因はKB2920813と判明。2015年3月11日ごろに発表されたプログラムなようです。
ただ、環境次第では前述の現象が起こらないのが厄介。KB2920813をインストールしているのに加えて、Excel2007よりも前のバージョンを使ってると不都合が発生するようです。
【対処法】
Windows UpdateでKB2920813を探してアンインストールすれば解決です。
ただし、アンインストールしてもシャットダウンする時に自動でアップデートをインストールする設定にしていると再びインストールする羽目に。なので、毎回Alt+F4でインストールせずにシャットダウンする必要があります。
そもそもExcel2003は既にサポート範囲外だから仕方ないのかもしれませんが、マクロが動かなくなるのはちょっとキツイ。シート参照するマクロがほとんどだからなぁ。
<2015/5/20 追記>
KB2965291でも同様の現象が発生しました。冒頭にも追記しましたが、対処法はインストールしないことぐらいしかないです。
さて、Officeの公式サポートのページを見てみると次のようなことが書かれています。
「ActiveX コントロールの作成中にエラーが発生しました。」が表示される問題を解消しました
さて、本記事で紹介したKB2920813についてもOfficeの公式サポートページを見て調べてみましょう。
ActiveX コントロールを挿入できない問題を解消しました。
つまり。ActiveXが悪い!!
ネットでググってみたところ、Excelのマクロボタンには2種類あるようです。フォームコントロールとActiveXコントロールの2種。
後者は前者の強化版という感じで、マクロの登録だけでなくボタン名を付けられたりコードで操作しやすい……らしいです。せっかく便利になったのに、こういうアップデートで動作しなくなるのはActiveXの方だけっぽいのが残念。
で、本記事で取り上げているKB2920813とKB2965291は、いずれもOffice2010用のアップデートです。なので、考えられる条件は次のいずれか。
1.Excel2003を使いながらxlsxファイルを開くためのコンバータを導入している
2.Office2010のソフトを入れつつExcel2003を使う
個人的には2のほうが可能性としては高いと思うのですが、私の環境では比較できないので推測でしかありません。そもそもExcel2003と他のOfficeが2010ってのが限られますし。
ちなみに私は後者のパターン。最初はExcel2003が入ってたんですが、後からPowerPointをインストールしたのでヘンテコなことになってます。
Excel2003はサポートが切れてるので、おそらく今回のような問題はこれから頻出すると思います。なので、WindowsUpdateを切るぐらいしか効果がないかと。
もしもWindowsUpdateで何かをインストールしてマクロが動かなくなってしまった場合は原因となったアップデートを探して削除する必要があります。これまでの状況を考慮すると、怪しいアップデートの条件は次の通り。
1.Office2010用のセキュリティアップデートである
2.ActiveXに関するアップデートである
というわけで、対処療法として上記の条件を満たすアップデートを探して削除してみてください。根本的な解決にならないんですけどね。
<2015/5/20 追記ここまで>
5月のUpdateは、KB2965291で同様になりました
これもインストールしないように
ありがとうございます。
記事に追記しました。