Autor Thema: Cannot create automation object - Office 365  (Gelesen 8172 mal)

Offline Sabine

  • Aktives Mitglied
  • ***
  • Beiträge: 112
  • Geschlecht: Weiblich
Cannot create automation object - Office 365
« am: 11.05.21 - 09:16:22 »
Schönen guten Morgen,
ich habe eine Rechnungsanwednung in Notes vor ein paar Jahren programmiert.
Aus dieser Anwendung werden automatisch Rechnungen in Word erstellt und gedruckt.
Gestern habe ich mein Office 2010 durch ein Office 365 ersetzt.
Seitdem bekomme ich bei der Rechnungserstellung aus Notes heraus in der Zeile

'Word Instanz öffnen
Set word = CreateObject("Word.Application") 'Create Word object

die Fehlermeldung "Cannot create automation object".

Ich vermutete, dass aus dem Office 2010 noch Reste im Regedit standen.
Diese habe ich nun auch bereinigt (https://it-blogger.net/office-2010-vollstaendig-entfernen-und-erneut-installieren/). Dennoch kommt immer noch der zuvor genannte Fehler.

Jetzt weiß ich wirklich nicht mehr weiter.... vielleicht kennt jemand dieses Problem und kann mir einen Tipp geben.

Vielen herzlichen Dank.

Gruß Sabine

P.S.: Dieses Forum habe ich bereits durchsucht, habe aber leider keine passende Lösung gefunden.

« Letzte Änderung: 11.05.21 - 17:31:19 von Sabine »

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
Re: Cannot create automation object - Office 365
« Antwort #1 am: 11.05.21 - 10:35:51 »
Hallo Sabine,

bevor ich in Registry und Script abtauche eine kurze Frage: Hast du die 32-Bit oder die 64-Bit Version von O365 installiert?

Die Info findest du z.B. in Word unter: Datei > Konto > Button "Info zu Word" anklicken > oberste Zeile

Dort sollte dann sowas wie "Microsoft® Word für Microsoft 365 MSO (16.0.13929.20206) 32-Bit" stehen.

Hintergrund: wenn es die 64-Bit Version sein sollte brauchst du nicht weiter probieren, die ist nicht kompatibel mit 32-Bit Anwendungen.
Da hilft nur deinstallieren und durch die 32-Bit Version ersetzen - ansonsten muss man auf Interaktionen via OLE & Co. verzichten.

Gruß
Carsten

Offline Sabine

  • Aktives Mitglied
  • ***
  • Beiträge: 112
  • Geschlecht: Weiblich
Re: Cannot create automation object - Office 365
« Antwort #2 am: 11.05.21 - 11:09:17 »
Hallo Carsten,
erst einmal vielen lieben Dank für Deine schnelle Antwort und die ausführliche Beschreibung wo ich die installierte Version finde.

Ich habe diese Office 365 Version installiert:
Microsoft® Word für Microsoft 365 MSO (16.0.13929.20206) 32-Bit

Viele Grüße
Sabine

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
Re: Cannot create automation object - Office 365
« Antwort #3 am: 11.05.21 - 11:22:29 »
Super, eine Fehlerquelle weniger. Dann schauen wir mal ob's vielleicht am Code oder doch woanders (Objekt-Registrierung in Windows) liegt.

CreateObject("Word.Application") <= Sollte Word unsichtbar im Hintergrund starten, sieht man im Taskmanager als "WINWORD.EXE" im Reiter Details.

Ich habe mal einen Button mit Beispielcode erstellt der Word startet und ggf. sichtbar macht, hat bei mir in allen getesteten Varianten funktioniert.

Meldungen in der Statusbar ggf. durchsehen, einige Fehler sind normal damit man merkt ob man das Handle im Zugriff hat und werden dann entsprechend behandelt.

Code
Sub Click(Source As Button)
	Dim wrd As Variant
	Dim tmpErr As Integer
	On Error Goto ERRHNDL
	Print "Word bereits gestartet?"
	Set wrd = GetObject(, "Word.Application")
	If tmpErr <> 0 Then
		Print "Word läuft nicht, versuche die Anwendung zu laden."
		tmpErr = 0
		Set wrd = CreateObject("Word.Application")
		If tmpErr <> 0 Then 
			tmpErr = 0
			Print "Word läuft bereits, Objekt-Handle holen."
			Set wrd = GetObject(, "Word.Application")
		Else
			Print "Word gestartet, Objekt-Handle vorhanden."
		End If
	Else
		Print "Word läuft bereits, Objekt-Handle vorhanden."
	End If
	If tmpErr <> 0 Then 
		Print "Houston - Wir haben immer noch ein Problem: " & Cstr(tmpErr)
	Else 
		If Not wrd.visible Then
			Print "Prozess 'Word.Application' wird sichtbar gemacht."
			wrd.visible = True
		End If
		Print "OK"
	End If
	Exit Sub
	
ERRHNDL:
	tmpErr = Err
	Print "Fehler " & Cstr(Err) & " in Zeile " & Cstr(Erl) & ": " & Error$
	Resume Next
End Sub


Offline Sabine

  • Aktives Mitglied
  • ***
  • Beiträge: 112
  • Geschlecht: Weiblich
Re: Cannot create automation object - Office 365
« Antwort #4 am: 11.05.21 - 11:38:12 »
Ich habe das Script in eine Schaltfläche von einer Maske eingebaut.

Leider steht in der Statuszeile "Houston - Wir haben noch ein Problem: 208" 'gefällt mir ;-)'

Ich habe mal ein Screenshot von der Statuszeile diesem Beitrag angehängt.

Vielleicht hast Du ja noch eine Idee? Vielleicht liegt es wirklich an der Objekt-Registrierung in Windows?

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
Re: Cannot create automation object - Office 365
« Antwort #5 am: 11.05.21 - 14:09:25 »
Zur Frage der korrekten Registrierung (auch wenn ich das momentan nicht als Ursache ansehe):

Ich hab mal einen Screenshot angehangen, wie das momentan bei dir aussehen sollte.
Du kannst anhand dessen in der Registry mal nach (1) Word.Application suchen und danach in der dort hinterlegten ClassID (blau) die Zuordnung zu Word überprüfen, also den Pfad zu LocalServer32 überprüfen (2). Das, was dort steht startet er mit deinem Aufruf normalerweise.

Zurück zum Script. Den Ausschriften nach zu urteilen wird Word gestartet (oder läuft zumindest zum Ende des Scripts). Lediglich das Objekt wird nicht übergeben oder der Zugriff wird gesperrt.

- Hast du mal im Taskmanager unter Details geprüft, ob/wie viele WINWORD Instanzen vor/nach dem Script laufen?
- Hast du mal alle WINWORD Instanzen vor dem Script beendet und nach dem Script geprüft?
- Arbeitet da irgendein Programm (Notes oder Office) mit Administrator-Rechten?
- Wie ist die UAC (Benutzerkontensteuerung) eingestellt? Von 4 Stufen (0=unten=aus bis 3=oben=max)

HTH
Carsten

Offline Sabine

  • Aktives Mitglied
  • ***
  • Beiträge: 112
  • Geschlecht: Weiblich
Re: Cannot create automation object - Office 365
« Antwort #6 am: 11.05.21 - 16:18:35 »
Hallo Carsten,

ich habe nun auch mal ein paar Screenshots von meiner Registry angehangen, da sieht es schon ziemlich schlecht aus.
Die Zuordnung zu Word der Pfad der in CLSID stehen sollte, steht auf (Wert nicht festgelegt).

Zurück zum Script. Den Ausschriften nach zu urteilen wird Word gestartet (oder läuft zumindest zum Ende des Scripts). Lediglich das Objekt wird nicht übergeben oder der Zugriff wird gesperrt.

Word wird meines Erachtens nicht gestartet, da keine Winword.exe im Taskmanager auftaucht.
Zudem bricht das Script direkt bei dem Aufruf Set wrd = getObject(."Word.Application") direkt ab und läuft in den Errhndl rein.
Siehe hierzu den Screnshot.

- Hast du mal im Taskmanager unter Details geprüft, ob/wie viele WINWORD Instanzen vor/nach dem Script laufen?
Es laufen überhaupt keine Winword-Instanzen, weder vor noch nach dem Script.

- Hast du mal alle WINWORD Instanzen vor dem Script beendet und nach dem Script geprüft?
Hat sich demnach erledigt, da keine laufen.

- Arbeitet da irgendein Programm (Notes oder Office) mit Administrator-Rechten?
Denke nicht, aber da schau ich auch nochmal nach.

- Wie ist die UAC (Benutzerkontensteuerung) eingestellt? Von 4 Stufen (0=unten=aus bis 3=oben=max)
Ich denke auf Stufe 3, habe auch hier nochmal einen Screenshot angehangen.

Wenn man das alles so zusammenfasst - scheint es wohl wirklich an der Registry zu liegen :-(

Vielleicht reicht es aus, dass ich O365 nochmal drüber installiere?

Vielen, vielen lieben Dank schon mal für die großartige Hilfe.

Gruß Sabine
« Letzte Änderung: 11.05.21 - 16:22:48 von Sabine »

Offline CarstenH

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 668
  • Geschlecht: Männlich
Re: Cannot create automation object - Office 365
« Antwort #7 am: 11.05.21 - 17:15:44 »
ich habe nun auch mal ein paar Screenshots von meiner Registry angehangen, da sieht es schon ziemlich schlecht aus.
Die Zuordnung zu Word der Pfad der in CLSID stehen sollte, steht auf (Wert nicht festgelegt).

Der ganze Zweig CLSID fehlt. Eine Neuinstallation sollte das hoffentlich bereinigen.

Zudem bricht das Script direkt bei dem Aufruf Set wrd = getObject(."Word.Application") direkt ab und läuft in den Errhndl rein.
Siehe hierzu den Screnshot.

Das Script bricht nicht ab sondern getObject(,"Word.Application") (mit Komma übrigens, nicht mit Punkt) probiert, ob Word vielleicht schon läuft indem es einfach aufs Blaue "Word.Application" abfragt statt es mit CreateObject("Word.Application") blind zu starten. Das soll verhindern, dass Word immer und immer wieder neu aufgerufen wird - Ressourcen sparen ist hier die Devise.

Wenn getObject(,"Word.Application") fehlschlägt wird am Ende der Fehlerbehandlung durch Resume Next mit der nächsten Zeile oben sauber weiter gearbeitet und Word dann eben doch geladen (wenns denn funktionieren würde bei dir).

Deswegen schrieb ich zu dem Script: einige Fehler sind normal damit man merkt ob man das Handle im Zugriff hat und werden dann entsprechend behandelt.

Wenn man das alles so zusammenfasst - scheint es wohl wirklich an der Registry zu liegen :-(
Vielleicht reicht es aus, dass ich O365 nochmal drüber installiere?

Ja, ich stimme dir zu. Die anderen Sachen, die ich abgefragt hatte sehen ja normal aus.
Am besten du kontrollierst direkt nach der Installation den angesprochenen Reg. Zweig.

Mein Laptop hier hat auch schon mehrere Office Versionen gesehen, ob das bei einer frischen Installation auch so aussieht weiß ich daher nicht mit Bestimmtheit. Vielleicht schnappe ich mir morgen mal eine frische VM und schaue nach falls du mit einer Neuinstallation nicht weiterkommst.

Gruß Carsten
« Letzte Änderung: 11.05.21 - 17:17:42 von CarstenH »

Offline Sabine

  • Aktives Mitglied
  • ***
  • Beiträge: 112
  • Geschlecht: Weiblich
Re: Cannot create automation object - Office 365
« Antwort #8 am: 11.05.21 - 17:30:50 »
Hallo Carsten,

ich habe mir den "Support- und Wiederherstellungs-Assistenten von Microsoft" heruntergeladen und installiert.
In diesem Programm konnte ich zwischen verschiedenen Office-Versionen wählen, welche ich deinstallieren möchte.
Zwar hatte ich bereits gestern Office 2010 über die Systemeinstellungen deinstalliert, aber vielleicht sind irgenwelche Reste / Fragmente übrig geblieben (wie leider sehr oft).
Da meine Vorgängerversion Office 2010 war, habe ich diese Version ausgewählt.

Anschließend habe ich O365 neu installiert.
Und der Erfolg ist unmittelbar eingetreten, die Rechnungsverwaltung funktioniert wieder einwandfrei, juchuuuuu.

In der Registry sieht es nun so aus, wie auf Deinem Screenshot.
Ohne Deine Hilfe wäre ich nicht so weit gekommen.

Vielen, vielen herzlichen Dank dafür  :)

Gruß
Sabine

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz