Windowsでソフトの起動時に「Component 'COMDLG32.OCX' or one of its dependencies not correctly registered: a file is missing or invalid」というエラーが出て、ソフトが起動できない時の対処方法です。
これは起動したいソフトに必要な「comdlg32.ocx」というファイルがパソコンに入っていない、もしくは壊れている時に出るエラーです。
Windows10/11など、新しい環境のパソコンで古いソフトを起動したい時に出るエラーかと思いますが、comdlg32.ocxをインストールすれば解決します。
comdlg32.ocxをインストールして有効化する方法を詳しく解説します。
この記事の目次
COMDLG32.OCXにエラーが出た時の対処方法
Windows11搭載パソコンで、ある古いソフトを起動しようとしたところ以下のようなエラーが出ました。
Component 'COMDLG32.OCX' or one of its dependencies not correctly registered: a file is missing or invalid
【日本語訳】
コンポーネント 'COMDLG32.OCX' またはその依存関係の 1 つが正しく登録されていません: ファイルが見つからないか無効です
実は前回の記事で「MSCOMCTL.OCX」というコンポーネントに全く同じエラーが出てしまい、これを解決したところ「COMDLG32.OCX」にもエラーが出てしまったという流れです。とはいえ別のエラーなので、当記事でこちらの対処方法をご紹介します。
エラーの原因はCOMDLG32.OCXが無いから
COMDLG32.OCXというのは「ActiveXコントロールファイル」と呼ばれるファイルの1つで、1990年代にMicrosoft社が開発で使用していたVisual Basic6.0(通称VB6)の中に含まれるコンポーネントの1つです。
その時代(1990年頃)のソフトはこのVB6が使われていることがあるのですが、現在のWindows10/11などの新しいパソコンの環境にはこのコンポーネントが初期状態で入っていません。これがエラーの主な原因です。
なので、パソコンに「comdlg32.ocx」を入れればこのエラーは解決できます。
ただ前回記事にした「mscomctl.ocx」はMicrosoftの公式サイトから入手できるのに対して、今回必要な「comdlg32.ocx」は公式サイトからは入手不可能な状態です。
そこで調べたところ、海外のサイトから「comdlg32.ocx」を単体でダウンロードすることができ、これをインストールすることでエラーを解決することができました。
当記事では「comdlg32.ocx」の入手からインストールまでを詳しくご案内します。
COMDLG32.OCXのインストール方法
では早速「COMDLG32.OCX」をパソコンにインストールしましょう。
現状COMDLG32.OCXをインストールする方法は以下の2つが主な手段となります。
- ネットから「comdlg32.ocx」を単体で入手し、手動で有効化する。
- VB6のインストーラー(フリーソフト)を使ってインストールする。
今回は“comdlg32.ocxだけ”が必要だったので、①の方法を詳しく解説します。
②の方法についてはインストーラーの入手先だけで、詳しい使い方は割愛します。
Microsoftの公式サイトから入手できれば一番良いのですが、先述の通りできません…
正直、出所がハッキリしないコンポーネントを使うのは少し不安ですが、物が古いのでこれは仕方ありませんね。
では参りましょう・w・
comdlg32.ocxをダウンロードする
まずは以下の海外サイトから「comdlg32.ocx」を入手します。
アクセスしたら「Download comdlg32.ocx」というボタンをクリック。
続いてBOT認証にチェックを入れると画面が進みます。
あとは最新バージョンの「comdlg32.ocx」を押せばダウンロードできます。
「comdlg32.ZIP」というファイルをダウンロードできればOKです。
参考
入手した「comdlg32.ocx(ver6.01.9841)」は当方でウイルスチェックしましたが問題ありませんでした。また、インストール後の動作も確認済みです。
ファイルは.ZIP形式で圧縮されているので、右クリックのメニューなどから解凍して下さい。
解凍すると「comdlg32.ocx」というファイルが出てきます。
これが今回インストールしたいコンポーネントです。ocxme.txtは使いません。
comdlg32.ocxをシステムフォルダに配置する
続いて「comdlg32.ocx」をシステムフォルダに配置します。
「comdlg32.ocx」をコピーして以下のフォルダに貼り付けます。(移動でも可)
OSが64bitの場合
OSが64bitなら「SysWOW64」フォルダ内に「comdlg32.ocx」を配置します。
C:¥Windows¥System32- C:¥Windows¥SysWOW64
よく分からない方は、上記の両方のフォルダに「comdlg32.ocx」をコピーしても特に問題は起きません。
OSが32bitの場合
- C:¥Windows¥System32
OSが32bitなら「System32」というフォルダ内に「comdlg32.ocx」を配置します。
この場合「SysWOW64」というフォルダはそもそも存在しないと思います。
どちらのファイルにコピーするにしても管理者権限が必要になります。
上の画像のような画面が出たら「続行」を押せばコピーできます。
コマンドプロンプトでcomdlg32.ocxを有効化する
「comdlg32.ocx」を上記のシステムフォルダ内に配置したら早速有効化しましょう。
有効化するにはコマンドプロンプトを使用します。
管理者権限でコマンドプロンプトを起動し、以下のコマンドを実行します。
「comdlg32.ocx」の場所によってコマンドが異なる点にご注意下さい。
SysWOW64に配置した場合
command
C:\Windows\SysWOW64\regsvr32 comdlg32.ocx
System32に配置した場合
command
regsvr32 comdlg32.ocx
コマンドを入力したらエンターを押せば実行されます。
RegSvr32
comdlg32.ocxのDllRegisterServerは成功しました。
というメッセージが出ればインストール完了です。
エラーが出ていたソフトを再起動してうまく起動するか確認しましょう!
フリーソフトでCOMDLG32.OCXをインストール&有効化する方法
ここまで紹介した方法が難しいと感じる方は、フリーソフトのインストーラーを使用してVB6を一括インストールする方法でもエラーを解決することが可能です。
少し調べたところ「COMDLG32.OCX」をインストール&有効化できるフリーソフトは以下の2つが有名なようです。
- XTRM Runtime
- Visual Basic 6.0 SP6 ランタイムファイル
どちらもフリーソフトを無料でダウンロードできるサイトである「Vector」および「窓の杜」から入手することが出来ますので、リンクを貼っておきます。
外部リンク
【XTRM Runtime】
「XTRM Runtime」VB/VCの各種ランタイムを一括導入 - 窓の杜
外部リンク
【Visual Basic 6.0 SP6 ランタイムファイル】
Visual Basic 6.0 SP6 ランタイムファイルの詳細情報 : Vector ソフトを探す!
どちらもインストーラー形式なので、実行して進むだけで「comdlg32.ocx」を含むVB6をインストールすることができます。
ソフトの使い方を書くと長くなるのでこの記事では割愛しますが、必要な項目を選んで進んでいくだけなので、それほど悩まずにインストールできるはずです。
まとめ
以上、Windowsで「Component 'COMDLG32.OCX' or one of its dependencies not correctly registered: a file is missing or invalid」が出た時の解決策でした。
長々と書きましたが、このエラーはcomdlg32.ocxさえインストール出来れば解決できるはずです。なのでインストーラーを使ってVB6を一式入れるよりも、comdlg32.ocxを単体で入手して有効化する方法のほうがおすすめではあります。
どうかあなたが使おうとしているソフトが無事に起動しますように...
ではではこのへんで・w・