問題:
Microsoft Office 2010 製品 (またはそれ以降) は、MSCOMCTL.ocx と COMCTL32.ocx の互換性を損なう更新プログラムをインストールします。残念ながら、これは Visual Basic 6 SP6 や Oracle Virtual Box v5 などの他の多くのプログラムに影響します。実際の問題はHKEY_CLASSES_ROOT\TypeLib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0
レジストリ キーです。この問題に関する詳細な背景情報については、こちらを参照してください。
別の実用的なソリューションを次に示します。
この解決策は、Office パッチ ファイルの登録を解除せずに、MSCOMCTL.ocx および COMCTL32.ocx を削除、置換、および再登録することによって、レジストリが破損していないことを前提としています。
fix.cmdという名前のバッチ ファイルを作成し、次のコマンドを配置します。
regsvr32 /s /u %windir%\SysWOW64\comctl32.ocx
regsvr32 /s /u %windir%\SysWOW64\mscomctl.ocx
del /y %windir%\SysWOW64\comctl32.ocx
del /y %windir%\SysWOW64\mscomctl.ocx
msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi
regtlib %windir%\SysWOW64\msdatsrc.tlb
Visual Basic 6.0 Service Pack 6 のセキュリティ更新プログラム: 2012 年 8 月 14 日から msi ファイルをダウンロードし、名前をKB2708437.msiに変更します。
注: Service Pack 6 のダウンロードへの直接リンクは、こちらにあります。
fix.cmdを実行すると、問題が修正されます。
fix.cmd が行うことは、現在の MSCOMCTL.ocx および COMCTL32.ocx ファイルを適切に登録解除してから削除し、最新の Visual Basic 6 SP6 ロールアップ パッチを適用することです。実際、スクリプトは、バージョンに関係なく、すべてのファイルを更新することにより、パッチをインストールしてから再インストールするように強制します。最後に、msdatsrc.tlb タイプ ライブラリを登録します。
これがうまくいくかどうか教えてください。
================================================== ====================
高度なソリューション:
ただし、誤ってレジストリを破損してしまった場合は、できるだけ多くのバージョンの MSCOMCTL.ocx と COMCTL32.ocx を入手する必要があります。次に、古いバージョンに戻って新しいバージョンから開始し、ocx ファイルを登録および登録解除する必要があります。
MSCOMCTL.ocx の最新バージョンは2012 年 5 月の6.1.98.39 (v2.1)であり、これがシステムにインストールされ、すべての問題を引き起こしている可能性が高いです。
最も古い (レガシー) バージョンは、1998 6.1.97.82 (v2.0)の Visual Basic 6 に同梱されたバージョン、または 2005 年 4 月に初期のサービス パック6.1.97.86に同梱されたバージョンです。
例:
regsvr32 /s comctl32.6.0.98.34.ocx
regsvr32 /s /u comctl32.6.0.98.34.ocx
regsvr32 /s comctl32.6.0.81.6.ocx
regsvr32 /s /u comctl32.6.0.81.6.ocx
regsvr32 /s comctl32.6.0.81.5.ocx
regsvr32 /s /u comctl32.6.0.81.5.ocx
regsvr32 /s mscomctl.6.1.98.39.(2.1).ocx
regsvr32 /s /u mscomctl.6.1.98.39.(2.1).ocx
regsvr32 /s mscomctl.6.1.98.34.ocx
regsvr32 /s /u mscomctl.6.1.98.34.ocx
regsvr32 /s mscomctl.6.1.97.86.ocx
regsvr32 /s /u mscomctl.6.1.97.86.ocx
regsvr32 /s mscomctl.6.1.97.82.(2.0).ocx
regsvr32 /s /u mscomctl.6.1.97.82.(2.0).ocx
regsvr32 /s /u %windir%\SysWOW64\comctl32.ocx
regsvr32 /s /u %windir%\SysWOW64\mscomctl.ocx
del /q %windir%\SysWOW64\comctl32.ocx
del /q %windir%\SysWOW64\mscomctl.ocx
msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi
regtlib %windir%\SysWOW64\msdatsrc.tlb
警告:
これらのファイルをインターネットで検索しないでください。別のバージョンの OCX ファイルを見つけるには、次のような公式の Microsoft インストーラー パッケージをダウンロードして抽出します。
2005 年 4 月 - Microsoft KB896559
2008 年 12 月 - Microsoft KB926857
2009 年 4 月 - Microsoft KB957924
2012 年 5 月 - Microsoft KB2708437
また、 CCleanerバージョン 4.0 以降を実行して、コンピュータ上のその他の ActiveX 関連の問題を修正することもお勧めします。