このページの対象: Windows 10 / 8.1 / 7

Windows 10 にて、古いソフトを使おうと思ったら以下のようなエラーが出てしまった。

「mscomctl.ocx」が正しく登録されていない

要はツールを作動させるために必要な「mscomctl.ocx」が見つからないよ、と言っているのだ。結論から言ってしまうと、VB6 ランタイムをインストールすればこのエラーは解消する。

VB6 ランタイム のダウンロード

利用している OS が Windows 10 / 8.1 / 7 であれば、Vectorで配布されているものを使うのがよい。

※ここで注意 (やや脱線)

という事で、Windows 10/8.1/7 であれば Vectorで配布されているものを使おう。
脱線おわり。

スポンサー リンク

VB6 ランタイム のインストール手順

上記で紹介したファイルのうち、「Visual Basic 6.0 SP6 ランタイムファイル」は かなり古いインストーラーが起動するのでちょっとビックリする。
久々に見るものなので、ちょっと手順をメモしておく。
(TRM Runtime は比較的新しいインストーラーなので割愛)

以下、オールドユーザーにはかなり懐かしい手順と画面が展開される。

実際の手順

まず、ダウンロードしたファイルをダブルクリックする
まずは解凍作業
ダウンロードしたファイルの解凍作業がはじまるので、解凍先のフォルダを指定し、「OK」を押す。

「vb6rtest」というフォルダが生成されているので開く。
まずは解凍作業
▲クリックで拡大
フォルダ内に「setup.exe」というファイルが見つかるので、それをダブルクリックする。

UACが反応する。
PCに変更を与える許可を行う画面
▲クリックで拡大
PCに変更を与える許可が必要なので、「はい」を押す。

以下のセットアップウィザードが起動する (懐かしい)
セットアップウィザードが起動した画面
▲クリックで拡大
この画面が表示されたら「OK」を押す。

インストール先の指定を行う。
インストール先の指定
▲クリックで拡大
インストール先を変更したい場合、図中緑の矢印のボタンで行う (通常は変更不要)
インストールを続行する場合は、図中赤の矢印のボタンを押す。

プログラムグループの選択を行う。
プログラムグループの選択
▲クリックで拡大
ここも特に変更する必要はない。
そのまま「継続」ボタンを押せばよい。
※「継続」を押すと実際にインストールがはじまる。

インストール完了後の画面
インストール完了
この画面が出れば、インストールは終了。
「OK」を押してセットアップウィザードを終了させる。
インストール終了後は念のためPCを再起動しておこう。

その他: mscomctl.ocx が同梱されている場合

ネット上に配布されているフリーツールの中には、(稀にだが) mscomctl.ocx が同梱されたツールも存在する。(例: PC自動化ソフト HiMacroEx )

この場合であれば、XTRM Runtime ではなくVisual Basic 6.0 SP6 ランタイムをインストールし、ツールに同梱されている mscomctl.ocx を regsvr32 することでもエラーを解消することができる。

regsvr32 の手順

  • mscomctl.ocx をフォルダ「C:\Windows\SysWOW64」に設置する
  • コマンドプロンプトまたは PowerShell を管理者権限で起動し、「regsvr32 C:\Windows\SysWOW64\mscomctl.ocx」と入力すればOK
    • 上記は 64bit版 Windows の場合。
    • 32bit版の場合、「regsvr32 C:\Windows\system32\mscomctl.ocx」と入力する
  • ファイルが正常に登録できたら終了。
    • この時のメッセージは「C:\Windows\SysWOW64\mscomctl.ocx の DllRegisterServer は成功しました。」となる
  • 補足: エラーが出る場合
    • VB6が正常にインストールされていないか、その他何かの手順が間違っている。
    • regsvr32.exe にドラッグ&ドロップでファイルを登録する手順は、いつの間にか出来なくなっている

このページの情報は以上。

あとがき

過去、この系統のエラーには何度も出くわしているが、このブログ内には当時のメモがほとんど残っていないことに我ながら少し驚いた。

よく考えてみると私の場合、2012~3年頃までは Windows PC のセットアップをしょっちゅう行っていた。なので当時は「***.ocx が正しく登録されていないエラー」を見た瞬間に「あ、VB6ランタイムが入っていない or 正常動作していない」と判断できていた。

つまり、当時はわざわざメモを残しておくほどの価値もないエラーだったのだ。

ここ数年、PCのセットアップをほとんど行っていないこと、フリーツールを物色する事が少なくなってしまことなどが理由で、上記をすっかり忘れてしまっていた。いつの間にか、私のPCの使い方は大きく変わってしまっていた。なんかしみじみしてしまった。