Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Laufzeitfehler 429 bei CreateObject("Outlook.App..

Laufzeitfehler 429 bei CreateObject("Outlook.App..
12.11.2004 11:00:47
Vera
Hallo Forum,
auf zwei Computern erhalte ich bei der VB Zeile:
Set OutApp = CreateObject("Outlook.Application")
die Fehlermeldung:
Laufzeitfehler 429: Objekterstellung durch ActiveX-Komponente nicht möglich
Auf einem dritten Computer funktioniert es.
Ich sehe keine Installationsunterschiede. Alle PCs haben W2k SP3 mit Office 2k und allen Updates.
In den Extras sind folgende Verweise verfügbar (angehackt):
Visual Basic For Applications
Microsoft Excel 9.0 Object Library
Microsoft Office 9.0 Object Library
Microsoft Forms 2.0 Object Library
Microsoft Outlook 9.0 Object Library
OLE Automation
Wo muß ich noch suchen?
Liebe Grüße
Vera
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 429 bei CreateObject("Outlook.App..
Karl-Otto
Hallo Vera
Das hab' ich bei
http://195.186.84.74/xlimits/limits.htm
gefunden:
---------------------------------------------------------------------------------------
Fehler 429 bei "GetObject"-Funktion nach Starten einer Anwendung mit "Shell"
Wenn eine Anwendung mit der Shell-Funktion gestartet und unmittelbar danach versucht wird, anhand der GetObject-Funktion die neu gestartete Instanz zu übernehmen, kann der Laufzeitfehler 429 "Objekterstellung durch ActiveX-Komponente nicht möglich" auftreten.
Hinweis
- Dieses Verhalten tritt bei allen Office-Versionen (Office 97/2000/XP), bei Visual Basic 5.0/6.0 und unter allen Windows-Versionen auf.
- Die hier vorgestellte Ursache des Laufzeitfehlers 429 "Objekterstellung durch ActiveX-Komponente nicht möglich" ist im Thema "Laufzeitfehler 429" der VBA-Referenz (Onlinehilfe) nicht beschrieben.
Problem
Text folgt...
'Deklaration der benötigten API-Routinen
Declare

Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName as String, ByVal lpWindowName As Long) As Long
Declare 

Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd as Long, ByVal wMsg as Long, ByVal wParam as Long, ByVal lParam As Long) As Long

Sub DetectExcel()
Const WM_USER = 1024
Dim hWnd As Long
'Wenn Excel ausgeführt wird, wird durch Ausführen dieses
'API-Aufrufs die zugehörige Zugriffsnummer zurückgegeben.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then    '0 bedeutet, dass Excel nicht ausgeführt wird.
Exit Sub
Else
'Excel wird ausgeführt. Verwenden der API-Funktion SendMessage,
'um Excel in der Tabelle ausgeführter Objekte einzutragen.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub

--------------------------------------------------------------------------------------
Gruß
KO
Anzeige
AW: Laufzeitfehler 429 bei CreateObject("Outlook.App..
12.11.2004 12:10:44
Vera
Hallo K0
Dein Artikel beschreibt das Problem ja genau.
Aber was soll ich tun?
Ich habe den geposteten Sourcecode ins Modul kopiert, aber 'nichts' passiert.
Was muss ich machen, um den Fehler zu beheben?
Bitte, bitte helft mir.
Liebe Grüße
Vera
AW: Laufzeitfehler 429 bei CreateObject("Outlook.App..
Karl-Otto
Das Problem liegt vielleicht darin, daß der Pfad zur Outlook-Objektbibliothek
nicht bekannt ist.
Versuch das hier:

Sub VersionPruefen()
Dim strVerweis As String
On Error Resume Next
With ActiveWorkbook.VBProject.References
.Remove ThisWorkbook.VBProject.References _
("Microsoft Outlook 8.0 Object Library")
strVerweis = _
"c:\programme\microsoft office\office\msoutl8.dll"
.AddFromFile strVerweis
End With
ElseIf Left(Application.Version, 1) = 9 Then
With ActiveWorkbook.VBProject.References
.Remove ThisWorkbook.VBProject.References _
("Microsoft Outlook 9.0 Object Library")
strVerweis = _
"c:\programme\microsoft office\office\msoutl9.dll"
.AddFromFile strVerweis
End With
End If
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 429 bei CreateObject("Outlook.Application") beheben


Schritt-für-Schritt-Anleitung

  1. VBA öffnen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub TestOutlook()
        Dim OutApp As Object
        On Error Resume Next
        Set OutApp = CreateObject("Outlook.Application")
        If Err.Number <> 0 Then
            MsgBox "Laufzeitfehler 429: Objekterstellung durch ActiveX-Komponente nicht möglich."
            Err.Clear
        Else
            MsgBox "Outlook erfolgreich gestartet!"
        End If
    End Sub
  4. Code ausführen: Führe das Makro mit F5 aus.

  5. Fehlermeldung prüfen: Sollte die Fehlermeldung laufzeitfehler 429 erscheinen, gehe zu den nächsten Schritten zur Fehlerbehebung.


Häufige Fehler und Lösungen

  • Fehler 429: Wenn die Meldung Laufzeitfehler 429: Objekterstellung durch ActiveX-Komponente nicht möglich erscheint, überprüfe, ob Outlook installiert ist und korrekt registriert wurde.
  • Verweise prüfen: Stelle sicher, dass die Microsoft Outlook 9.0 Object Library in den Verweisen aktiviert ist. Du kannst dies in den VBA-Optionen unter Extras > Verweise überprüfen.
  • Pfad zur DLL anpassen: Es kann hilfreich sein, den Pfad zur Outlook-Objektbibliothek wie folgt zu überprüfen und anzupassen:

    Sub VersionPruefen()
        Dim strVerweis As String
        On Error Resume Next
        With ActiveWorkbook.VBProject.References
            .Remove ThisWorkbook.VBProject.References("Microsoft Outlook 9.0 Object Library")
            strVerweis = "c:\programme\microsoft office\office\msoutl9.dll"
            .AddFromFile strVerweis
        End With
    End Sub

Alternative Methoden

  • GetObject-Methode: Anstelle von CreateObject kannst du auch GetObject verwenden, um eine bestehende Instanz von Outlook zu verwenden. Beispiel:

    On Error Resume Next
    Set OutApp = GetObject(, "Outlook.Application")
    If Err.Number <> 0 Then
        Set OutApp = CreateObject("Outlook.Application")
    End If
  • Outlook-Anwendung direkt öffnen: Wenn du Outlook direkt öffnen möchtest, kannst du die Shell-Funktion verwenden:

    Shell "C:\Programme\Microsoft Office\Office\OUTLOOK.EXE", vbNormalFocus

Praktische Beispiele

  • E-Mail senden: Um eine E-Mail mit Outlook zu senden, verwende den folgenden Code:

    Sub SendMail()
        Dim OutApp As Object
        Dim OutMail As Object
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
    
        With OutMail
            .To = "beispiel@domain.com"
            .Subject = "Test E-Mail"
            .Body = "Dies ist eine Test-E-Mail."
            .Send
        End With
    End Sub
  • Kalendereintrag erstellen: Um einen Kalendereintrag zu erstellen, kannst du diesen Code verwenden:

    Sub CreateAppointment()
        Dim OutApp As Object
        Dim OutAppt As Object
        Set OutApp = CreateObject("Outlook.Application")
        Set OutAppt = OutApp.CreateItem(1) ' 1 steht für einen Termin
    
        With OutAppt
            .Start = Now + 1 ' Nächster Tag
            .End = Now + 1 + TimeValue("01:00:00") ' 1 Stunde später
            .Subject = "Besprechung"
            .Location = "Büro"
            .Body = "Besprechung zur Projektbesprechung."
            .Save
        End With
    End Sub

Tipps für Profis

  • Referenzen aktualisieren: Halte deine Office-Anwendungen und Windows auf dem neuesten Stand, um Kompatibilitätsprobleme zu vermeiden.
  • Fehlerbehandlung: Implementiere robuste Fehlerbehandlungsroutinen in deinen VBA-Skripten, um unerwartete Abstürze zu vermeiden.
  • VBA-Umgebung: Nutze die integrierte Entwicklungsumgebung (IDE) von VBA, um deine Skripte effizient zu testen und zu debuggen.

FAQ: Häufige Fragen

1. Warum bekomme ich immer noch den Laufzeitfehler 429? Es kann sein, dass Outlook nicht korrekt installiert oder registriert ist. Überprüfe die Installation und die Verweise in deinem VBA-Projekt.

2. Wie kann ich den Code für verschiedene Outlook-Versionen anpassen? Du kannst den Verweis auf die Outlook-Bibliothek in deinem VBA-Projekt entsprechend der installierten Version ändern (z. B. Microsoft Outlook 8.0 Object Library oder Microsoft Outlook 9.0 Object Library).

3. Was kann ich tun, wenn Outlook nicht auf meinem Computer installiert ist? In diesem Fall wird die CreateObject("Outlook.Application")-Methode nicht funktionieren. Du musst Outlook installieren, um diese Funktion nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige