ここから本文です

VBAのユーザフォームでListViewを使用しているのですが、他のPCでマクロを実行する...

marche327さん

2012/12/321:16:09

VBAのユーザフォームでListViewを使用しているのですが、他のPCでマクロを実行するとMSCOMCTL.OCXが参照不可となりListViewが消えてしまいます。手動で参照設定を行っても一度消えたListViewは復活しないようです。

別のPCで起動した際に、自動でMSCOMCTL.OCXを参照し、ListViewの消失を防ぐ方法がありましたら教えていただけると助かります。

補足nofxmxpx29様
ご回答ありがとうございます。ご指摘いただいたとおり、ツールを運用するPCのMSCOMCTL.OCXのバージョンが古かったのが原因のようで無事解決できました。
最後に一つ質問させていただきたいんですが、MSCOMCTL.OCXを古いバージョンに戻す際は、旧バージョンのMSCOMCTL.OCXの上書き、記載頂いたバッチファイルの実行でよろしいのでしょうか?

閲覧数:
13,480
回答数:
1

違反報告

ベストアンサーに選ばれた回答

nofxmxpx29さん

編集あり2012/12/420:45:52

そのファイルを作成したPCのMSCOMCTL.OCXのバージョンはいくつでしょうか?
現在の最新バージョンは、6.01.9834です。2012/5/02に私の方では更新がかかっています。
その一つ前のバージョンとの互換性がなくなってしまったようです。
私もこのアップデートのおかげで配布先でえらいめにあいました。。
(私のもう一台のPCがメインの開発用に使用しているのですが、
このアップデートがかかっていなかった為、
配布先でListViewは全滅しました、、)


もし古いバージョンで作成してあるのでしたら、

・別PCより最新のバージョンを入手
・念の為、古いバージョンのOCXファイルはバックアップして下さい。
・System32フォルダ内に最新版をコピー
・以下をメモ張に貼り付けます。

reg delete hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 /f
if exist %systemroot%\SysWOW64\cscript.exe goto 64
%systemroot%\system32\regsvr32 /u mscomctl.ocx
%systemroot%\system32\regsvr32 mscomctl.ocx
exit
:64
%systemroot%\sysWOW64\regsvr32 /u mscomctl.ocx
%systemroot%\sysWOW64\regsvr32 mscomctl.ocx
exit


これを拡張子を「.bat」として保存します。
バッチファイルを作成したら、管理者として実行して下さい。
(XPの時の管理者としての実行方法はwebを検索して下さい。)
このバッチファイルは、MSCOMCTL.OCXのレジストリからの解除と再登録を行うものです。

これが完了しましたら、対象ファイルを開き一度コンパイルをかけて保存します。
これで古いバージョンで作成したListViewが最新状態になります。

これは、古いバージョンでファイルを作成した時の対処方法ですが
そうではなくて、作成したのは最新バージョンで他のPCが古いバージョンの場合は
同様にbatファイルの実行を対象PCでおこなって下さい。

私はこの方法で対応出来ました。では。



補足を受けて

古いバージョンに戻すにはsystem32に古いOCXをコピー、バッチの実行でOKですが

根本の原因は
Microsoft Office 2003 セキュリティ更新プログラム: KB2597112 (2012/4だそうです)
このアップデートですので、今後も一切このアップデートをインストールしない
手立てが必要になります。

素直にこのアップデートを受け入れられた方がよろしいかと私は思います。
では。

質問した人からのコメント

2012/12/5 20:50:24

複数回にわたるご回答ありがとうございました。
素直にアップデートを受け入れようと思います。
また、お力を借りることもあるかと思いますが、その際はよろしくお願いいたします。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。