FixIt: Outlook VBA-Code in Formular wird nicht mehr ausgeführt

Hallo allerseits,

heute habe ich ein sehr interessantes FixIt für euch.

Problem:

In Outlook (bei mir Version 2016, FixIt gilt aber für die Versionen 2007, 2010, 2013 und 2016) wurde ein benutzerdefiniertes Formular erstellt, in dem VBA-Code/-Script(s) ausgeführt werden soll(en).

Beim Starten des Scripts, zum Beispiel durch Klick auf eine Schaltfläche, passiert aber nichts. In meinem Fall hat es schon mal ohne Probleme funktioniert und „auf einmal“ ging nichts mehr. 😮

Lösung: 

Die Lösung ist relativ einfach …. zunächst aber erst mal der Grund für das oben erläuterte Problem:

Im September 2017 wurde ein öffentliches Update für Outlook ausgegeben, in dem diese „Sicherheits-Funktion“ enthalten ist; d. h. die Ausführung von VBA-Scripts wird aus Sicherheitsgründen blockiert, was in unserem Fall äußerst ungünstig ist, denn genau das wollen wir ja!

Allerdings kann man diese „Blockade“ mit Hilfe von Registry-Einträgen wieder aufheben.

Wichtiger Hinweis vorweg (muss sein! 😉):
Änderungen an der Windows-Registrierungsdatenbank können Schäden am System hervorrufen. Nachfolgendes FixIt führst du auf eigene Verantwortung durch!

Starte den Registry-Editor:

Erstelle dann diesen Schlüssel:
bei 32-Bit-Office unter 64-Bit-Windows:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Outlook\Security

 

bei 32-Bit-Office unter 32-Bit-Windows oder 64-Bit-Office unter 64-Bit-Windows:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Outlook\Security

Im gerade erstellten Schlüssel erstellst du nun einen DWORD-Wert (32 Bit) mit dem Namen DisableCustomFormItemScript und dem Wert „0“

Damit wird die Sperre der Ausführung von Scripts in Formularen (global) aufgehoben.

Nun müssen die Formular-Klassen noch explizit aktiviert werden.Dazu musst du erst mal ermitteln, um welche Formular-Klasse es bei dir geht.
Öffne dein Formular in der Entwicklungsumgebung:

Starte nun die Veröffentlichung des Formulars:

Jetzt wird dir im Speichern-Dialog angezeigt um welche Nachrichten-Klasse
es sich bei deinem Formular handelt:


Bei mir ist es die Klasse „IPM.Task.Projekt“

Um die Scriptausführung für dieses Formular zu aktivieren musst du nun im Regitry-Editor folgenden Schlüssel anlegen:

bei 32-Bit-Office unter 64-Bit-Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\16.0\Outlook\Forms\TrustedFormScriptList

bei 32-Bit-Office unter 32-Bit-Windows oder 64-Bit-Office unter 64-Bit-Windows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Outlook\Forms\TrustedFormScriptList

In diesem Schlüssel erstellst du nun eine Zeichenfolge mit dem Namen deiner Formularklasse

:

Diesen Schritt musst du für jedes deiner Formulare durchführen, solltest du mehr als nur das eine haben.

Jetzt Outlook neu starten und die Ausführung des Scripts/Codes sollte wieder klappen. 😉

Hinweis 1:

Im o. g. FixIt wurde in der Registry der Office-Pfad 16.0 verwendet, da es sich um die Office-Version 2016 handelt. Jede Office Version hat seinen eigenen Registry-Pfad. Verwende also 15.0 für Outlook 2013, 14.0 für Outlook 2010 und 12.0 für Outlook 2007.

Hinweis 2:

In einigen Fällen funktioniert Formulare in sekundären Postfächern und öffentlichen Ordnern nach Ändern der Registrierungsschlüsseleinstellungen immer noch nicht. Zum Beheben dieses Problems aktiviere Skripts im Trust Center:

Klicke auf Datei > Optionen. Wähle dann Trust Center > Einstellungen für das Trust CenterE-Mail-Sicherheit aus.

Klicke im Abschnitt Skript in Ordnern auf das Kontrollkästchen für Skript in freigegebenen Ordnern zulassen und Skript in Öffentlichen Ordnern zulassen, und klicke anschließend auf OK und nochmals OK, um die Fenster zu schließen.

 

Frage(n)? Dann schreib einen kurzen Kommentar oder erstelle ein Thema dazu im Tech-Tipps-Forum !

 

Quelle: https://support.office.com/de-de/article/Benutzerdefiniertes-Formularskript-ist-nun-standardm%C3%A4%C3%9Fig-deaktiviert-bd8ea308-733f-4728-bfcc-d7cce0120e94

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.