Contents
最近立て続けに聞かれたのでまとめておきます。
- 人がつくったマクロが自分のPCでは動かない
- ただのString.Trimですらエラーになる
- ダウンロードしたExcelファイルを開くと『コンパイルエラー』ってメッセージが出る
って方が度々現れます。
これ、原因はだいたい1つで、MSCOMCTRL.OCXの参照がなくなってるんですよね。
しかも何かの拍子になることがあるので大変始末が悪い。
まず確認
問題になったExcelで、Altキーを押したままF11キーをさらに押してVBAを立ち上げます。
[ツール]→[参照設定]をクリック。
ちなみにこれがクリックできない人は、おそらくパスワードがかかっているので、この手順はすっ飛ばしてとりあえず対策をやってみましょう。
ここに「参照不可」となっているライブラリがないかチェック。
その参照元(場所)がおそらくMSCOMCTRL.OCXじゃないでしょうか。
対策
MSCOMCTRL.OCXを所定の場所に配置する
MSCOMCTRL.OCXが入ったファイルをダウンロードする
こちらからダウンロードしてください。
実行せずに解凍する
ダブルクリックしちゃうとインストーラーが起動しちゃいますが、解凍ソフトを使って解凍してください。
解凍方法はインストールされているソフトによって違うでしょうが、とりあえずExplzhとかインストールしていれば、右クリックでそれらしいメニューが出てきます。
解凍が終わると、そこにmscomctl.ocxがあるはず。
ファイルを移動
大抵の方は「C:\Windows\SysWOW64」だと思いますので、そこにmscomctl.ocxを移動します。
mscomctl.ocxの参照設定を行う
コマンドプロンプトを管理者権限で実行
regsvr32コマンドを実行
下記コマンドを叩きます。
regsvr32 C:\Windows\SysWOW64\mscomctl.ocx
このメッセージが出ればOK!
これで問題になったExcelファイルを開き直せば直ってる…はず。
これでも動かない (というか開けない) 人
作った人とExcelバージョンが違うと度々起こります。
例えば、作った人はExcel2010で編集してて、それを自分がExcel2016で開こうとしているとか。
そういう時は一度、きちんと開ける人に開いてもらって、上書き保存してもらうと解決することがあります。
でも他人や別PCの助けが必要なんですよね。
他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。