2010-12-20 25 views
3

しばらくの間、多くのVBAコードを含むExcelワークブックで作業していましたが、テストのためにこのファイルを一部の同僚に送信しました。自分のコンピュータでは動作しません。 私たちはすべて同じ会社で働いており、Office 2003とWindows XP SP2を持っています。"オブジェクトライブラリが無効であるか参照が含まれています..." ExcelでVBA with DatePicker

ブックは、図形をクリックすると開き、いくつかのコントロールが含まれています。フォームで

「 が見つからなかったことdefintionsをオブジェクトへ の参照をオブジェクトライブラリ無効であるか、または含まれている」

: 彼らは次のエラーを表示するフォームの図形の上をクリックし表示されますDatePickerがあり、問題があると思う。フォームからdatePickerを削除して再度ファイルを送信すると、このエラーメッセージが表示されません。

この2つのサイト "Microsoft"と "lessanvaezi"に記載されているmscomct2.exdファイルを削除しようとしましたが、エラーstilがポップします。私はチェックし、新しい.exdファイルが生成されました。

いくつかの追加情報:

  1. 私は自分のシステムをチェックし、彼らが正しい場所(C:\ winxpと\ System32に)にファイルmscomct2.ocxを持っています。
  2. 空のExcelファイルを開く場合は、VBAエディタにアクセスし、[ツール] - > [参照]をクリックします。「Microsoft Common Control-2 6.0(SP6)」(mscomct2.ocx)を登録するオプションは表示されません。代わりに "Microsoft Windows Common Controls Satellite-3 6.2"(cmct3de.dll)が表示されます。
  3. datePickerを使用して私の同僚にファイルを送信しますが、「Microsoft Common Control-2 6.0(SP6)」は参照しません。図形をクリックしてフォームを開く前に、次のコードを使ってdinamically MSCOMCT2.ocxライブラリを参照しようとしました。 「Microsoft Common Control-2 6.0(SP6)」を参照しましたが、エラーは表示されます。

サブRegisterCtl()

'MSComCt2.ocx 
strGUID = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}" 
ThisWorkbook.VBProject.References.AddFromGuid guid:=strGUID, Major:=1, Minor:=0 

End Subの

  1. 私はその後 ツールボックスにVBEエディタや右クリックでフォームに移動し、その後に行けば "Microsoft Date and TimePicker"を追加する追加のコントロール コントロール、私はそのオプションが記載されて参照してください 2回。生憎私はcchoseウィッヒ1のregarless 、行動 は同じです:日付ピッカーのシンボル ツールボックスに追加しましたが、私は、フォームにコントロールをドラッグ とき、 MsgBoxには、制御 が利用できなかったことを言ってポップされます。

誰かが間違っているアイデアはありますか?それを自分のコンピュータで動かすために私は何ができますか?

何か助けていただきありがとうございます。

編集:私は私の場合のための具体的な解決策を見つけることができる文句を言わないよう

コンピュータこの問題では、アップグレードされました。私はArchersのソリューションを選択しているので、ほとんどの人(Most Upvotes)を助けてくれました。

答えて

11

私も同じ問題があります。 http://support.microsoft.com/kb/957924/en-usすべての.exdファイルを削除すると、プログラムが機能します!

コマンドプロンプトに移動して、次のDOSコマンドを入力します。

コード:

のCDの\ DocumentsとSettings

DEL/S/A:H/A:-H *を.EXD

+0

dosコマンドを実行しましたが( "MSComCtl2.exd"は削除されました)、エラーmsg stilがポップします。 – CaBieberach

+0

ありがとうございます –

+0

私はこのソリューションを[KB2598041](http://support.microsoft.com/kb/2598041)(2012年4月10日)に使用しています。ありがとう。 –

2

#2は問題の根源だと思います。 mscomct2.ocxを新しいブックのツール参照に表示させることができれば、おそらく残りの問題が解決されます。 ocxを登録しようとしましたか? [スタート] - [cmd]を実行してDOSウィンドウを開きます。 system32フォルダーに移動します。タイプ

regsvr32 mscomct2.ocx 

私はTools - Referencesボックスにocxを入れて、うまくいけばそれを修正すると思います。ここではWindows 7の

http://www.dailydoseofexcel.com/archives/2010/05/28/calendar-control-dll-on-windows-7-64-bit/

ない状況、多分便利にOCXをinsallingためのリンクです。また、私はこの問題を抱えます。regsvr32

http://support.microsoft.com/kb/249873

+0

あなたの投稿のおかげでディック。私は登録しようとしましたが、エラーstilがポップします。 mscomct2.ocxを登録した後、私は彼のツール - >参照と "Microsoft Common Control-2 6.0(SP6)"を確認できませんでした。 – CaBieberach

+0

私も.exdをもう一度削除しました。興味深いことに、新しい.exdファイルは今日の変更日付で作成されましたが、作成日は数か月前です。それ以上の提案は非常に感謝しています。 – CaBieberach

3

にMSのページを参照してください。私はその理由を覚えていませんが、日付/時刻のピッカーがあるユーザーフォームで、これをuserform_initializeに入れてください。正しい参照がない場合は、テキストボックスを追加するだけです。私は最高の解決策ではなく、その回避策を知っています。私はシステム管理者のためにどのマシンでもregsvr32を実行することができませんでした。

Dim dtP As Object 
Dim hasDtPicker As Boolean 
On Error Resume Next 
Set dtP = frmSearch.Frame24.Controls.Add("MSComCtl2.DTPicker", "DTPicker1", True) 
If Err.Number <> 0 Or dtP Is Nothing Then 
    hasDtPicker = False 
    'change "frmsearch.Frame24" to the area where you want the date and time picker to be. 
    Set dtP = frmSearch.Frame24.Controls.Add("Forms.TextBox.1", "DTPicker1", True) 
    dtP.Text = [todays_date].Value 
Else 
    hasDtPicker = True 
End If 
' 
' formatting properties for both TextBox and DTPicker 
' 
With dtP 
    .Width = 67.5 
    .height = 18 
    .Left = lblNextActionDate.Left 
    .Top = lblNextActionDate.Top + lblNextActionDate.height + 5 
End With 
+0

こんにちは@パトリック。情報をありがとう。私のワークブックの複雑さのために、私はDatePickerを無料で利用することを選択しました。しかし、私はまだ何が起こっているのか、それをどう解決するのかを理解したい。 – CaBieberach

2

私は最近同様の問題を抱えていました。約2日後に新しいmscomct2.ocxファイルがダウンロードされました: http://support.microsoft.com/kb/297381 前のいずれかの登録解除されたフィールドで、「mscomct2」という奇妙なMRUキーを手動で削除しました(Access ActiveXメニューを使用して)。 mscomct2.ocxのすべてのコントロールは、その後1回だけ表示されます。

しかし、残念ながらエラーメッセージは削除されませんでした。ただし、新しいコンテナへの連続した2回目のインポート後に: original_file.mdb - > db1.mdb - > db2.mdb (db2.mdbファイル内に)エラー・メッセージが表示されなくなりました。しかし、それらはoriginal_file.mdbとdb1.mdbの間のtrnasferの間にまだ見えていました。

1

別のグループに送信したファイルで同じ問題が発生しています。私は、ユーザーフォームで日付ピッカーを持っていて、ファイルはこのグループのマシンを除いてExcel(2007および2010)で正常に動作します。エラーメッセージは元の転記と同じです。

それはMSCOMCT2.OCXファイルがユーザーのコンピュータから欠落していたが判明:

答えはそこに見えたサポート担当者によって記載されているように、以下のようです。このファイルは、Microsoft Windows Common Controls-2 6.0(MSCOMCT2.OCX)です。このコントロールは、日付ピッカーで作業するモデルの機能を提供するように見えます。

次のように自分のコンピュータがした修正するためのプロセス:

  1. コピーmscomct2.ocx cにファイル:\ WINDOWS \ system32に

  2. を自分のコンピュータ上で以下のコマンドを実行して、OCXファイルを登録します。コマンドプロンプトからregsvr32.exeと入力し、c:\ windows \ system32 \ mscomct2.ocxと入力してEnterキーを押します。


この命令は、グループのコンピュータに特異的であり得るが、原因としてmscomct2.ocxの識別が開始されます。私はインターネット上で利用可能であることを除いて、このファイルをどこに取得するのかに関する具体的な勧告はありません。

1

は(心のOfficeのバージョン)、ここから起動アドインを削除してください:

C:\Program Files\Microsoft Office\OFFICE12\XLSTART\ 
+0

OfficeはVBAを使用する唯一のプログラムではありません – rolls

+0

質問はExcelについてですか、いいえ? –

1

だけMSCOMCTL.OCXの登録を解除し、それを登録します。

**32-bit OS** C:\Windows\System32\MSCOMCTL.OCX 

**64-Bit OS** C:\Windows\SySWOW64\MSCOMCTL.OCX 
1

DatePicker ActiveXコントロールの(Name)フィールドが増分していないことを確認してください。私はComboBoxを使ってExcelシートを作成しています。このコンボボックスでは、名前を変更するたびに名前が変わり、コード内でこの同じエラーがスローされます。

私はComboBox1を参照していますが、変わってComboBox17です。

関連する問題