Excelを自動化するためにVB6を使用していますが、このコードは過去5年以上にわたってうまく機能しています。基本的にはアドインを繰り返し実行し、ある特定のものが検出された場合は、ユーザーにメッセージを発行します。デバッグは、それがライン2.インタラクティブデバッグに起こると言い、このルーチンでエラーキャッチャーを入れた後Excelオートメーションエラー#1004オブジェクト '〜'のメソッド '〜'が失敗しました
Public xlapp As Excel.Application
Set xlapp = GetObject(, "Excel.Application")
Dim CurrAddin As Office.COMAddIn
For Each CurrAddin In xlApp.COMAddIns
2 LogMe "==>COM Add-In: " & CurrAddin.Description
'detect the PowerPivot add-in
3 If CurrAddin.Description = "PowerPivot for Excel" And CurrAddin.progID = "Microsoft.AnalysisServices.Modeler.FieldList" Then
4 LogMe "==>COM Add-In 'PowerPivot for Excel is set to load=" & CurrAddin.Connect
5 If CurrAddin.Connect = True Then
6 MsgBox "The PowerPivot Add-in for Excel is installed and set to load.", vbExclamation
End If
End If
9 Next CurrAddin
Error in MyAddInEnumerator
1004
Method '~' of object '~' failed
Line: 2
が、これは上記の行に本当にあることを示しています。 CurrAddinは既に初期化されているようですので、xlApp.COMAddInsで問題が発生しています。
私は同じバージョンの32ビットExcel 2010を搭載した多くのマシンでこのアプリケーションを実行しています。これらのマシンはWin7x86とWin7x64を実行しますが、1つを除くすべてがエラーなしで正常に動作します。私は、なぜこの1つのマシンがオブジェクト "COMAddIns"を使用して爆撃するのか理解できません。
参照はVB6アプリケーションにあり、EXEにコンパイルされます。誰もがサーバーからアプリを実行し、同じことに触れている。他に何かを意味しない限り。 – sinDizzy
私は参照してください。これをチェックしてください。おそらくそれは役に立ちます:https://support.microsoft.com/en-us/kb/178510 – ib11
ええ、その記事と約10の他のものを見ました。これは、同じバージョンのExcelを持つ他の15台のマシンで動作する理由を説明していません。私はxlapp変数をグローバル変数として1回だけ設定し、すべての変数は完全修飾されているようです。しかし、私のコードをもう一度見てみましょう。 – sinDizzy