こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【VBA】の記述でお助けください。

excel2003を利用しています。

社内で共有で利用しているファイルがあります。
そのファイルのユーザーフォームで、添付している写真のような
listview (リストボックスの一種)を利用しています。

このlistviewをどの端末でも利用できるようにするためには、
各端末にVBEの Microsoft ListView Control 6.0(SP4)
というコントロールを追加しなくてはいけません。

そこで、このlistviewが使われているファイルを開くと、自動的に
Microsoft ListView Control 6.0(SP4) が追加されるようにしたいです。

WorkbookのOpenメソッドに何らかの記述をしてやればよいと考えていますが、
どういった記述をすればよいか等、教えていただけないでしょうか?

以上 よろしくお願いいたします。

投稿日時 - 2013-11-29 19:30:32

QNo.8366931

困ってます

質問者が選んだベストアンサー

質問およびNo1のお礼を要約すると、ListView Controlを使用しマクロを組み込んだExcelのファイルがあり、そのファイルをどのPCでもListViewが機能する状態で開きたい。
と、いうことですね。

回答はNo1に書いた通りです。
mscomctl.ocxが存在しレジストリに正しく登録されていればListViewを使用したファイル(.xls)を開いただけで自動的に処理されます。手動で追加する必要はありません!
開いた時点でアタッチされるのかマクロやVBEを動かした時点なのかは知りません、とにかく自動でやってくれます。

投稿日時 - 2013-11-30 08:17:52

お礼

ご丁寧に、説明頂きありがとうございました。
頂いた情報を参考にして、色々やってみた結果、本日無事に解決いたしました。
本当にありがとうございました。

投稿日時 - 2013-12-03 20:02:57

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>WorkbookのOpenメソッドに何らかの記述をしてやればよいと考えていますが、

何かを記述すれば使えるようになるものではありません。
Microsoft ListView Control 6.0はVB6のActiveXのコントロールでMSCOMCTL.OCXというファイルに収納されています。
ListViewコントロールを使用するためにはMSCOMCTL.OCXが存在しレジストリに登録されている必要があります。
何を記述してもMSCOMCTL.OCXファイルが湧いてくることはありませんから。
ちなみに最終バージョンは(SP6)です。

可動しているPCのMSCOMCTL.OCXを可動させたいPCにコピーしコマンドプロンプトで
>regsvr32 MSCOMCTL.OCX
を実行してレジストリに登録します。

投稿日時 - 2013-11-29 21:01:41

お礼

回答ありがとうございます。もしかしたら、私の説明不足があるかもしれませんので、一点補足させてください。
今会社にいないので、確認賀できず間違っているかも知れませんが、
その、MSCOMCTL.OCX というのは、すでに登録されている状態だけれども、VBEの設定でコントロールを、追加する手間を省いてやりたい。
といった、目的の質問になるとおもわれます。
もし、この質問が正しいかどうかわかりませんが再度アドバイス頂ければ幸いです。

投稿日時 - 2013-11-29 23:36:45

あなたにオススメの質問