自分だけマクロが動かないと思ったら

最近立て続けに聞かれたのでまとめておきます。

  • 人がつくったマクロが自分の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関連要素をまとめていますので、よければ一覧記事もご覧ください。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)