• 締切済み

ExcelVBAでListViewが使用できない

ノートパソコン(Windows7 64bit、EXCEL 64bit)を使用して、VBAでツールを作成しています。 フォーム上にListViewを追加したいのですが、コントロールの追加ダイアログにて 「Microsoft ListView Control, version 6.0」がリストがないので追加することができません。 参照設定にも「Microsoft Windows Common Controls 6.0(SP6)」がありませんでした。 これが原因かと考え、System32に「MSCOMCTL.OCX」がなかったので、 ListViewの使える他のパソコン(Windows7 32bit、EXCEL2010 32bit)から 「MSCOMCTL.OCX」を持ってきて入れました。 すると参照設定で「Microsoft Windows Common Controls 6.0(SP6)」を選べるようになったのですが、 未だにコントロールの追加ダイアログ上ではListViewの利用ができない状態でした。 職場のほとんどパソコンではListViewが使用可能なのですが、 ListViewが使用できないパソコンの条件などあるのでしょうか? ご回答お待ちしておりますのでよろしくお願い致します

みんなの回答

  • hirotn
  • ベストアンサー率59% (147/246)
回答No.3

以下は、32ビット版と64ビット版の機能の制限を説明し、どちらを利用すべきかの判断材料を提供している資料です。 http://office.microsoft.com/ja-jp/excel-help/HA010369476.aspx Microsoftは、64bit版のOfficeに対してComctl(ListViewなどのコントロールを提供する機能)に対する適切な代替手段を提供していません。 職場のほとんどのListViewが利用できるパソコンが32Bit版であるということでしょう。

Ryo0617
質問者

お礼

お礼遅くなりまして申し訳ございません。 大変勉強になりました。 ありがとうございます。

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.2

64bit の Excel は巨大なデータやシート数を扱う場合ぐらいしかメリットがない。 VBA についても、Excel 内のオブジェクトを使用するだけなら大丈夫だが、外部オブジェクト (ActiveX コントロール、ActiveX オブジェクトなど) は全滅と考えたほうがよい。 64bit に対応している ActiveX を自前で調達してくるか、使わずに済む回避方法を採用するか、32bit の Excel を使うか、のどれかを選択するしかない。 > ListViewの使える他のパソコン(Windows7 32bit、EXCEL2010 32bit)から「MSCOMCTL.OCX」を持ってきて入れました。 こういう行為は NG

Ryo0617
質問者

お礼

お礼遅くなりまして申し訳ございません。 大変勉強になりました。 ありがとうございます。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

64bitアプリから32bitのOCXは使用出来ません。 32bit Excel をインストールするのが有効な解決策かと。 http://office.microsoft.com/ja-jp/excel-help/HA010369476.aspx http://excelnavi.livedoor.biz/archives/2603086.html

Ryo0617
質問者

お礼

お礼遅くなりまして申し訳ございません。 大変勉強になりました。 ありがとうございます。

Ryo0617
質問者

補足

ご回答ありがとうございます。

関連するQ&A

  • mscomct2.ocxをパソコンに導入するには?

    ACCESS2003 mscomct2.ocxを新しいパソコンに導入するには? windows7 home premium 32bit Access2003 パソコンを買い換えたため、以前使用していたACCESS2003で作ったmdbファイルを移動しました。 開こうとしましたがエラーが出て開かず(エラーの内容は忘れましたが、何かが足りないといった事だったと思います)、日付の入力にDTPickerを使用していたことに気付いてmscomct2.ocxをwindows\system32フォルダに入れました。 無事、起動は出来たのですが、フォームを開こうとすると「このコントロールにはオブジェクトがありません」というメッセージが現れて、配置したDTPickerが消えています。 フォームの ツール-ActiveXコントロール の利用可能なコントロールの中には入っておらず(当然^^;)、登録から mscomct2.ocx を選択すると「追加することはできませんでした。別のセットアッププログラムを使って追加してください。」と出ます。 そこで、Visual Basic の ツール-参照設定 を見てみますと 参照可能なライブラリファイルの中に Microsoft Windows Common Control-2 6.0(SP4) にチェックが入っています。 試しにと、一度チェックをはずしてACCESSを再起動してみると Microsoft Windows Common Control-2 6.0(SP4) が消えていてチェックを入れることも出来なくなりました。(でも、起動はします。) mscomct2.ocxを使えるようにするにはどのようにしたら良いのでしょうか? 以前、パソコンがクラッシュして再インストールしたときは mscomct2.ocx をsystem32に放り込んだだけで問題なかったような気がしたのですが・・・。7は少し違うのでしょうか? もし同様の経験のある方がいらっしゃいましたら是非ともご教示下さい。

  • Excel2000以上でのListViewについて

    最初にExcel2000上で作成したファイルを、 Excel2007互換モード上で、ListViewコントロールを追加 (以下URL内容を参照しながら追加しました。 http://officetanaka.net/excel/vba/listview/01.htm) して、 その後、Excel2007互換モード上では、 正常に動いています。 しかし、 そのExcelファイルを、 別のパソコン内のExcel2000上で、 動かすと、   ↓ 「はこのマシンで利用できないため、 オブジェクト を読み込めませんでした。」 (Microsoft forms)(ビックリマーク アイコン)([OK]ボタンのみ) エラーが表示されました。 その後、 その別のパソコン内のExcel2000に対しても、 上記と同じURL内容を参照しながら、 ListViewコントロールを追加してみましたが、 上記のエラーが解消されません。 どうすれば、このエラーを解消できるのでしょうか? 以上になります。 よろしくお願いします。

  • Access2003使用してます。コモンダイアログボックスがActiveX挿入リストに無い

    Access2003使用してます。コモンダイアログボックスを使いたいのですが、挿入(I)-ActiveXコントロール(O)のリストにMicrosoft Common Dialog Controlがありません。 なにか参照設定とかしないとリストに追加されないのでしょうか? よろしくお願いします。

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

    excel2003を利用しています。 社内で共有で利用しているファイルがあります。 そのファイルのユーザーフォームで、添付している写真のような listview (リストボックスの一種)を利用しています。 このlistviewをどの端末でも利用できるようにするためには、 各端末にVBEの Microsoft ListView Control 6.0(SP4) というコントロールを追加しなくてはいけません。 そこで、このlistviewが使われているファイルを開くと、自動的に Microsoft ListView Control 6.0(SP4) が追加されるようにしたいです。 WorkbookのOpenメソッドに何らかの記述をしてやればよいと考えていますが、 どういった記述をすればよいか等、教えていただけないでしょうか? 以上 よろしくお願いいたします。

  • Visual Basic 6.0 でPanelを使用したい

    Visual Basic 6.0 SP6でPanelコントロールを使用したいのですが、 Threed32.ocxはVB6での使用が推奨されていないようです。 http://support.microsoft.com/kb/412577/ja Threed32.ocx以外にVB6で使用可能な無償のパネルは存在するのでしょうか? よろしくお願い致します。

  • Accessで MSCOMCT2.OCX 参照不可をコードで解決したい

    宜しくお願いします。 Access2003(WinXP)でオブジェクトを配置してコードを書いています。 自分のPCでは問題ないのですが、他人のPCで稼動させると 『MSCOMCT2.OCX ver2.0』参照できません というようなエラーが出ます。 ツール→参照設定を開くと  Microsoft Windows Common Control-2 6.0(SP4) が参照不可になっていました。 チェックをはずせばOKですが、この作業をコードで出来ないでしょうか。 ちなみにExcelを開くイベントもあり、そちらは Create Object で解決できました。同じように・・・と思ったのですが、どういうコードを書いたら良いのか分かりません。。 宜しくお願いします。

  • コモンダイアログコントロールがコンポーネントにありません

    VB6.0 win2000を使用しています。 コモンダイアログを使用したいと思い、 メニューの[プロジェクト]-[コンポーネント]Microsoft Common Dialog Control 6.0にチェックを入れようとしたところ、 メニューにMicrosoft Common Dialog Control 6.0がありません。 これはどうしたらいいのでしょうか? VB超初心者です。 よろしくご指導お願いします_(__)_

  • comdlg32.ocxライセンス(Access)

    Win98 Access2000 で、comdlg32.ocxを使いたいと思い、ActiveXコントロールを見たのですが、利用可能なコントロールにMicrosoft Common Dialog Controlがありませんでした。 C:\WINDOWS\SYSTEMに、comdlg32.ocxが入っていませんでした。 Win98のCD-ROMのtoolというディレクトリのsetupをおこなったら、comdlg32.ocxが入ってきて、regsvr32.exeを起動したところ、Access2000のActiveXコントロールの利用可能なコントロールに表示されたのですが、いざ、Formに登録しようとしたら、 「このActiveXコントロールを使用するライセンスがありません。」 とメッセージが出てきてしまいました。 VB6.0 SP3のランタイムをセットアップしたり、Office2000を削除し、再インストールしたり、 regsvr32で、レジストリの内容を削除して、登録しなおしたり、思いつくことはいろいろやってみたのですが、状況はかわりません。 お力添えを、お願いします。

  • vb6 オブジェクトライブラリは登録されていません

    お世話になります。 VB6の開発環境で困っております。 マシンは前任者から引き継いだWin7 の32Bitなのですが、 VB6のプロジェクトを開くと「オブジェクトライブラリは登録されていません」のメッセージが出てしまいます。 確認したところ、プロジェクトのコンポーネントにMscomctl.ocxが登録できない状況なのは確認できました。 ※登録時も同じメッセージで登録できません。 以下、試したこと VB6のSPやパッチをインストール VB6.0-KB290887-X86とVB60SP6-KB2708437-x86-JPN レジストリの削除 reg delete hkcr\typelib\{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0 /f レジストリの再登録等 C:\Windows\system32\regsvr32 /u C:\Windows\system32\mscomctl.ocx C:\Windows\system32\regsvr32 C:\Windows\system32\mscomctl.ocx /u C:\Windows\system32\regsvr32 C:\Windows\system32\mscomctl.ocx C:\Windows\regtlib.exe C:\Windows\system32\mscomctl.ocx 前任者からの引き継ぎ(会ったことないけど)なので、いつの段階から事象が出ているのか判断つかず、システムの復元は行っておりません。

  • WindousNT(sp6)でのVB5.0(sp3)での問題

    WindowsNT4.0(sp6)にVB5.0(sp3)をインストールしたのですが、Microsoft Common Dialog6.0を使おうとすると「このコンポーネントのライセンス情報が見つかりません。デザイン環境でこの機能を使うためにはライセンスがありません。」のメッセージが出て使えません。ほかのOCXは何の問題もありません。何故Common Dialogが使えなくなっているのか?どうすれば使えるのかをお教えください!

専門家に質問してみよう