【Windows】ソフト起動時に「MSCOMCTL.OCX」エラーが出る時の対処方法。


パソコン

MSCOMCTL.OCXエラー_eyecatch

Windowsで古いソフトを起動しようとすると「Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid」というエラーが出て起動できないことがあります。

これは起動したいソフトに必要な「mscomctl.ocx」というファイルがパソコンに入っていない、もしくは壊れている時に出るエラーです。

特にWindows10/11などの新しい環境のパソコンの場合は、新しくインストールする必要があるのでこの流れをまとめました。

mscomctl.ocxをインストールして有効化する方法を詳しく解説します。

MSCOMCTL.OCXにエラーが出た時の対処方法

以前、Windows11搭載パソコンにて少し古いソフトをインストールして起動しようとしたところ、以下のようなエラー画面が出ました。

MSCOMCTL.OCXエラー_001

Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid

このエラーをGoogle翻訳にかけてみると以下のような意味です。

コンポーネント 'MSCOMCTL.OCX' またはその依存関係の 1 つが正しく登録されていません: ファイルが見つからないか無効です

エラーの内容ですが、これは要するにソフトに必要となる「MSCOMCTL.OCX」というファイルがパソコン内に見つかりませんでした。という内容のエラーです。

MSCOMCTL.OCXとは?

「MSCOMCTL.OCX」というのはMicrosoftの「ActiveXコントロールファイル」と呼ばれるファイルの1つのようです。Visual Basic6.0(通称VB6)の中に含まれるファイルの1つとのこと。

どうやら1990年代に主流となっていたコンポーネントの1つで、その頃のソフトにはこのコンポーネントが必要になることがあるみたい...

ただし今現在はサポートは終了しているようで、現在のWindows10/11などの新しいパソコンには元々「MSCOMCTL.OCX」が入っていないみたいです。

一昔前のパソコンならエラーなしで問題なく起動できるはずですが、新しいパソコンで古いソフトを起動しようとすると今回のようなエラーが出るようです。

スポンサーリンク

MSCOMCTL.OCXをインストールする方法

原因が分かったので早速「MSCOMCTL.OCX」をパソコンにインストールします。

まずは「MSCOMCTL.OCX」が含まれる実行ファイルを入手します。
以下の公式サイトから「Microsoft Visual Basic 6.0」をダウンロードしましょう。

ページを開いてそのまま「ダウンロード」ボタンを押せばOKです。

今回は「VisualBasic6-KB896559-v1-JPN.exe」というファイル名で入手できました。
こちらはインストーラーになっているので、そのまま実行しても良いのですが、今回は「MSCOMCTL.OCX」だけが欲しかったので手動でインストールします。

ダウンロードした.exeを解凍する

先ほど公式サイトから入手した「VisualBasic6-KB896559-v1-JPN.exe」を解凍すれば「mscomctl.ocx」を単体で使用することができます。

MSCOMCTL.OCXエラー_002

実行ファイルを右クリックして解凍する

実行ファイル(~.exe)を右クリックして任意の解凍ソフトで解凍しましょう。
解凍すれば色々なファイルが展開されますが、その中に「mscomctl.ocx」というのがあるのでこれを使用します。

mscomctl.ocxをシステムフォルダに配置する

MSCOMCTL.OCXエラー_003

mscomctl.ocxをシステムフォルダにコピーする

実行ファイルを解凍したら、その中にある「mscomctl.ocx」をコピーします。

そして以下のフォルダに「mscomctl.ocx」を配置します。

OSが64bitの場合

OSが64bitなら「SysWOW64」フォルダ内に「mscomctl.ocx」を配置します。

  • C:¥Windows¥System32
  • C:¥Windows¥SysWOW64

よく分からない方は、上記の両方のフォルダに「mscomctl.ocx」をコピーしても特に問題は起きません。

OSが32bitの場合
  • C:¥Windows¥System32

OSが32bitなら「System32」というフォルダ内に「mscomctl.ocx」を配置します。
この場合「SysWOW64」というフォルダはそもそも存在しないと思います。

なおシステムフォルダなので、コピーする際は管理者権限が要ります。
上の画像のような画面が出たら「続行」を押せばOKです。

コマンドプロンプトでmscomctl.ocxを有効化する

システムフォルダ内に「mscomctl.ocx」をコピーしたら、後は有効化するだけです。
有効化するにはコマンドプロンプトを使用します。

MSCOMCTL.OCXエラー_006

コマンドプロンプトは管理者権限で実行する

コマンドプロンプトを管理者権限で実行しましょう。
(検索欄にcmdと打つとすぐに出てきます。)

続いて以下のコマンドを入力します。
「mscomctl.ocx」を配置した場所によってコマンドが異なる点にご注意下さい。

SysWOW64に配置した場合

直接パスを指定する場合は以下です。

 command
C:\Windows\SysWOW64\regsvr32 mscomctl.ocx

基本は↑のコマンドをコピペすればOKなはずですが、以下のようにcdコマンドで「SysWOW64」に移動してからでも同じことができます。

 command
cd C:\Windows\SysWOW64
regsvr32 mscomctl.ocx

このようにSysWOW64内に「mscomctl.ocx」を配置した時は、コマンドプロンプトの作業ディレクトリに注意が必要です。

System32に配置した場合

System32内に「mscomctl.ocx」を配置した時は、コマンドプロンプトを管理者権限で開けば作業ディレクトリは「System32」になっていると思うので、そのまま以下のコマンドを実行すればOKです。

 command
regsvr32 mscomctl.ocx

入力したらエンターを押せばOKです。
(Ctrl+Cでコピー、コマンドプロンプト上でCtrl+Vを押せばペーストが可能。)

MSCOMCTL.OCXエラー_007

RegSvr32
mscomctl.ocxのDllRegisterServerは成功しました。

というメッセージが出ればOKです。

もしエラーが出てしまう時は「mscomctl.ocx」の配置場所、及びコマンドプロンプトを管理者権限で実行しているかどうかをもう一度確認して下さい。

あとは「Component 'MSCOMCTL.OCX' or one of its dependencies not correctly registered: a file is missing or invalid」というエラーが出ていたソフトを再起動し、無事に起動することを確認しましょう。

まとめ

以上、Windows10やWindows11でMSCOMCTL.OCXをインストールする方法でした。

今回は「mscomctl.ocx」のみを有効化しましたが、同様の方法で「comctl32.ocx」も有効化することができます。続けて「comctl32.ocx」に同じエラーが出た時はこれもシステムフォルダに配置後、コマンドプロンプトを使って有効にしましょう。

余談ですが、MSCOMCTL.OCXのインストール後は別のコンポーネントが無い!というエラーに変わりました…これもまた別の記事でご紹介したいと思います。

古いソフトを新しいパソコンで使うのはなかなか苦労しますね~
ではではこのへんで・w・

関連記事

【COMDLG32.OCXに同じエラーが出る時はこちらをご参考下さい!】
【Windows】ソフト起動時に「COMDLG32.OCX」エラーが出る時の解決策。

-パソコン
-

ありがとうございました!
良かったらシェアしてネ・w・
当サイトはピンバックを受け付けます。

© 2022 ソロ学