2016-03-22 2 views
1

zu erzeugen, wenn ich betreibe meine Makro eine E-Mail es stoppt beim ersten Schritt erstellen ich die Bibliotheken und MS Office und MS Outlook überprüft haben, werden überprüft,kann nicht Excel erhalten eine E-Mail

Mit Code;

Dim OutApp As Outlook.Application 

I empfangen die Fehler benutzerdefinierten Typ nicht

definiert

und mit dem Code;

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

Ich erhalte

aktiv x das Objekt nicht erstellen konnte

ich versucht habe, als admin und mit Ausblick laufen geschlossen und geöffnet wird, kann immer noch nicht bekommen es die messeage zu erstellen .

+0

Haben Sie eine Referenz auf "Microsoft Outlook XX Object Library"? – gizlmo

+0

Der Verweis auf "Microsoft Outlook 15.0 Object Library" ist aktiviert –

Antwort

0
Private Declare Function ShellExecute Lib "shell32.dll" _ 
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _ 
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _ 
ByVal nShowCmd As Long) As Long 


Dim Email As String, Subj As String 
Dim answer As Integer 
Dim Msg As String, body As String, URL As String 
Dim OutApp As Object, OutMail As Object 

Set OutApp = CreateObject("Outlook.Application") 
Set OutMail = OutApp.CreateItem(0) 

On Error Resume Next 
    With OutMail 
     .To = Email 
     .CC = vbNullString 
     .BCC = vbNullString 
     .Subject = Subj 
     .body = body 
     .Display 
    End With 
On Error GoTo 0 
0

Hier sind zwei Arbeitslösungen für Sie:

Public Sub UsingEarlyBinding() 

'A reference to the Microsoft Outlook XX Object Library is 
'necessary to run this code (as mentioned by @gizlmeier) 

Dim OutlookApp As Outlook.Application 
Dim objEmail As Object 

Set OutlookApp = New Outlook.Application 
Set objEmail = OutlookApp.CreateItem(olMailItem) 
objEmail.Display 

End Sub 

.

Public Sub UsingLateBinding() 

'No references are necessary to run this code 

Dim OutlookApp As Object 
Dim objEmail As Object 

Set OutlookApp = CreateObject("Outlook.Application") 
Set objEmail = OutlookApp.CreateItem(0) 

objEmail.Display 

End Sub 

Der Vorteil der ersten Lösung ist, dass Sie ein Drop-Down-Menü im VBE zu sehen bekommen (während das Schreiben von Code) Sie Auto-Vervollständigung bietet. Das liegt an der Tatsache, dass das VBE (mit der Referenz) die Outlook-Bibliothek erkennt und Autovervollständigungen von dieser Bibliothek anbieten kann. Beispiel:

enter image description here

+0

Erhalten immer noch "Fehler 429 ActiveX konnte Objekt nicht erstellen" –

+0

Da keine Erstellung von ActiveX-Element in den obigen Code beteiligt ist, nehme ich an, dass Sie einige Add-Ins haben laufen, etwas zusätzliches Zeug zu tun oder bestimmte Dinge zu verhindern. Versuchen Sie, den obigen Code auszuführen, nachdem Sie alle Add-Ins (in Outlook und Excel) deaktiviert haben und alle ** MS Office-Anwendungen geschlossen/wieder geöffnet haben. – Ralph