{"id":55000304,"date":"2022-04-01T00:00:00","date_gmt":"2023-08-30T13:10:31","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=304"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Makros_in_Office_aktivieren","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Makros_in_Office_aktivieren\/","title":{"rendered":"Makros in Office aktivieren"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg02.met.vgwort.de\/na\/13c3a521d7de49779cf68cf73d4a2ac4\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Wenn wir in den Anwendungen eines frisch installierten Office-Pakets VBA-Code ausf&uuml;hren wollen, f&uuml;hrt dies mitunter nicht zum gew&uuml;nschten Ergebnis. Stattdessen erscheint eine Meldung, die uns mitteilt, dass die Makros in diesem Projekt deaktiviert sind. Der Grund ist einfach: Mit VBA-Code k&ouml;nnen wir eine Menge Schaden anrichten, zum Beispiel Dateien oder Verzeichnisse l&ouml;schen. Daher ist seine Ausf&uuml;hrung standardm&auml;&szlig;ig deaktiviert. Wie wir den VBA-Code dennoch ausf&uuml;hren k&ouml;nnen, zeigt dieser Artikel.<\/b><\/p>\n<p>Neulich wollte ich in einer frischen Office-Installation das Ereignis ausprobieren, das beim Starten von Outlook ausgel&ouml;st wird und das wir im VBA-Projekt von Outlook (zu &ouml;ffnen von Outlook aus mit der Tastenkombination <b>Strg + F11<\/b>) wie folgt zum standardm&auml;&szlig;ig vorhandenen Modul <b>ThisOutlookSession <\/b>hinzuf&uuml;gen:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Application_Startup()\r\n     <span style=\"color:blue;\">MsgBox<\/span> \"Startup\"\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Wider Erwarten f&uuml;hrt ein Schlie&szlig;en und erneutes &Ouml;ffnen von Outlook nicht zur Anzeige des Meldungsfensters. Also versuchte ich, die Prozedur direkt vom VBA-Editor aus aufzurufen, indem ich die Einf&uuml;gemarke darin platzierte und auf <b>F5 <\/b>dr&uuml;ckte. Das Ergebnis war die Meldung aus Bild 1. Da die Onlinehilfe in diesem Fall recht wenig hilfreich war, ist dieser Artikel entstanden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_304_003.png\" alt=\"Meldung beim Versuch, eine VBA-Prozedur aufzurufen\" width=\"549,6265\" height=\"317,4479\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Meldung beim Versuch, eine VBA-Prozedur aufzurufen<\/span><\/b><\/p>\n<h2>Ausf&uuml;hrung von Makros aktivieren<\/h2>\n<p>Es gibt verschiedene Einstellungen f&uuml;r die Ausf&uuml;hrung von Makros. Diese finden wir, wenn wir die Optionen f&uuml;r die jeweilige Office-Anwendung des aktuell installierten Pakets &ouml;ffnen. Dazu klicken wir im Ribbon auf <b>Datei <\/b>und im nun erscheinenden Bereich auf <b>Optionen<\/b>. Hier wechseln wir zum Bereich <b>Trust Center <\/b>und klicken dort auf die Schaltfl&auml;che <b>Einstellungen f&uuml;r das Trust Center&#8230; <\/b>(siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_304_002.png\" alt=\"Anzeigen des Trust Centers\" width=\"549,6265\" height=\"415,3375\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Anzeigen des Trust Centers<\/span><\/b><\/p>\n<p>Im nun erscheinenden Dialog <b>Trust Center <\/b>wechseln wir zum Bereich <b>Makroeinstellungen<\/b>. Hier finden wir f&uuml;r Microsoft Outlook beispielsweise standardm&auml;&szlig;ig die Einstellungen aus Bild 3 vor. Mit dem Wert <b>Benachrichtigungen f&uuml;r digital signierte Makros. Alle anderen Makros sind deaktiviert. <\/b>ist es kein Wunder, dass unsere VBA-Prozeduren nicht ausgef&uuml;hrt werden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_304_004.png\" alt=\"Die Makroeinstellungen f&uuml;r die Office-Anwendungen\" width=\"649,627\" height=\"282,7079\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Die Makroeinstellungen f&uuml;r die Office-Anwendungen<\/span><\/b><\/p>\n<p>Es gibt zwei Alternativen, die ein Ausf&uuml;hren erlauben:<\/p>\n<ul>\n<li><b>Benachrichtigungen f&uuml;r alle Makros<\/b>: Dies f&uuml;hrt dazu, dass wir, wenn wir eine VBA-Prozedur aufrufen wollen, die Meldung aus Bild 4 erhalten. Best&auml;tigen wir die Meldung mit <b>Makros aktivieren<\/b>, werden alle VBA-Prozeduren ausgef&uuml;hrt, die im Rahmen dieser Session automatisch oder manuell gestartet werden. Der Klick auf <b>Makros deaktivieren <\/b>f&uuml;hrt dazu, dass innerhalb dieser Session keine VBA-Routinen ausgef&uuml;hrt werden k&ouml;nnen. Session bedeutet hier die Zeit vom Starten bis zum Schlie&szlig;en von Outlook.<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_304_005.png\" alt=\"Diese Meldung erscheint, wenn Benachrichtigungen f&uuml;r alle Makros aktiviert ist und wir versuchen, eine VBA-Prozedur aufzurufen.\" width=\"524,6265\" height=\"202,4223\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Diese Meldung erscheint, wenn Benachrichtigungen f&uuml;r alle Makros aktiviert ist und wir versuchen, eine VBA-Prozedur aufzurufen.<\/span><\/b><\/p>\n<li><b>Alle Makros aktivieren<\/b>: Mit dieser Einstellung werden alle VBA-Routinen ohne weitere R&uuml;ckfragen ausgef&uuml;hrt.<\/li>\n<\/ul>\n<h2>Unterschiedliches Verhalten bei verschiedenen Anwendungen<\/h2>\n<p>Die verschiedenen Office-Anwendungen bieten bei Aktivierung der Option <b>Benachrichtigungen f&uuml;r alle Makros <\/b>teils unterschiedliche M&ouml;glichkeiten und zeigen unterschiedliche Verhaltensweisen:<\/p>\n<ul>\n<li>Unter Outlook reicht es bereits aus, das VBA-Projekt zu &ouml;ffnen, um die Abfrage zu provozieren, ob die Makros aktiviert oder deaktiviert werden sollen.<\/li>\n<li>Unter Word, Excel und PowerPoint m&uuml;ssen die Dokumente die Dateiendung f&uuml;r Dokumente mit Makros aufweisen, also beispielsweise <b>.docm<\/b>, <b>.xlsm <\/b>oder <b>.ppxm<\/b>. Nur dann kann Code &uuml;berhaupt automatisch ausgef&uuml;hrt werden und die Sicherheitseinstellungen f&uuml;r Makros greifen. In <b>.xlsx<\/b>-Dateien beispielsweise kann VBA-Code &uuml;ber den VBA-Editor aufgerufen werden.<\/li>\n<li>Access-Datenbanken k&ouml;nnen immer Code ausf&uuml;hren, dazu muss die Datenbank nicht unter einer anderen Dateiendung gespeichert werden.<\/li>\n<\/ul>\n<p>Die Einstellungen im Bereich <b>Makroeinstellung <\/b>werden &uuml;brigens f&uuml;r jede Office-Anwendung separat in der Registry gespeichert, und sie werden noch nicht einmal in jeder Anwendung gleich genannt &#8211; in Microsoft Excel lauten die Bezeichnungen etwas anders als in den &uuml;brigen Anwendungen. Wir k&ouml;nnen also f&uuml;r Access, Excel, Outlook, PowerPoint und Word separat festlegen, wie dort mit der Ausf&uuml;hrung von VBA-Code umgegangen werden soll.<\/p>\n<h2>Vertrauensw&uuml;rdige Speicherorte als Ausweg<\/h2>\n<p>Wenn Du nicht soweit gehen willst, die Einstellung <b>Alle Makros aktivieren <\/b>zu nutzen, sondern <b>Benachrichtigungen f&uuml;r alle Makros<\/b>, kannst Du den VBA-Code in Dokumenten immer noch ohne Anzeige von Sicherheitsmeldungen nutzen. Dazu f&uuml;gst Du im Dialog <b>Trust Center <\/b>unter <b>Vertrauensw&uuml;rdige Speicherorte <\/b>den oder die Ordner hinzu, welche die Dokumente enthalten, die ohne R&uuml;ckfrage ausgef&uuml;hrt werden sollen (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_304_006.png\" alt=\"Verwalten vertrauensw&uuml;rdiger Speicherorte\" width=\"700\" height=\"400,1067\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Verwalten vertrauensw&uuml;rdiger Speicherorte<\/span><\/b><\/p>\n<p>Sollte der gew&uuml;nschte vertrauensw&uuml;rdige Speicherort noch nicht in der Liste enthalten sein, kannst Du diesen mit einem Klick auf <b>Neuen Speicherort hinzuf&uuml;gen&#8230; <\/b>zur Liste hinzuf&uuml;gen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn wir in den Anwendungen eines frisch installierten Office-Pakets VBA-Code ausf&uuml;hren wollen, f&uuml;hrt dies mitunter nicht zum gew&uuml;nschten Ergebnis. Stattdessen erscheint eine Meldung, die uns mitteilt, dass die Makros in diesem Projekt deaktiviert sind. Der Grund ist einfach: Mit VBA-Code k&ouml;nnen wir eine Menge Schaden anrichten, zum Beispiel Dateien oder Verzeichnisse l&ouml;schen. Daher ist seine Ausf&uuml;hrung standardm&auml;&szlig;ig deaktiviert. Wie wir den VBA-Code dennoch ausf&uuml;hren k&ouml;nnen, zeigt dieser Artikel.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022022,662022,44000027,44000025],"tags":[],"yst_prominent_words":[],"class_list":["post-55000304","post","type-post","status-publish","format-standard","hentry","category-66022022","category-662022","category-Excel_programmieren","category-VBAProgrammierung"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000304"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000304\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000304"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}