AccessでMSCOMCT2.OCX 参照不可を解決する方法

このQ&Aのポイント
  • Access2003(WinXP)でMSCOMCT2.OCX参照不可のエラーが発生し、他のPCでも同様に問題が発生する場合、コードで解決する方法を紹介します。
  • ツール→参照設定でMicrosoft Windows Common Control-2 6.0(SP4)が参照不可になっていることが原因です。コードでこの設定を変更することで問題を解決できます。
  • Excelを開くイベントでも同様の問題があった場合、Create Objectを使用して解決したことから、MSCOMCT2.OCXの参照も同じように解決できる可能性があります。具体的なコードについては詳細が不明ですが、解決方法は存在します。
回答を見る
  • ベストアンサー

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

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

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 もう一度、話を遡って見なければならない気がします。 >自分のPCでは問題ないのですが、他人のPCで稼動させると そこで、私が考える方法は、三つあります。 >COMDLG32.OCX (Microsoft Common Dialog Control 6.0 SP3) もともと、これを使う必要があったのでしょうか。 もともと、Office 2003に標準的に付いてくる Runtime には入っていないように思います。 ひとつは、通常、Access で、DT Picker など使う必要もないわけですから、参照設定を外してあればよいのではなかったのではないでしょうか。そういう私のところもCommon Dialog は入っていますが、こちらは、COMDLG32.OCX が、参照設定のリストには入っていませんでした。 もうひとつは、Office 下位バージョンで作成することです。もし、下位バージョンが用意できれば、という条件です。下位バージョンから、上位バージョンには切り替えができます。それは、少し現実的ではないかもしれません。 最後は、そのActive X が、外れない場合のことですが、自分のPCから、問題のActive X を一旦、外してみる、つまり、MSCOMCT2.OCX を外してしまう、ということです。手動では面倒なので、調べてみると、以下のようなツールがありました。入れるほうも簡単に入ります。 レジストリ登録 OCX、DLLコントロールをレジストリに登録する http://www.vector.co.jp/soft/winnt/prog/se454812.html こんなことを考えてみました。

yuky-4126
質問者

お礼

色々とありがとうございます! 参照設定は、必要な項目をAccessが勝手にチェック入れてくれているものと思っていました。 試しにはずして動作確認してみましたが、問題ありませんでした。 Excelの参照などもついでにはずして、Excelへエクスポートする処理も動かして見ましたが、そちらは CreateObject させているからか、処理の後確認してみたら自動的にチェックが入っていました。 レジストリをいじるのは素人なので危ないのでやめておきます…(汗) 解決です!感謝です。本当にありがとうございました!

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 References をループして、IsBroken で、参照不可のものは排出はできますが、Remove メソッドでは外すことができなくなってしまったようです。 × Application.References.Remove ref  No12793.VBAでの参照不可の設定を解除するには? http://www.accessclub.jp/bbs5/0041/vba12793.html マクロで参照設定を操作する http://officetanaka.net/excel/vba/tips/tips100.htm

yuky-4126
質問者

お礼

Wendy02さん 回答ありがとうございます。 Removeも色々試してだめだったのですが、そうですか できないのですか。 他に方法は無いのでしょうか…。 このmdbを使う人全員が参照設定の設定をしないといけないのでしょうか(汗)

関連する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は少し違うのでしょうか? もし同様の経験のある方がいらっしゃいましたら是非ともご教示下さい。

  • VBAの参照設定について

    osは、Wxpで、エクセル2003使用してます。 あるコードを実行したところ、コンパイルエラーメッセージが出て、 調べたところ、参照設定の中の、Microsoft Windows Common Controls 5.0(SP2)が、参照不可となっていました。たぶんこれじゃないかなと、 調べたりしたのですが、参照可能にする方法がわかりません。 可能になってるマシンでは、動作は正常で、不可になってるマシンでは、 正常に動きました。 参照可能にする方法を、どうか教えてください。 よろしくお願いします。

  • VB6で作成したOCXをASPから呼び出すときのセキュリティについて

    VB6(SP6)でOCXを作成しました。VBのディストリビューションウィザードでは「配置」を選択して作成しました。 このOCXをASP(VBS)を使ってWeb画面から呼び出しています。 このOCXを参照した時、ブラウザがOCXをダウンロードしようとしますが、PCによってはダウンロードされないことがあります。ブラウザのセキュリティ設定を確認していますが、他に影響のある設定はあるのでしょうか? WebサーバーはWindowsXP(SP3)でIIS6を使用しています。 クライアントはWindowsXP(SP3)でIE7で参照しています。 ダウンロードされたかどうかはブラウザのインターネットオプションから、インターネット一時ファイルの「オブジェクトの表示」で確認しています。 よろしくお願いいたします。 質問内容に不備などありましたらご指摘いただけると助かります。

  • AccessVBAの参照設定について

    Office2003(Access2003VBA)で、『MicroSoft 10.0 object Libbrary』にチェックを入れて、エクセルの、『ファイルを開くダイアログボックス』を使用しました。しかし、参照設定したファイルを、他人のPC(officeXP)で起動すると、『参照不可』のため、『ファイルを開くダイアログ』が使用できません。もちろん、参照設定を、やりなおせばいいわけですが、こんなもの納品できません。参照設定の正しい設定の仕方とかあるんでしょうか?ちなみに、同じファイルを、今度はOffice2007のPCで起動すると、ちゃんと、『MicroSoft 11.0 object Libbrary』にチェックが付いていました。どんなPCでも、Office(XP以降)がインストールされていれば、チェックされていて欲しいのですが、無理なんでしょうか?

  • DetectExcel 参照設定

    VBで、Excelを起動する際、オブジェクト名.DetectExcelとやっています。 これが、参照設定「Microsoft Excel 11.0 Object Library」ではエラーとなり、「Microsoft Excel 9.0 Object Library」ではエラーになりません。 これは仕様なのでしょうか? 何か回避方法があればご教授下さい。 よろしくお願いします。

  • コードで参照設定をする方法

    VBのコード内で、オブジェクトへの「参照設定」をさせる方法を教えていただけませんでしょうか。 目的は、自分のコンピュータでは参照設定してあるオブジェクトでも、ほかのパソコンではされていると限らないため、アプリ(実際はエクセルブック)の起動時に参照設定を強制したい。参照設定がないと、そのオブジェクト変数の宣言文がコンパイルエラーとなってしまいますよね・・・。 VBAのヘルプによればこちらのメソッド(object.AddFromGuid(guid, major, minor) As Reference)を使うといいような気がするのですが、参照設定したい先(具体的には「Microsoft Scripting Runtime(scrrun.dll)」)の「GUID」がわかりません。レジストリを探さないといけないのでしょうか・・・。探し方がわかりません。

  • Outlook に参照設定できない

    アクセスからアウトルックに参照設定したいのですが とあるファイルで Microsoft Outlook 14.0 Object Library へ参照設定しようとすると 「この名前は既にあるモジュール、プロジェクト、オブジェクト ライブラリで使われています」 と言うエラーになります。 ファイル1.accdbでは参照設定できるのに、 ファイル2.accdbでは参照設定できるのに、 だと上記のエラーが発生します。 vbaコードに問題があるのかと思い、 全てのコードをコメントアウトしましたが同じエラーが発生します。 現在すでに参照設定しているのは、 VBA Access stdole DAO だけです。

  • Office2007でQRコード作成

    Windows 7、Office2007(Accessあり)のExcelで、セル上にQRコードを表示させたいと考えています。Microsoft Barcode Control9.0ではQRに対応していないため、AccessRumtime2016をインストールし、Microsoft Barcode Control16.0で対応しようとしましたが、ActiveX参照からセルに配置したときに「オブジェクトが作成できません」のエラーが出てしまいます。 何か解決策はありますでしようか?

  • ACCESSのVBAについて

    ACCESSのVBAを使って、データの集計・分析などをしてEXCELに出力、さらにそのEXCELを少しいじる、←このVBAをVBSで実行 といった事をしていたのですが、 会社の端末が一部Office2003から2010に変わったため、参照設定に不具合が出てきました。 内容は、元々2003で作成されたデータベースを2010で開くとVBAの参照設定が「Microsoft Access 11.0 Object Library」だったものは「Microsoft Access 14.0 Object Library」に変わるのですが、 「Microsoft Excel 11.0 Object Library」は変更されずに参照不可になってしまいます。 以前、別のところで同様の質問をした際に、 →「参照設定」をして、コードを作成したあと、コードに使われている定数を全部調べ上げて、変数宣言のコードを作成し、 参照設定のチェックを外して、宣言のコードを追加する、ということで、参照設定の対策をします。 といった回答を頂いたのですが、いまいち理解できていません。 以下のコードをEXCELの参照設定を外しても動くようにするにはどのようにしたら良いのでしょうか?よろしくお願いします。 Sub TEST() Dim xls As Excel.Application Dim wb As Excel.Workbook DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "TEST", "C:\TEST.xls", True Set xls = CreateObject("Excel.Application") Set wb = xls.Workbooks.Open("C:\TEST.xls") With xls .Sheets("Sheet1").Select .Range("A1").Value = "成功" .Visible = True End With End Sub

  • VC#での参照の追加が上手くいきません

    VC#でアドインを作ろうとしているのですが、「プロジェクト→参照の追加」でCOMコンポーネントの追加が上手くいきません。 例えば、 Microsoft Outlook 11.0 Object Library を追加すると ソリューション エクスプローラの参照設定に"Outlook"が追加はされるのですが、アイコンに!マークが付いていて、クリックすると 「利用可能でないか、またはビルトされてないため、このオブジェクトをオブジェクトブラウザで表示することができません。プロジェクトが利用可能でビルトされていることを確認してください。」 という警告が出ます。 参照の追加をするにあたって、他に何か事前にやっておくことが有るのでしょうか? ちなみに、こちらの環境は Visual Studio 2005 Standard SP1 Microsoft Office 2003 SP3 Internet Explorer 7.0 Windows XP SP2

専門家に質問してみよう