エクセル2003から2007のOCX問題

このQ&Aのポイント
  • エクセル2003から2007におけるOCX問題について質問です。2003で作ったソフトが2007の環境でエラーが出ています。具体的には、参照設定のMS-WIN-common-controls-2 6.0とMSCOMCT2.OCXが引っかかっているようです。
  • マイクロでは2007でOCXを廃止しました。しかし、2007のファイルで参照設定を外し、2003と2007の両方で動作するようにすることも可能です。ただ、2007のみの環境ではエラーが発生することがあります。
  • 今回の問題を解決するためには、2007でOCXやDLLを利用する方法や、2003から2007に変換する方法が知りたいです。また、ネットで配布する場合はレジストリ登録ができないため、それに対応した方法も教えていただきたいです。なお、2010の環境では問題がないようです。
回答を見る
  • ベストアンサー

エクセル2003から2007 のOCX 問題

2003で VBAでソフトを作りましたが、2007のみの環境で エラーが出ます。 参照設定 MS-WIN-common-controls-2 6.0  MSCOMCT2.OCX が 引っかかります。 マイクロでは 2007で このOCXを 無くしました。結局 20年前の DLL地獄の再来なのですが、 読み込んだファイル、2007で参照設定 MS-WIN-common-controls-2 6.0 を外して、 2003と2007 両方存在する環境ならば 07ファイルに 変換しても OK 07のみだと、エラー それも、len() trim() など どうでもいいようは 構文です。 2007で これに相当する OCX もしくは DLL ご存じ方いらっしゃいませんでしょうか もしくは 03から 07に変換する作業で 一番簡単な方法は如何でしょうか 03でファイルを吐き出して、07で 読み込んでも 解決するのでしょうか?どうも ダメなような気がするのですが・・・・ よろしくどうぞ ネットで配布するような使い方ですので レジストリー登録は 出来ないのです。 ちなみに 2010 のみの環境なら それはまたOKなのです。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

MSCOMCT2.OCX が不要なら参照設定から外してしまえば事足りるのでは? 日付選択のために、MSCOMCT2.OCX が必要なら こちらの方が作成されたのが大いに参考になるかと思います。 ソースコードも見られます。 http://excel-2010.seesaa.net/article/154360048.html あなたの『配布』がどのようなものか存じませんが 作成者に打診してからにしてくださいね。 礼儀でもありますし、場合によっては訴えられるかもです。 #1さんへの補足を拝見した後で MSCOMCT2.OCX は、OS に付属したものではありません。 Office にも付いてきません。 何かのアプリをインストールした際にセットで入る場合はあります。 なので、MSCOMCT2.OCX の存在を期待してはいけません。

007itochan
質問者

お礼

お手数おかけします MSCOMCT2.OCX は 2003に有ったものです。 ミスは 新規開発の折、真っ白から始めればよかったのですが、使い回しから始まったので、MSCOMCT2.OCX にチェックが 入っていた、というわけです。 で、不要ではずして 実行すると 2007のみのマシンでのみ、全く関係のないと思われる、LEN TRIMなどの構文で エラーが出る・・・ ですから、どうでもなら 2007で 作り直せばいいようなことかとは 思いますが どこまで、コピーが可能か??予測がつかない・・・ といった 悩みです。 マイクロの回答もあてにならないものでした。 Excel 2003 で作成したファイルを Excel 2007 の形式に変換したファイルがうまく開けないということなのですね。 念のための確認なのですが、使用されている OS は Windows7 64 ビットで Excel 2003 と Excel 2007 の共存環境で使用されているということでよいでしょうか ? 書かれている 「c:\windows\syswow64\MSCOMT2.OCX」 が原因であるかと思うのですが、 Windows7 64 ビットの OS であるために正しく動作できていないために発生している問題なのかもしれません。 また、 Excel 2003 と Excel 2007 の共存環境で作成されたファイルであることや、 Excel 2003 と Excel 2007 との機能の互換の問題である可能性も考えられるのかもしれません。 「c:\windows\syswow64\MSCOMT2.OCX」 について確認してみたところ以下の情報があったので確認をしてみてはどうでしょう。 Windows 7 と MSCOMCTL。OCX の問題 ※ 機械翻訳のため、日本語の表現としてはおかしなところがあります。 ※ 参考にならなかった場合はすみません。 正確な原因が解らないので、 Excel 2007 形式に変換したファイルを開かれる時に発生するエラーメッセージを正確に書いて投稿してみたり、 Excel 2003 で作成された内容の手順などをより詳しく書いてみるよいかと思います。 そうすることでほかの方からのアドバイスもより集まりやすくなるかもしれません。

007itochan
質問者

補足

追伸 エクセルと WIN をいずれも 最新の物に アップして、エクセルファイルを インポートでなく、手作業の コピペで 新しくして、通りました。 お手数でした。

その他の回答 (1)

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

> ネットで配布するような使い方ですので レジストリー登録は 出来ないのです。 これの意味がちょっとわからないですが、 > MSCOMCT2.OCX 不要なら、(1)2003のチェックを外して配布する。 必要なら、(2)Visual Basic 6.0 SP6 ランタイムをユーザーにインストールしてもらう。 という方法は、ダメですか?

007itochan
質問者

お礼

> ネットで配布するような使い方ですので レジストリー登録は 出来ないのです。 社内使用なら、何とでもなるのです。 素人さん相手の ネットダウンロードで 使うのですから・・・ 参照設定 不可のチェックを 03で外すと  07で 全くつまらない 構文 LEN Trim などで エラーが出るのです。 ですから、07 で 参照設定が 有るとは 思えない。 初めから 07で 作り直せば 良いのが理屈でしょうが・・・ それを回避する方法?って わけ  要は、マイクロが MSCOMCT2.OCXを外した 後始末を考えてないってことなのでしょうが・・・  

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

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

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

  • OCXの作成

    他の環境(PC)で開発したOCXを、他の環境(PC)で作成使用とすると、 エラーメッセージ表示:「コンパイルエラープロジェクトまたはライブラリが 見つかりません」と表示されます。その後ファイル内のleft関数にフォーカス されます。OCXの作成とは、VBPファイルを開き、「ファイル」→ 「XXXX.ocx(exe)を作成」を指します。[開発環境]win98,VB6.0(SP3) なにかライブラリなどを追加する必要があるのでしょうか?   

  • OCXのレジストリ登録

    BCB5にて、OCXを作成しました。 開発環境では、もちろんレジストリ登録して(ツールがやってくれるんです)動作しています。 でも、他環境にそのOCXと関連DLL(と思われる)をインストールして、 REGSVR32 TARGET.OCX としても、エラーが出て登録できません。 エラーダイアログには、「Load Library(”Target.ocx”)failed. GetLastError returns 0x00000485」 と表示されます。これは、どんなエラーなのでしょうか? 関連DLLをインストールしたといいましたが、実はあんまり自信がありません。必要なDLLとは、どのようにしたら確実に判るものなのでしょうか? よろしくお願いします。

  • VB2005でOCXを動的に呼び出すには?

    お世話になります。 当方の環境はWinXP SP2,VB2005Proです。 現在作成中のアプリで、とあるCOMコンポーネントを使っているのですが、 どうやら そのOCXが自由配布は出来ないようで、依頼元から 「OCXがインストールされている場合のみ、それを使用する機能を  生かしてほしい」 と言われました。 依頼元曰く「たぶんコンポーネントを参照設定せずにコーディング しないといけないと思う」との事なのですが、それは可能なのでしょうか? また、可能であれば、方法(または方針)を教えていただけると有難いです。 (もしかしてOCXと処理を完全に分離してDLL化しないとダメ?)

  • Tabctl32.ocxについて

    はじめまして。 早速で恐縮ですが、WIN95、VB5(SP3)の環境で開発しております。 デザイン時、Form上にSStabコントロールを置こうとすると、 『141:コントロール'Sstab1'はロードできません。 ライセンスが見つかりません。』というエラーが出てしまい、コントロールを 配置することが出来ません。 正常にForm上にSStabコントロールを作れるPCより、Tabctl32.OCXをコピーし、 C:\Windows\System上に上書きしても、同じ現象が出てしまうので、 『Tabctl32.OCX』のバージョンの問題ではないような気がします。 どなたか、解決方法をご存知の方がいらっしゃいましたら、 よろしくお願いします。

  • 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で、レジストリの内容を削除して、登録しなおしたり、思いつくことはいろいろやってみたのですが、状況はかわりません。 お力添えを、お願いします。

  • OCXをサポートしている開発環境?

    こんばんは。 こんなことみなさんに尋ねたら笑われてしまうかもしれませんが、 OCXファイルっていうのは具体的にはどういったものなんでしょうか? DLLファイルとどう違うのですか? プログラム言語で「OCXをサポートしている開発環境」に VBがあることは何となく分かるのですが、 他の言語はどうなんでしょうか? たいていの言語はサポートしているんですか? どうかよろしくお願いします。m(_ _)m

  • VB4のWin2000、WinXP対応

    VB4で作成したプログラムがWin2000やWinXPで実行できないようで 私もそのような環境を持ち合わせておらず困っています。 DLLファイルかOCXファイルの読み込みの際にエラーが起こるようなのですが 下記のファイルが各OSに対応しているかどうかおわかりになる方おられますか? もしくはファイルをいれる場所が悪いのでしょうか? また、対応させる手段はありますか? 1.VB4JP32.dll 96/03/09 2.VB40032.dll 96/01/12 3.MSCOMM32.ocx 98/06/24 4.COMCTL32.ocx 98/06/24 5.RICHTX32.ocx 96/03/09 6.TABCTL32.ocx 96/09/04 どうかよろしくお願いします。

  • OCXのライセンス

    Visual Basic 6.0 で、他人の作成したユーザOCXを使用しようとしているのですが、「実行時エラー429:このコンポーネントのライセンスが見つかりません。デザイン環境でこの機能を使うために必要なライセンスがありません。」と、エラーが表示されます。 現在、プロジェクトファイルのあるディレクトリに、OCXとLICファイルをおいているのですが…。 OCXの登録はされているはずなのですが、念のための登録確認方法と、ライセンス登録のための手順を教えていただけないでしょうか?