Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No22407.ActiveXコンポーネントエラー

タイトルActiveXコンポーネントエラー
記事No: 22407
投稿日: 2004/07/21(Wed) 11:40
投稿者: cloud9
OS:Win2000
Access Version:97

いつもお世話になります。

ACCESSのVBAからGetObjectでExcelを起動したいのですが、以下のようなエラーになります。

”ActiveXコンポーネントはオブジェクトを作成できません。(Error429)”

エラーになるコードは以下の3行目です

Dim MyXL As Object
Set MyXL = Nothing
Set MyXL = GetObject("c:\PrintTemp\PG001\M_PG001.xls")

ヘルプファイルを参照したのですが何のことやら...

officeを再インストールしたり、Accessを2000やXPにアップしても結果は同じでした。

ちなみにこの現象は4台中1台にのみに起こる現象で、ほかのPCでは正常に動いています。
どうすれば直るのでしょうか?

ご指導の程宜しくお願いします!

タイトルRe: 参照設定は同一ですか?
記事No: 22408
投稿日: 2004/07/21(Wed) 11:44
投稿者: たん
他のPCと参照設定を比べてみて下さい。
(参照設定の確認方法は過去ログで確認して下さい)

あと、Accessのランタイムが混在していませんか?

タイトルRe^2: 参照設定は同一ですか?
記事No: 22473
投稿日: 2004/07/22(Thu) 17:06
投稿者: cloud9
> 他のPCと参照設定を比べてみて下さい。
> (参照設定の確認方法は過去ログで確認して下さい)
>
> あと、Accessのランタイムが混在していませんか?

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

参照設定は他のPCと同じで、ランタイムの混在もありません。

しかし、GetObjectで指定したExcelファイルを開いた状態で
VBAを起動するとエラーなしで正常終了しました。

もう一息なのですが...

流れ上Excelを開いてからVBAを起動するのは無理なので
解決する方法をご指導下さい。

よろしくお願いします!

タイトルRe^3: 参照設定は同一ですか?
記事No: 22495
投稿日: 2004/07/22(Thu) 19:45
投稿者: たん
> しかし、GetObjectで指定したExcelファイルを開いた状態で
> VBAを起動するとエラーなしで正常終了しました。
>
> もう一息なのですが...

ちょっと待って。
最初の発言では、

> ちなみにこの現象は4台中1台にのみに起こる現象で、ほかのPCでは正常に動いています。

という話だったのですが、4台中1台だけ、今回の現象が発生し、その1台では、Excelを
開いた状態だと上手くいくということなのでしょうか?
(なんか最初の話と全然違う気がするのですが)

もし、そうなのであれば、4台ともにそれぞれ同じmdbが置いてあって、今回エラーのでる
1台だけが、「mdbの中で何らかのデータベース破損がおこっている」、もしくは、
1台だけ「テストのためにクエリやvbaの記述を変えた」ということが無い限り、現象が
発生する根拠が正直浮かびません。

運用上で問題がないのなら、うまく動いている1台のmdbをうまく動いていない1台に
直接コピーして、同さを確認されてみてはどうでしょうか?
(もしくは今回現象の出ているmdbを修復、もしくは新mdbにインポートする等)

もしそうでなく、
> 流れ上Excelを開いてからVBAを起動するのは無理なので
> 解決する方法をご指導下さい。

ということをお望みなのであれば、私ではお力になれません。

タイトルRe^4: 参照設定は同一ですか?
記事No: 22567
投稿日: 2004/07/25(Sun) 10:46
投稿者: shoji
このエラーでは私も悩まされました。

以下のマイクロソフトのサイトに詳しい解決法が載っています。Acc2003とありますが、Acc2000も
Acc2002も同じです。

http://support.microsoft.com/default.aspx?scid=kb;ja;319844

これでも直らない場合は、

On Error Resume Next

をGetObjectのステートメントの前に置いて

Set Obj = GetObject(...)
If Obj = Nothing Then
Set Obj = New Excel.Application
Obj.Documents.Open "...."
End If

で試してください。


このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

PLESKやcPanelをインストールしたレンタルサーバーをディスカウト価格で提供中だす。ヨーロッパデータセンターご希望の方は必見です。ドイツを中心にフランスに拡張中です。
PLESKやcPanelレンタルサーバーをディスカウト価格で...。
ヨーロッパデータセンターご希望の方は必見です。
ドイツを中心にフランスに拡張中です。

 

ページの先頭へ 前ページへ戻る