2017-07-13 144 views
1

私は従来のVB6アプリケーションを持っており、何日も何もしないという問題を抱えています。ActiveXはオブジェクトを作成できません - OutA = CreateObject( "Outlook.Application")

このアプリでは、アプリケーション自体からメールを送信できます。 7 Windowsでは、これは完全に正常に動作します(電子メールを送信するときに、ユーザーがOutlookのオープンがあっても)、問題はWindows 10である以下のコードを見てください... Windows 7のOffice 2007ので

Dim outA As Outlook.Application 

Set outA = New Outlook.Application 

If outA Is Nothing = True Then 
    'Outlook is not open... so need to create a new outlook 
    Set outA = CreateObject("Outlook.Application") 
End If 

それはPERFECT作品。ユーザーはOutlookを開いておくことができ、問題なく動作します。

Windows 10 Office 2016では、この同じコードは機能しません。それは私にエラーを与える

Set outA = New Outlook.Application. 

あなたがOutlookが開いていない場合は、コードは問題なしで動作します。私はOutlookがすでに開いている場合にのみ、このエラーが発生します。 ActiveXは私が自分のコンピュータ上のローカルprivelagesを持っていることを追加する必要がありますオブジェクトエラー429

を作成することはできません

エラーがあります...。 VB6 .exeをADMINとして明示的に開き、OutlookをADMINとしても開くと、コードによって問題は発生しません。 UACプロンプトが無効になっています。私はADMINの権利をユーザーに与えることはできません - 残念ながら。

何が問題になりますか?私はDLLや何かを逃している - これは私を夢中にされている。 Windows 7で使用されているアプリケーションがもう少しありますが、この問題は発生していません。これをWindows 10に移動した場合のみです。

+0

GetObject( "Outlook.Application") - 同じ問題 – BobSki

答えて

1

開発のための初期バインディングを保持し、一度完了すると、後でバインドするためにスクラップします。 VBEのMicrosoft Outlook xx Object Libraryへの参照を削除することを忘れないでください。

アーリーバインディング:

Dim outA As Outlook.Application 
Set outA = New Outlook.Application 

レイトバインディング:

Dim outA As Object 
Set outA = CreateObject("Outlook.Application") 

理由は、事前バインディングを参照のOutlookなどの特定のバージョンMicrosoft Outlook 14.0 Object LibraryはOffice 2010に固有のものですので、使用できない場合はエラーが発生します。参照自体には「欠落」と記されています。

レイトバインディングのCreateObject("Outlook.Application")はそれを処理します。

+0

しかし、参照はMicrosoft Outlook 16.0 ObjectLibraryとして存在します。いずれにしても、早期バインディングか遅いバインディングかに関係なく、エラーが発生します。問題は私がOutlookを開いていることです。開いているときはエラーが出ます。開いていないときは何の問題もありません。私がOutlookと.exeの両方を明示的に実行していない限り(地元のprivelagesの上に)ADMINを実行します。 ACTIVEXエラーが表示されない場合は、「Component Request Pending」というポップアップが表示されます。他のアプリケーションがビジー状態であるため、アクションを完了できません。 – BobSki

+0

@Kostas K. - 絶対にありません。サポートされている最低限のバージョンのOutlookを使用してコードを開発します。新しいバージョンは常に下位互換性があります。 –

+0

@Dmitry Streblechenkoありがとう、私はそれを認識しています。異なるバージョン間で切り替えを試みましたか?アプリを新しいバージョンで開くと、古いバージョンで開くことができなくなります。何人かの人が2007年と2010年にオフィスに通っているのはいつも私にとって起こります。 –

関連する問題