{"id":88042022,"date":"2019-11-08T11:47:22","date_gmt":"2019-11-08T11:47:22","guid":{"rendered":"http:\/\/access-basics.de\/index.php\/88042022.html"},"modified":"2019-11-08T11:47:22","modified_gmt":"2019-11-08T11:47:22","slug":"88042022","status":"publish","type":"page","link":"https:\/\/vbentwickler.de\/88042022\/","title":{"rendered":"Visual Basic Entwickler 04\/2022"},"content":{"rendered":"<h3>Outlook: E-Mails nach Eingang verarbeiten<\/h3>\n<p>Die verschiedenen Klassen von Outlook bieten eine ganze Reihe von Ereignissen an. Diese werden durch unterschiedliche Aktionen ausgel\u00f6st. Eine dieser Aktion ist das Eintreffen einer oder mehrerer neuer E-Mails. Dieses Ereignis mit einer geeigneten Ereignisprozedur abzufangen ist ein sinnvolles Beispiel f\u00fcr die Beschreibung der Programmierung von Ereignissen unter Outlook. Mit E-Mails kann man nach dem Eingang eine Menge anstellen \u2013 diese l\u00f6schen, in einen anderen Ordner verschieben, die Message-Datei im Dateisystem sichern oder auch die Inhalte auslesen, um diese etwa in eine Datenbank zu schreiben. In diesem Artikel beschreiben wir erst einmal allgemein, wie wir \u00fcberhaupt mit VBA-Code auf den Eingang einer E-Mail reagieren k\u00f6nnen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Outlook_EMails_nach_Eingang_verarbeiten\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Outlook: Application_Startup feuert nicht<\/h3>\n<p>Das Ereignis \u00bbStartup\u00ab des \u00bbApplication\u00ab-Objekts von Outlook ist f\u00fcr viele benutzerdefinierte Erweiterungen von Outlook essenziell, da es die M\u00f6glichkeit bietet, direkt beim Starten von Outlook VBA-Code auszuf\u00fchren. Damit lassen sich f\u00fcr verschiedene Anwendungen wichtige Automatismen ansto\u00dfen \u2013 zum Beispiel das Deklarieren und Initialisieren von Objektvariablen, f\u00fcr die Ereignisse implementiert werden sollen. Leider passiert es gelegentlich, dass die Ereignisprozedur Application_Startup beim Starten von Outlook nicht aufgerufen wird. Woran das liegt und wir dies \u00e4ndern, zeigt der vorliegende Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Outlook_Application_Startup_feuert_nicht\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Excel: Zellen und Bereiche per VBA<\/h3>\n<p>Im Artikel \u00bbExcel: Workbooks und Worksheets per VBA\u00ab haben wir uns angesehen, wie wir Arbeitsmappen und Arbeitsbl\u00e4tter mit VBA nutzen k\u00f6nnen. Im vorliegenden Artikel gehen wir einen Schritt weiter und nehmen uns die offensichtlichen Elemente eines Arbeitsblatts vor \u2013 die Zellen. Nicht weniger spannend sind allerdings die Bereiche, unter VBA \u00bbRange\u00ab genannt. Wie wir diese referenzieren, auslesen und bearbeiten k\u00f6nnen, zeigen wir auf den folgenden Seiten.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Excel_Zellen_und_Bereiche_per_VBA\">Zum Artikel &#8230;<\/a><\/p>\n<h3>VBA-Basics: MsgBox- und InputBox-Funktion<\/h3>\n<p>Die beiden Funktionen MsgBox und InputBox erm\u00f6glichen die schnelle Abfrage von Benutzerfeedback. Soll eine Datei \u00fcberschrieben werden? Wie soll die neue Kategorie hei\u00dfen? Das sind nur zwei von vielen Beispielen f\u00fcr den Einsatz dieser beiden Funktionen. Dieser Artikel beschreibt die beiden so kompakt wie m\u00f6glich, damit Du sie schnell in Deine eigenen Anwendungen integrieren kannst. <\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/VBABasics_MsgBox_und_InputBoxFunktion\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Texte \u00fcbersetzen mit DeepL<\/h3>\n<p>Zum automatischen \u00dcbersetzen von Texten gibt es viele Anl\u00e4sse. Vielleicht m\u00f6chtest Du die Texte in einer Anwendung automatisch \u00fcbersetzen lassen, damit Du selbst die \u00dcbersetzung nur noch pr\u00fcfen und gegebenenfalls anpassen musst. Oder Du hast Texte in einer anderen Sprache, die Du gern in die deutsche Sprache \u00fcbersetzen m\u00f6chtest, um diese leichter lesen zu k\u00f6nnen. Wie auch immer: Es gibt zwar Dienste wie Google Translate, mit denen man das im Browser erledigen kann, aber wenn man viele oder umfangreiche Texte \u00fcbersetzen lassen m\u00f6chte, ist diese L\u00f6sung unbefriedigend. In diesem Fall bietet sich eine Automation des Vorgangs an. Und wie das geht, zeigen wir anhand eines der aktuell besten \u00dcbersetzungstools, n\u00e4mlich DeepL. DeepL bietet ein API an, die wir per VBA oder mit anderen Programmiersprachen ansteuern k\u00f6nnen. Dieser Artikel stellt die Grundlagen dazu vor.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Texte_uebersetzen_mit_DeepL\">Zum Artikel &#8230;<\/a><\/p>\n<h3>VBA-Basics: Makros aufzeichnen<\/h3>\n<p>Das Programmieren von Office-Automatisierungen beispielsweise in der Sprache VBA kann f\u00fcr Einsteiger herausfordernd sein. Allerdings gibt es M\u00f6glichkeiten, sich hier und da zu behelfen: Die Anwendungen Excel, Word und PowerPoint bieten n\u00e4mlich einen sogenannten Makro-Rekorder, mit dem man einfache Abl\u00e4ufe innerhalb der Anwendung aufzeichnen kann. Das Ergebnis ist eine VBA-Prozedur, die Du anschlie\u00dfend erneut aufrufen kannst. In vielen F\u00e4llen reicht dies bereits aus, um die gew\u00fcnschten Schritte zu automatisieren, in anderen F\u00e4llen m\u00f6chtest Du das Ergebnis des Makro-Recordsets vielleicht noch anpassen. Wie Du diesen Makro-Rekorder einsetzt und wie Du die Ergebnisse anpassen kannst, zeigt der vorliegende Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/VBABasics_Makros_aufzeichnen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Excel: \u00dcbersetzungen mit DeepL<\/h3>\n<p>Im Artikel \u00bbTexte \u00fcbersetzen mit DeepL\u00ab (www.vbentwickler.de\/322) haben wir gezeigt, wie man mithilfe einer in der Basisversion kostenlosen Web-API \u00dcbersetzungen von Texten durchf\u00fchren kann. Das Ergebnis dieses Artikels war jedoch nur eine VBA-Funktion, mit der sich ein als Parameter angegebener Text \u00fcbersetzen l\u00e4sst. Das ist f\u00fcr Otto Normalverbraucher nat\u00fcrlich etwas sperrig, sodass wir diese Funktion nun einmal mit in einer Excel-Tabelle gespeicherten Texten ausprobieren wollen. Gleichzeitig lernen wir etwas \u00fcber das Auslesen und Schreiben von Inhalten aus und in Excel-Tabellen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Excel_uebersetzungen_mit_DeepL\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Excel: Workbooks und Worksheets per VBA<\/h3>\n<p>Excel bietet eine ganze Reihe hierarchisch angeordneter Elemente, die wir uns in diesem Artikel ansehen. Dabei schauen wir uns auch gleich an, wir wir diese per VBA referenzieren k\u00f6nnen. Wir beginnen ganz oben in der Hierarchie mit der Excel-Anwendung und arbeiten uns dann \u00fcber die verschiedenen Elemente bis hin zur einzelnen Zelle mit ihren Eigenschaften. Nach der Lekt\u00fcre dieses Artikels kannst Du alle wichtigen Elemente eines Excel-Workbooks referenzieren, diese in Schleifen durchlaufen und je nach Objekttyp neue Elemente hinzuf\u00fcgen, bearbeiten oder entfernen k\u00f6nnen. Au\u00dferdem lernst Du noch einige Grundlagen des VBA-Editors kennen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Excel_Workbooks_und_Worksheets_per_VBA\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Umfangreiche Texte in Code integrieren<\/h3>\n<p>Es gibt Aufgaben, um die schl\u00e4gt man sich nicht. Eine davon ist es, gr\u00f6\u00dfere Texte hart im VBA-Code zu verdrahten, sodass diese sp\u00e4ter weiterverarbeitet werden kann. Ein Beispiel ist das Zusammenstellen eines XML-Dokuments, von dem man eine Vorlage hat, und das man mit eigenen Werten f\u00fcllen m\u00f6chte, um es dann beispielsweise als Anfrage an einen Webservice zu schicken. Oder man m\u00f6chte den Inhalt einer Mail per VBA an Outlook schicken und versenden, nachdem man den Mailtext noch um individuelle Inhalte wie Anrede oder Name des Empf\u00e4ngers erg\u00e4nzt hat. Sprich: Uns liegt ein mehrzeiliger Text vor, den wir irgendwie in eine Variable packen wollen \u2013 und zwar ausschlie\u00dflich per VBA-Code. Wie das gelingt, zeigt der vorliegende Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Umfangreiche_Texte_in_Code_integrieren\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Buttons in Excel<\/h3>\n<p>In anderen Artikeln zeigen wir, wie Du Makros in Excel aufzeichnest oder wie Du per VBA-Prozedur auf die verschiedenen Elemente einer Excel-Arbeitsmappe zugreifen kannst. Diese Makros sind durchaus praktisch, aber der Nutzen reduziert sich doch, wenn man zum Ausf\u00fchren beziehungsweise aufrufen immer den VBA-Editor anzeigen muss. Also zeigen wir im vorliegenden Artikel, wie Du einem Arbeitsblatt in Excel eine Schaltfl\u00e4che hinzuf\u00fcgst, mit der Du die f\u00fcr dieses Arbeitsblatt vorgesehenen VBA-Prozeduren beziehungsweise Makros viel schneller und komfortabler aufrufen kannst.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Buttons_in_Excel\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Ribbons in Office-Dokumenten<\/h3>\n<p>Word, Excel und PowerPoint sind die Office-Anwendungen, mit denen Du Dokumente anzeigen und bearbeiten, aber auch automatisieren kannst. Wenn Du beispielsweise einer Excel-Arbeitsmappe eigene, per VBA programmierte Funktionen hinzuf\u00fcgen m\u00f6chtest, musst Du diese irgendwie aufrufen. Eine Schaltfl\u00e4che in einem Excel-Arbeitsblatt ist eine M\u00f6glichkeit. Die Alternative ist, einen entsprechenden Befehl im Ribbon zu platzieren. Wie das gelingt, zeige ich im vorliegenden Artikel. Dabei erf\u00e4hrst Du auch einige Dinge rund um die Office Open XML-Formate und wie die Daten in diesen Dokumenten gespeichert sind \u2013 darunter auch die Definitionen von Ribbons und die darin anzuzeigenden Icons.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Ribbons_in_OfficeDokumenten\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Excel: Arbeitsbl\u00e4tter per Ribbon steuern<\/h3>\n<p>Wenn Du eine eigene Excel-L\u00f6sung mit einigen Arbeitsbl\u00e4ttern erstellt hast, st\u00f6rt es Dich vielleicht, dass Du nicht schnell \u00fcber die Registerreiter unten im Excel-Fenster auf alle Arbeitsbl\u00e4tter zugreifen kannst. Je nach Fenstergr\u00f6\u00dfe und Anzahl der Arbeitsbl\u00e4tter zeigt Excel dort n\u00e4mlich nicht alle Arbeitsbl\u00e4tter an. Damit haben wir allerdings ein sch\u00f6nes Beispiel f\u00fcr den Einsatz des Ribbons in einer Excel-Arbeitsmappe. Diesem f\u00fcgen wir ein Tab mit einem Button f\u00fcr jedes Arbeitsblatt, das schnell erreichbar sein soll, hinzu. Das Ribbon hat noch einen Vorteil: Wenn wir dort f\u00fcr die wichtigsten Arbeitsbl\u00e4tter je eine Schaltfl\u00e4che hinzuf\u00fcgen, k\u00f6nnen wir diese auch noch mit einem Icon ausstatten, um das gesuchte Arbeitsblatt noch schneller zu finden.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Excel_Arbeitsblaetter_per_Ribbon_steuern\">Zum Artikel &#8230;<\/a><\/p>\n<h3>VBA Basics: Module, Klassen und Co.<\/h3>\n<p>Unter VBA strukturieren wir den Code in verschiedene Elemente. Die \u00fcbergeordneten Elemente sind die Module. Hier unterscheiden wir zwischen Klassenmodulen und Standardmodulen. Darunter k\u00f6nnen wir Variablen und \u00e4hnliche deklarieren sowie auszuf\u00fchrende Anweisungen unterbringen. Diese Anweisungen m\u00fcssen eine Voraussetzung erf\u00fcllen: Sie m\u00fcssen in einer Sub- oder Function-Prozedur oder innerhalb einer Property-Methode eingetragen werden. In diesem Artikel schauen wir uns die Grundlagen von Modulen, Klassenmodulen und Objektmodulen im Detail an.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/VBA_Basics_Module_Klassen_und_Co\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Outlook: E-Mail per Drag and Drop nach Access<\/h3>\n<p>Wenn Du eine Kundendatenbank mit Access programmiert hast und die Kommunikation per E-Mail \u00fcber Outlook l\u00e4uft, m\u00f6chtest Du vielleicht einem Kundendatensatz die E-Mails dieses Kunden zuweisen. Daf\u00fcr gibt es verschiedene M\u00f6glichkeiten. In diesem Artikel schauen wir uns eine an, bei der Du die E-Mail per Drag and Drop auf einen bereich in einem Access-Formular ziehst. Dort verarbeiten wir die E-Mail und speichern bestimmte Daten in einer Tabelle, damit die E-Mail bei Bedarf vom Kunden-Formular aus wieder in Outlook angezeigt werden kann. Wer sich schon mit dem Thema besch\u00e4ftigt hat, wei\u00df, dass man E-Mails eigentlich nicht nach Access ziehen kann. Deshalb umschiffen wir dieses Problem mit einem kleinen Trick.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Outlook_EMail_per_Drag_and_Drop_nach_Access\">Zum Artikel &#8230;<\/a><\/p>\n<h3>VBA Basics: Makros, Prozeduren, Funktionen und Co.<\/h3>\n<p>VBA-Code in VBA-Projekten von Office-Anwendungen landet zuerst einmal in Modulen. Darunter gibt es einige weitere Strukturen, auf welche die Anweisungen aufgeteilt werden. W\u00e4hrend Deklarationen von Variablen auch direkt in einem Modul angelegt werden k\u00f6nnen, m\u00fcssen ausf\u00fchrbare Codezeilen zwingend in Konstrukten untergebracht werden, die je nach Anwendung Makros oder Prozeduren genannt werden. Au\u00dferdem gibt es noch Funktionen. Was es mit all diesen Begriffen auf sich hat und wieso diese nicht einheitlich definiert sind, erl\u00e4utern wir in diesem Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/VBA_Basics_Makros_Prozeduren_Funktionen_und_Co\">Zum Artikel &#8230;<\/a><\/p>\n<h3>VBA Basics: Bedingungen<\/h3>\n<p>Wenn man in VBA-Routinen bestimmte Anweisungen in Abh\u00e4ngigkeit von einem Wert einer Variablen, einer Eingabe oder anderen Bedingungen ausf\u00fchren lassen m\u00f6chte, verwendet man sogenannte Bedingungen. Unter VBA gibt es dazu die If&#8230;Then-Bedingung und die Select Case-Bedingung. Streng genommen gibt es noch einige VBA-Funktionen, die auch Bedingungen enthalten. Diese schauen wir uns aber in einem anderen Artikel an. Hier geht es zun\u00e4chst um die beiden genannten Konstrukte.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/VBA_Basics_Bedingungen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Excel: Sheet-Navigation per Button<\/h3>\n<p>Wenn man ein Excel-Workbook mit vielen verschiedenen Worksheets verwendet, m\u00f6chte man beim \u00d6ffnen des Workbooks vielleicht eine \u00dcbersichtsseite pr\u00e4sentiert bekommen, von der aus man per Mausklick auf entsprechende Schaltfl\u00e4chen zu den \u00fcbrigen Worksheets gelangt \u2013 und am besten von dort aus mit einer weiteren Schaltfl\u00e4che wieder zur\u00fcck zur \u00dcbersicht. In diesem Artikel zeigen wir, wie das gelingt, und warum wir noch nicht mal eine einzige Zeile VBA-Code f\u00fcr dieses Vorhaben ben\u00f6tigen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Excel_SheetNavigation_per_Button\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Einfache Excel-Formulare erstellen<\/h3>\n<p>Excel kann nicht nur einfach Daten in Tabellenform anzeigen. Es bietet auch verschiedene M\u00f6glichkeiten, um Daten auszuwerten, beispielsweise in Diagrammen, oder auch M\u00f6glichkeiten zur komfortableren Eingabe von Daten. Wer zum Beispiel sonst mit Access arbeitet, dass man dem Benutzer dort \u00fcblicherweise Formulare zur Verf\u00fcgung stellt, um die Daten einzugeben, zu betrachten und zu verwalten. Warum also sollte man den Anwender in Excel mit riesigen \u00bbTapeten\u00ab von Daten qu\u00e4len, statt im jeweils den Inhalt einer Zeile der Tabelle zum Betrachten und zum Bearbeiten anzubieten? Dieser Artikel zeigt eine sehr einfache M\u00f6glichkeit, um dem Benutzer ein ergonomischeres Erlebnis zu bieten.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Einfache_ExcelFormulare_erstellen\">Zum Artikel &#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Outlook: E-Mails nach Eingang verarbeiten Die verschiedenen Klassen von Outlook bieten eine ganze Reihe von Ereignissen an. Diese werden durch unterschiedliche Aktionen ausgel\u00f6st. Eine dieser Aktion ist das Eintreffen einer oder mehrerer neuer E-Mails. Dieses<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","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":""},"yst_prominent_words":[],"class_list":["post-88042022","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88042022","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=88042022"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88042022\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=88042022"}],"wp:term":[{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=88042022"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}