Welcome to Our Website

Erste Schritte mit VBA in Office

  • 14.08.2019
  • 25 Minuten zum Lesen
    • o
    • R
    • L
    • m
    • O
    • +4

Stehen Sie vor einer wiederholten Bereinigung von fünfzig Tabellen in Word? Möchten Sie, dass ein bestimmtes Dokument den Benutzer beim Öffnen zur Eingabe auffordert?, Haben Sie Schwierigkeiten herauszufinden, wie Sie Ihre Kontakte effizient von Microsoft Outlook in eine Microsoft Excel-Tabelle übertragen können?

Sie können diese Aufgaben ausführen und viel mehr erreichen, indem Sie Visual Basic for Applications (VBA) für Office verwenden—eine einfache, aber leistungsstarke Programmiersprache, mit der Sie Office-Anwendungen erweitern können.

Dieser Artikel richtet sich an erfahrene Office-Benutzer, die mehr über VBA erfahren möchten und einen Einblick in die Programmierung zur Anpassung von Office erhalten möchten.

Die Office – Suite von Anwendungen verfügt über eine Vielzahl von Funktionen., Es gibt viele verschiedene Möglichkeiten, Dokumente, E-Mails, Datenbanken, Formulare, Tabellen und Präsentationen zu erstellen, zu formatieren und zu bearbeiten. Die große Leistung der VBA-Programmierung in Office besteht darin, dass fast jede Operation, die Sie mit einer Maus, Tastatur oder einem Dialogfeld ausführen können, auch mit VBA ausgeführt werden kann. Wenn es einmal mit VBA gemacht werden kann, kann es genauso einfach hundertmal gemacht werden. (Tatsächlich ist die Automatisierung sich wiederholender Aufgaben eine der häufigsten Anwendungen von VBA in Office.,)

Über die Leistungsfähigkeit von VBA-Skripten hinaus können Sie mit VBA tägliche Aufgaben beschleunigen, um Office-Anwendungen neue Funktionen hinzuzufügen oder um den Benutzer Ihrer Dokumente auf eine für Ihre Geschäftsanforderungen spezifische Weise aufzufordern und mit ihm zu interagieren. Sie können beispielsweise einen VBA-Code schreiben, der eine Popup-Meldung anzeigt, die Benutzer daran erinnert, ein Dokument beim ersten Versuch, es zu speichern, auf einem bestimmten Netzlaufwerk zu speichern.

Dieser Artikel untersucht einige der Hauptgründe, die Leistung der VBA-Programmierung zu nutzen., Es untersucht die VBA-Sprache und die sofort einsatzbereiten Tools, mit denen Sie mit Ihren Lösungen arbeiten können. Schließlich enthält es einige Tipps und Möglichkeiten, um einige häufige Programmierfrustrationen und Fehltritte zu vermeiden.

Hinweis

Sie möchten Lösungen entwickeln, die die Office-Erfahrung auf mehreren Plattformen erweitern? Schauen Sie sich das neue Office-Add-Ins-Modell an. Office-Add-Ins haben im Vergleich zu VSTO-Add-Ins und-Lösungen einen geringen Platzbedarf, und Sie können sie mithilfe fast jeder Webprogrammiertechnologie wie HTML5, JavaScript, CSS3 und XML erstellen.,

Wann VBA verwendet werden soll und warum

Es gibt mehrere Hauptgründe, die VBA-Programmierung in Office in Betracht zu ziehen.

Automatisierung und Wiederholung

VBA ist effektiv und effizient, wenn es um sich wiederholende Lösungen für Formatierungs-oder Korrekturprobleme geht. Haben Sie beispielsweise jemals den Stil des Absatzes oben auf jeder Seite in Word geändert? Mussten Sie jemals mehrere Tabellen, die aus Excel eingefügt wurden, in ein Word-Dokument oder eine Outlook-E-Mail neu formatieren? Mussten Sie jemals dieselbe Änderung in mehreren Outlook-Kontakten vornehmen?,

Wenn Sie eine Änderung haben, die Sie mehr als zehn oder zwanzig Mal vornehmen müssen, kann es sich lohnen, sie mit VBA zu automatisieren. Wenn es sich um eine Änderung handelt, die Sie hunderte Male vornehmen müssen, ist dies sicherlich eine Überlegung wert. Fast jede Formatierungs-oder Bearbeitungsänderung, die Sie von Hand vornehmen können, kann in VBA vorgenommen werden.

Erweiterungen der Benutzerinteraktion

Manchmal möchten Sie Benutzer dazu ermutigen oder zwingen, mit der Office-Anwendung oder dem Dokument auf eine bestimmte Weise zu interagieren, die nicht Teil der Standardanwendung ist., Sie können beispielsweise Benutzer auffordern, bestimmte Maßnahmen zu ergreifen, wenn sie ein Dokument öffnen, speichern oder drucken.

Interaktion zwischen Office-Anwendungen

Müssen Sie alle Ihre Kontakte von Outlook nach Word kopieren und sie dann auf eine bestimmte Weise formatieren? Oder müssen Sie Daten aus Excel in eine Reihe von PowerPoint-Folien verschieben? Manchmal macht einfaches Kopieren und Einfügen nicht das, was Sie wollen, oder es ist zu langsam., Sie können die VBA-Programmierung verwenden, um mit den Details von zwei oder mehr Office-Anwendungen gleichzeitig zu interagieren und dann den Inhalt einer Anwendung basierend auf dem Inhalt einer anderen Anwendung zu ändern.

Dinge anders machen

VBA-Programmierung ist eine leistungsstarke Lösung, aber nicht immer der optimale Ansatz. Manchmal ist es sinnvoll, andere Wege zu nutzen, um Ihre Ziele zu erreichen.

Die entscheidende Frage ist, ob es einen einfacheren Weg. Berücksichtigen Sie vor Beginn eines VBA-Projekts die integrierten Tools und Standardfunktionalitäten., Wenn Sie beispielsweise eine zeitaufwändige Bearbeitungs-oder Layoutaufgabe haben, sollten Sie Stile oder Beschleunigerschlüssel verwenden, um das Problem zu lösen. Können Sie die Aufgabe einmal ausführen und sie dann mit STRG+Y (Wiederholen) wiederholen? Können Sie ein neues Dokument mit dem richtigen Format oder der richtigen Vorlage erstellen und dann den Inhalt in dieses neue Dokument kopieren?

Office-Anwendungen sind leistungsstark; Die Lösung, die Sie benötigen, ist möglicherweise bereits vorhanden. Nehmen Sie sich etwas Zeit, um mehr über Office zu erfahren, bevor Sie in die Programmierung springen.

Stellen Sie vor Beginn eines VBA-Projekts sicher, dass Sie Zeit für die Arbeit mit VBA haben., Programmierung erfordert Fokus und kann unvorhersehbar sein. Wenden Sie sich vor allem als Anfänger niemals der Programmierung zu, es sei denn, Sie haben Zeit, sorgfältig zu arbeiten. Der Versuch, ein „schnelles Skript“ zu schreiben, um ein Problem zu lösen, wenn eine Frist abläuft, kann zu einer sehr stressigen Situation führen. Wenn Sie in Eile sind, sollten Sie herkömmliche Methoden verwenden, auch wenn sie eintönig und sich wiederholend sind.

VBA Programming 101

Verwenden von Code, damit Anwendungen Dinge tun

Sie könnten denken, dass das Schreiben von Code mysteriös oder schwierig ist, aber die Grundprinzipien verwenden alltägliches Denken und sind ziemlich zugänglich., Microsoft Office-Anwendungen werden so erstellt, dass sie so genannte Objekte verfügbar machen, die Anweisungen erhalten können, ähnlich wie ein Telefon mit Schaltflächen, mit denen Sie mit dem Telefon interagieren. Wenn Sie eine Taste drücken, erkennt das Telefon die Anweisung und enthält die entsprechende Nummer in der Reihenfolge, die Sie wählen. In der Programmierung interagieren Sie mit der Anwendung, indem Sie Anweisungen an verschiedene Objekte in der Anwendung senden. Diese Objekte sind expansiv, aber sie haben ihre Grenzen., Sie können nur das tun, wofür sie bestimmt sind, und sie werden nur das tun, was Sie ihnen anweisen.

Betrachten Sie beispielsweise den Benutzer, der ein Dokument in Word öffnet, einige Änderungen vornimmt, das Dokument speichert und dann schließt. In der Welt der VBA-Programmierung macht Word ein Dokumentobjekt verfügbar. Mithilfe des VBA-Codes können Sie das Dokumentobjekt anweisen, Dinge wie Öffnen, Speichern oder Schließen auszuführen.

Im folgenden Abschnitt wird erläutert, wie Objekte organisiert und beschrieben werden.,

Das Objektmodell

Entwickler organisieren Programmierobjekte in einer Hierarchie, und diese Hierarchie wird als Objektmodell der Anwendung bezeichnet. Word verfügt beispielsweise über ein Anwendungsobjekt der obersten Ebene, das ein Dokumentobjekt enthält. Das Dokumentobjekt enthält Absatzobjekte usw. Objektmodelle spiegeln grob wider, was Sie in der Benutzeroberfläche sehen. Sie sind eine konzeptionelle Karte der Anwendung und ihrer Funktionen.

Die Definition eines Objekts wird als Klasse bezeichnet, sodass diese beiden Begriffe möglicherweise austauschbar verwendet werden., Technisch gesehen ist eine Klasse die Beschreibung oder Vorlage, die zum Erstellen oder Instanziieren eines Objekts verwendet wird.

Sobald ein Objekt vorhanden ist, können Sie es bearbeiten, indem Sie seine Eigenschaften festlegen und seine Methoden aufrufen. Wenn Sie das Objekt als Substantiv betrachten, sind die Eigenschaften die Adjektive, die das Substantiv beschreiben, und die Methoden sind die Verben, die das Substantiv animieren. Das Ändern einer Eigenschaft ändert eine gewisse Qualität des Aussehens oder Verhaltens des Objekts. Durch Aufrufen einer der Objektmethoden führt das Objekt eine Aktion aus.,

Der VBA-Code in diesem Artikel wird gegen eine Open Office-Anwendung ausgeführt, bei der viele der Objekte, die der Code manipuliert, bereits ausgeführt werden. zum Beispiel die Anwendung selbst, das Arbeitsblatt in Excel, das Dokument in Word, die Präsentation in PowerPoint, der Explorer und Ordnerobjekte in Outlook. Sobald Sie das grundlegende Layout des Objektmodells und einige wichtige Eigenschaften der Anwendung kennen, die Zugriff auf den aktuellen Status gewähren, können Sie diese Office-Anwendung mit VBA in Office erweitern und bearbeiten.,

Methoden

In Word können Sie beispielsweise die Eigenschaften ändern und die Methoden des aktuellen Word-Dokuments mithilfe der Eigenschaft ActiveDocument des Anwendungsobjekts aufrufen. Diese ActiveDocument-Eigenschaft gibt einen Verweis auf das Dokumentobjekt zurück, das derzeit in der Word-Anwendung aktiv ist. „Gibt einen Verweis auf „means“ gibt Ihnen Zugriff auf.“

Der folgende Code macht genau das, was er sagt; das heißt, er speichert das aktive Dokument in der Anwendung.,

Lesen Sie den Code von links nach rechts, “ In dieser Anwendung, mit dem Dokument durch ActiveDocument referenziert, rufen Sie die Save-Methode.“Beachten Sie, dass Speichern die einfachste Form der Methode ist; es erfordert keine detaillierten Anweisungen von Ihnen. Sie weisen ein Dokumentobjekt zum Speichern an und es erfordert keine weiteren Eingaben von Ihnen.

Wenn eine Methode mehr Informationen benötigt, werden diese Details Parameter genannt. Der folgende Code führt die SaveAs-Methode aus, für die ein neuer Name für die Datei erforderlich ist.,

Application.ActiveDocument.SaveAs ("New Document Name.docx")

Werte, die in Klammern nach einem Methodennamen aufgeführt sind, sind die Parameter. Hier ist der neue name für die Datei ein parameter für die SaveAs-Methode.

Eigenschaften

Sie verwenden dieselbe Syntax, um eine Eigenschaft festzulegen, die Sie zum Lesen einer Eigenschaft verwenden. Der folgende Code führt eine Methode aus, um Zelle A1 in Excel auszuwählen und dann eine Eigenschaft festzulegen, um etwas in diese Zelle einzufügen.

 Application.ActiveSheet.Range("A1").Select Application.Selection.Value = "Hello World"

Die erste Herausforderung in der VBA-Programmierung besteht darin, ein Gefühl für das Objektmodell jeder Office-Anwendung zu bekommen und die Objekt -, Methoden-und Eigenschaftensyntax zu lesen., Die Objektmodelle sind in allen Office-Anwendungen ähnlich, aber jedes ist spezifisch für die Art von Dokumenten und Objekten, die es manipuliert.

In der ersten Zeile des Code-Snippets befindet sich diesmal das Anwendungsobjekt Excel und dann das ActiveSheet, das Zugriff auf das aktive Arbeitsblatt bietet. Danach ist ein Begriff nicht so vertraut, Bereich, was bedeutet, “ Definieren Sie einen Bereich von Zellen auf diese Weise.“Der Code weist Range an, sich selbst mit nur A1 als definiertem Satz von Zellen zu erstellen. Mit anderen Worten, die erste Codezeile definiert ein Objekt, den Bereich, und führt eine Methode dagegen aus, um es auszuwählen., Das Ergebnis wird automatisch in einer anderen Eigenschaft der Anwendung namens Selection gespeichert.

Die zweite Codezeile setzt die Value-Eigenschaft der Selection auf den Text „Hello World“, und dieser Wert wird in Zelle A1 angezeigt.

Der einfachste VBA-Code, den Sie schreiben, erhält möglicherweise einfach Zugriff auf Objekte in der Office-Anwendung, mit der Sie arbeiten, und legt Eigenschaften fest. Sie können beispielsweise in Word auf die Zeilen in einer Tabelle zugreifen und deren Formatierung in Ihrem VBA-Skript ändern.,

Das klingt einfach, aber es kann unglaublich nützlich sein; Sobald Sie diesen Code schreiben können, können Sie die ganze Kraft der Programmierung nutzen, um dieselben Änderungen in mehreren Tabellen oder Dokumenten vorzunehmen oder sie gemäß einer Logik oder Bedingung vorzunehmen. Für einen Computer unterscheidet sich das Vornehmen von 1000 Änderungen nicht von 10, daher gibt es hier eine Größenordnung mit größeren Dokumenten und Problemen, und hier kann VBA wirklich glänzen und Ihnen Zeit sparen.,

Makros und der Visual Basic Editor

Nachdem Sie nun wissen, wie Office-Anwendungen ihre Objektmodelle verfügbar machen, möchten Sie wahrscheinlich versuchen, Objektmethoden aufzurufen, Objekteigenschaften festzulegen und auf Objektereignisse zu reagieren. Dazu müssen Sie Ihren Code an einem Ort und auf eine Weise schreiben, die Office verstehen kann. normalerweise mit dem Visual Basic-Editor. Obwohl es standardmäßig installiert ist, wissen viele Benutzer nicht, dass es sogar verfügbar ist, bis es auf der Multifunktionsleiste aktiviert ist.

Alle Office-Anwendungen verwenden das Menüband., Eine Registerkarte in der Multifunktionsleiste ist die Registerkarte Entwickler, auf der Sie auf den Visual Basic-Editor und andere Entwicklertools zugreifen. Da Office die Registerkarte Entwickler standardmäßig nicht anzeigt, müssen Sie sie wie folgt aktivieren:

Um die Registerkarte Entwickler

  1. Auf der Registerkarte Datei zu aktivieren, wählen Sie Optionen, um das Dialogfeld Optionen zu öffnen.

  2. Wählen Sie Menüband anpassen auf der linken Seite des Dialogfelds.

  3. Wählen Sie unter Befehle auswählen auf der linken Seite des Dialogfelds Beliebte Befehle aus.,

  4. Wählen Sie unter Anpassen der Multifunktionsleiste auf der rechten Seite des Dialogfelds die Option Hauptregisterkarten im Dropdown-Listenfeld und dann das Kontrollkästchen Entwickler aus.

  5. Wählen Sie OK.

Hinweis

In Office 2007 haben Sie die Registerkarte „Entwickler“ angezeigt, indem Sie die Schaltfläche „Office“, „Optionen“ und dann das Kontrollkästchen „Entwickler anzeigen“ in der Multifunktionsleiste aktivieren Beliebte Kategorie des Dialogfelds „Optionen“.

Nachdem Sie die Registerkarte Entwickler aktiviert haben, können Sie die Schaltflächen Visual Basic und Makros leicht finden.

Abbildung 1., Schaltflächen auf der Registerkarte Entwickler

Sicherheitsprobleme

Um Office-Benutzer vor Viren und gefährlichem Makrocode zu schützen, können Sie keinen Makrocode in einem Standard-Office-Dokument speichern, das eine Standarddateierweiterung verwendet. Stattdessen müssen Sie den Code in einer Datei mit einer speziellen Erweiterung speichern. Sie können beispielsweise keine Makros in einem Standard-Word-Dokument mit a speichern .docx-Erweiterung; stattdessen müssen Sie ein spezielles Word-Makro-fähiges Dokument mit einem verwenden .mit der docm-Erweiterung.

Wenn sie öffnen ein .,docm-Datei, Office-Sicherheit kann immer noch verhindern, dass die Makros im Dokument ausgeführt wird, mit oder ohne es Ihnen zu sagen. Untersuchen Sie die Einstellungen und Optionen im Trust Center für alle Office-Anwendungen. Die Standardeinstellung deaktiviert die Ausführung von Makros, warnt Sie jedoch davor, dass Makros deaktiviert wurden, und gibt Ihnen die Möglichkeit, sie für dieses Dokument wieder einzuschalten.

Sie können bestimmte Ordner festlegen, in denen Makros ausgeführt werden können, indem Sie vertrauenswürdige Speicherorte, vertrauenswürdige Dokumente oder vertrauenswürdige Publisher erstellen., Die portabelste Option ist die Verwendung vertrauenswürdiger Publisher, die mit digital signierten Dokumenten arbeiten, die Sie verteilen. Weitere Informationen zu den Sicherheitseinstellungen in einer bestimmten Office-Anwendung finden Sie im Dialogfeld Optionen, wählen Sie Trust Center und dann Trust Center-Einstellungen.

Hinweis

Einige Office-Anwendungen wie Outlook speichern Makros standardmäßig in einer Master-Vorlage auf Ihrem lokalen Computer., Obwohl diese Strategie die lokalen Sicherheitsprobleme auf Ihrem eigenen Computer reduziert, wenn Sie Ihre eigenen Makros ausführen, ist eine Bereitstellungsstrategie erforderlich, wenn Sie Ihr Makro verteilen möchten.

Makro aufnehmen

Wenn Sie auf der Registerkarte Entwickler die Schaltfläche Makro auswählen, wird das Dialogfeld Makros geöffnet, über das Sie auf VBA-Unterprogramme oder Makros zugreifen können Zugriff von einem bestimmten Dokument oder einer bestimmten Anwendung. Die Schaltfläche Visual Basic öffnet den Visual Basic-Editor, in dem Sie VBA-Code erstellen und bearbeiten.,

Eine weitere Schaltfläche auf der Registerkarte Entwickler in Word und Excel ist die Schaltfläche Makro aufzeichnen, die automatisch VBA-Code generiert, der die Aktionen reproduzieren kann, die Sie in der Anwendung ausführen. Record Macro ist ein großartiges Tool, mit dem Sie mehr über VBA erfahren können. Das Lesen des generierten Codes kann Ihnen einen Einblick in VBA geben und eine stabile Brücke zwischen Ihrem Wissen über Office als Benutzer und Ihrem Wissen als Programmierer bilden., Der einzige Nachteil ist, dass der generierte Code verwirrend sein kann, da der Makroeditor einige Annahmen über Ihre Absichten treffen muss und diese Annahmen nicht unbedingt genau sind.

Zum Aufzeichnen eines Makros

  1. Öffnen Sie Excel in einer neuen Arbeitsmappe und wählen Sie die Registerkarte Entwickler in der Multifunktionsleiste. Wählen Sie Makro aufnehmen und akzeptieren Sie alle Standardeinstellungen im Dialogfeld Makro aufnehmen, einschließlich Makro1 als Name des Makros und dieser Arbeitsmappe als Speicherort.

  2. Wählen Sie OK, um mit der Aufnahme des Makros zu beginnen. Beachten Sie, wie sich der Schaltflächentext ändert, um die Aufnahme zu stoppen., Wählen Sie diese Schaltfläche, sobald Sie die Aktionen abgeschlossen haben, die Sie aufzeichnen möchten.

  3. Wählen Sie Zelle B1 und geben Sie die klassische erste Zeichenfolge des Programmierers ein: Hallo Welt. Stoppen Sie die Eingabe und schauen Sie sich die Schaltfläche Aufnahme stoppen an; Es ist ausgegraut, da Excel darauf wartet, dass Sie den Wert in die Zelle eingeben.

  4. Wählen Sie Zelle B2, um die Aktion in Zelle B1 abzuschließen, und wählen Sie dann Aufnahme beenden.

  5. Wählen Sie Makros auf der Registerkarte Entwickler, wählen Sie Makro1, wenn es nicht ausgewählt ist, und wählen Sie dann Bearbeiten, um den Code von Makro1 im Visual Basic-Editor anzuzeigen.,

Abbildung 2. Makrocode im Visual Basic Editor

Wenn Sie sich den Code ansehen

Das erstellte Makro sollte dem folgenden Code ähnlich aussehen.

Sub Macro1()'' Macro1 Macro'' Range("B1").Select ActiveCell.FormulaR1C1 = "Hello World" Range("B2").SelectEnd Sub

Beachten Sie die Ähnlichkeiten mit dem früheren Code-Snippet, das Text in Zelle A1 ausgewählt hat, und die Unterschiede. In diesem Code wird Zelle B1 ausgewählt und dann die Zeichenfolge „Hello World“ auf die Zelle angewendet, die aktiviert wurde. Die Anführungszeichen um den Text geben einen Zeichenfolgenwert im Gegensatz zu einem numerischen Wert an.,

Denken Sie daran, wie Sie Zelle B2 ausgewählt haben, um die Schaltfläche Aufnahme beenden erneut anzuzeigen. Diese Aktion wird auch als Codezeile angezeigt. Der Makro-Recorder zeichnet jeden Tastendruck auf.

Die Codezeilen, die mit einem Apostroph beginnen und vom Editor grün gefärbt sind, sind Kommentare, die den Code erklären oder Sie und andere Programmierer an den Zweck des Codes erinnern. VBA ignoriert eine Zeile oder einen Teil einer Zeile, die mit einem einfachen Anführungszeichen beginnt. Das Schreiben klarer und angemessener Kommentare in Ihren Code ist ein wichtiges Thema, aber diese Diskussion fällt nicht in den Anwendungsbereich dieses Artikels., Nachfolgende Verweise auf diesen Code im Artikel enthalten diese vier Kommentarzeilen nicht.

Wenn der Makrorekorder den Code generiert, verwendet er einen komplexen Algorithmus, um die von Ihnen beabsichtigten Methoden und Eigenschaften zu bestimmen. Wenn Sie eine bestimmte Eigenschaft nicht erkennen, stehen Ihnen viele Ressourcen zur Verfügung. In dem von Ihnen aufgezeichneten Makro hat der Makrorekorder beispielsweise Code generiert, der auf die Eigenschaft FormulaR1C1 verweist. Nicht sicher, was das bedeutet?

Hinweis

Beachten Sie, dass Application object in allen VBA-Makros impliziert ist., Der von Ihnen aufgezeichnete Code funktioniert mit der Anwendung. am Anfang jeder Zeile.

Mithilfe der Entwicklerhilfe

Wählen Sie FormulaR1C1 im aufgezeichneten Makro und drücken Sie F1. Das Hilfesystem führt eine Schnellsuche aus, stellt fest, dass sich die entsprechenden Themen im Abschnitt Excel Developer der Excel-Hilfe befinden, und listet die Eigenschaft FormulaR1C1 auf. Sie können den Link auswählen, um mehr über die Eigenschaft zu lesen, aber bevor Sie dies tun, beachten Sie den Excel Object Model Reference Link am unteren Rand des Fensters., Wählen Sie den Link aus, um eine lange Liste von Objekten anzuzeigen, die Excel in seinem Objektmodell zur Beschreibung der Arbeitsblätter und ihrer Komponenten verwendet.

Wählen Sie eine davon aus, um die Eigenschaften und Methoden anzuzeigen, die für dieses bestimmte Objekt gelten, zusammen mit Querverweisen auf verschiedene verwandte Optionen. Viele Hilfeinträge haben auch kurze Codebeispiele, die Ihnen helfen können. Sie können beispielsweise den Links im Rahmenobjekt folgen, um zu sehen, wie ein Rahmen in VBA festgelegt wird.

Worksheets(1).Range("A1").Borders.LineStyle = xlDouble

Bearbeiten des Codes

Der Rahmencode sieht anders aus als das aufgezeichnete Makro., Eine Sache, die mit einem Objektmodell verwirrend sein kann, ist, dass es in diesem Beispiel mehr als eine Möglichkeit gibt, ein bestimmtes Objekt, Zelle A1, anzusprechen.

Manchmal ist der beste Weg, Programmierung zu lernen, kleinere Änderungen an einigen Arbeitscode zu machen und zu sehen, was als Ergebnis geschieht. Probieren Sie es jetzt. Öffnen Sie Macro1 im Visual Basic-Editor und ändern Sie den Code wie folgt.

Sub Macro1() Worksheets(1).Range("A1").Value = "Wow!" Worksheets(1).Range("A1").Borders.LineStyle = xlDoubleEnd Sub

Tipp

Verwenden Sie beim Arbeiten mit Code so viel wie möglich Kopieren und einfügen, um Tippfehler zu vermeiden.,

Sie müssen den Code nicht speichern, um ihn auszuprobieren, also kehren Sie zum Excel-Dokument zurück, wählen Sie Makros auf der Registerkarte Entwickler, wählen Sie Makro1 und dann Ausführen. Zelle A1 enthält jetzt den text Wow! und hat einen zweizeiligen Rand um ihn herum.

Abbildung 3. Ergebnisse Ihres ersten Makros

Sie haben gerade die Makroaufzeichnung, das Lesen der Objektmodelldokumentation und die einfache Programmierung kombiniert, um ein VBA-Programm zu erstellen, das etwas tut. Herzlichen Glückwunsch!

Hat nicht funktioniert? Lesen Sie weiter für debugging-Vorschläge in VBA.,

Programmiertipps und-tricks

Beginnen Sie mit Beispielen

Die VBA-Community ist sehr groß; Eine Suche im Web kann fast immer ein Beispiel für VBA-Code liefern, der etwas Ähnliches wie Sie tun möchten. Wenn Sie kein gutes Beispiel finden, versuchen Sie, die Aufgabe in kleinere Einheiten aufzuteilen und nach jedem dieser Einheiten zu suchen, oder denken Sie an ein häufigeres, aber ähnliches Problem. Beginnend mit einem Beispiel können Sie Stunden Zeit sparen.

Das bedeutet nicht, dass freier und durchdachter Code im Web auf Sie wartet., In der Tat könnte ein Teil des Codes, den Sie finden, Fehler oder Fehler haben. Die Idee ist, dass die Beispiele, die Sie online oder in der VBA-Dokumentation finden, einen Vorsprung geben. Denken Sie daran, dass das Erlernen der Programmierung Zeit und Gedanken erfordert. Bevor Sie es eilig haben, eine andere Lösung zur Lösung Ihres Problems zu verwenden, fragen Sie sich, ob VBA die richtige Wahl für dieses Problem ist.

Machen Sie ein einfacheres Problem

Die Programmierung kann schnell komplex werden. Besonders als Anfänger ist es wichtig, dass Sie das Problem auf die kleinstmöglichen logischen Einheiten aufteilen und dann jedes Stück isoliert schreiben und testen., Wenn Sie zu viel Code vor sich haben und verwirrt oder verwirrt sind, stoppen Sie und legen Sie das Problem beiseite. Wenn Sie auf das Problem zurückkommen, kopieren Sie einen kleinen Teil des Problems in ein neues Modul, lösen Sie diesen Teil, lassen Sie den Code funktionieren und testen Sie ihn, um sicherzustellen, dass er funktioniert. Dann fahren Sie mit dem nächsten Teil fort.

Fehler und Debugging

Es gibt zwei Haupttypen von Programmierfehlern: Syntaxfehler, die gegen die grammatikalischen Regeln der Programmiersprache verstoßen, und Laufzeitfehler, die syntaktisch korrekt aussehen, aber fehlschlagen, wenn VBA versucht, den Code auszuführen.,

Obwohl es frustrierend sein kann, Syntaxfehler zu beheben, sind sie leicht zu erkennen; Der Visual Basic-Editor piept und blinkt bei Ihnen, wenn Sie einen Syntaxfehler in Ihren Code eingeben.

Beispielsweise müssen Zeichenfolgenwerte in VBA von doppelten Anführungszeichen umgeben sein. Um herauszufinden, was passiert, wenn Sie stattdessen einfache Anführungszeichen verwenden, kehren Sie zum Visual Basic-Editor zurück und ersetzen Sie das “ Wow!“string im Codebeispiel mit‘ Wow!'(das heißt, das Wort ist in einfachen Anführungszeichen eingeschlossen). Wenn Sie die nächste Zeile auswählen, reagiert der Visual Basic-Editor., Der Fehler „Compile error: Expected: expression“ ist nicht so hilfreich, aber die Zeile, die den Fehler generiert, wird rot, um Ihnen mitzuteilen, dass Sie einen Syntaxfehler in dieser Zeile haben, und infolgedessen wird dieses Programm nicht ausgeführt.

Wählen Sie OK und ändern Sie den Text zurück zu “ Wow!“.

Laufzeitfehler sind schwieriger abzufangen, da die Programmiersyntax korrekt aussieht, der Code jedoch fehlschlägt, wenn VBA versucht, sie auszuführen.,

Öffnen Sie beispielsweise den Visual Basic-Editor und ändern Sie den Werteigenschaftsnamen in Ihrem Makro in ValueX, wodurch absichtlich ein Laufzeitfehler auftritt, da das Bereichsobjekt keine Eigenschaft namens ValueX hat. Kehren Sie zum Excel-Dokument zurück, öffnen Sie das Dialogfeld Makros und führen Sie Macro1 erneut aus. Sie sollten ein Visual Basic-Meldungsfeld sehen, das den Laufzeitfehler mit dem Text „Object unterstützt diese Eigenschaft der Methode nicht.“Obwohl dieser Text klar ist, wählen Sie Debug, um mehr zu erfahren.,

Wenn Sie zum Visual Basic-Editor zurückkehren, befindet er sich in einem speziellen Debug-Modus, der ein gelbes Highlight verwendet, um die fehlgeschlagene Codezeile anzuzeigen. Wie erwartet wird die Zeile mit der Eigenschaft ValueX hervorgehoben.

Sie können Änderungen am VBA-Code vornehmen, der ausgeführt wird, ändern Sie ValueX also zurück in den Wert und wählen Sie die kleine grüne Wiedergabetaste unter dem Debug-Menü. Das Programm sollte wieder normal laufen.

Es ist eine gute Idee, den Debugger bewusster für längere, komplexere Programme zu verwenden., Erfahren Sie zumindest, wie Sie Haltepunkte festlegen, um die Ausführung an einem Punkt zu stoppen, an dem Sie sich den Code ansehen möchten, wie Sie Uhren hinzufügen, um die Werte verschiedener Variablen und Eigenschaften während der Codeausführung anzuzeigen, und wie Sie den Code Zeile für Zeile durchlaufen. Diese Optionen sind alle im Debug-Menü verfügbar und ernsthafte Debugger-Benutzer merken sich normalerweise die zugehörigen Tastenkombinationen.,

Verwenden von Referenzmaterialien gut

Um die in die Office-Hilfe integrierte Entwicklerreferenz zu öffnen, öffnen Sie die Hilfe-Referenz in einer beliebigen Office-Anwendung, indem Sie das Fragezeichen in der Multifunktionsleiste auswählen oder F1 drücken. Wählen Sie dann rechts neben der Schaltfläche Suchen den Dropdown-Pfeil aus, um den Inhalt zu filtern. Wählen Sie Entwicklerreferenz. Wenn Sie das Inhaltsverzeichnis im linken Bereich nicht sehen, wählen Sie das kleine Buchsymbol aus, um es zu öffnen, und erweitern Sie dann die Objektmodellreferenz von dort.

Abbildung 5., Die Filterung der Entwicklerhilfe gilt für alle Office-Anwendungen

Die Zeit, die für das Durchsuchen der Objektmodellreferenz aufgewendet wird, zahlt sich aus. Nachdem Sie die Grundlagen der VBA-Syntax und des Objektmodells für die Office-Anwendung, mit der Sie arbeiten, verstanden haben, wechseln Sie von der Vermutung zur methodischen Programmierung.

Natürlich ist das Microsoft Office Developer Center ein hervorragendes Portal für Artikel, Tipps und Community-Informationen.,

Foren und Gruppen durchsuchen

Alle Programmierer bleiben manchmal stecken, selbst nachdem sie jeden Referenzartikel gelesen haben, können sie nachts Schlaf finden und verlieren, wenn sie über verschiedene Möglichkeiten nachdenken, ein Problem zu lösen. Glücklicherweise hat das Internet eine Gemeinschaft von Entwicklern gefördert, die sich gegenseitig bei der Lösung von Programmierproblemen helfen.

Jede Suche im Web nach“ office developer forum “ offenbart mehrere Diskussionsgruppen. Sie können auf „Office Development“ oder eine Beschreibung Ihres Problems suchen Foren zu entdecken, Blog-Posts, und Artikel sowie.,

Wenn Sie alles getan haben, um ein Problem zu lösen, haben Sie keine Angst, Ihre Frage in ein Entwicklerforum zu stellen. Diese Foren begrüßen Beiträge von neueren Programmierern und viele der erfahrenen Entwickler sind froh zu helfen.

Das Folgende sind einige Punkte der Etikette zu folgen, wenn Sie zu einem Entwickler-Forum posten:

  • Bevor Sie posten, schauen Sie auf der Website für eine FAQ oder für Richtlinien, die Mitglieder möchten, dass Sie folgen. Stellen Sie sicher, dass Sie Inhalte veröffentlichen, die mit diesen Richtlinien und im richtigen Bereich des Forums übereinstimmen.,

  • Fügen Sie ein klares und vollständiges Codebeispiel hinzu und erwägen Sie, Ihren Code zu bearbeiten, um ihn für andere zu klären, wenn er Teil eines längeren Codeabschnitts ist.

  • Beschreiben Sie Ihr Problem klar und prägnant und fassen Sie alle Schritte zusammen, die Sie zur Lösung des Problems unternommen haben. Nehmen Sie sich Zeit, um Ihren Beitrag so gut wie möglich zu schreiben, besonders wenn Sie nervös sind oder es eilig haben. Präsentieren Sie die Situation auf eine Weise, die für die Leser beim ersten Lesen der Problemaussage sinnvoll ist.

  • Seien Sie höflich und drücken Sie Ihre Wertschätzung aus.,

Weiter mit der Programmierung

Obwohl dieser Artikel kurz ist und nur die Oberfläche von VBA und Programmierung zerkratzt, ist es hoffentlich genug, um Ihnen den Einstieg zu erleichtern.

In diesem Abschnitt werden einige weitere wichtige Themen kurz erläutert.

Variablen

In den einfachen Beispielen in diesem Artikel haben Sie Objekte manipuliert, die die Anwendung bereits erstellt hatte. Möglicherweise möchten Sie eigene Objekte erstellen, um Werte oder Verweise auf andere Objekte zur temporären Verwendung in Ihrer Anwendung zu speichern. Diese werden Variablen genannt.,

Um eine Variable in VBA zu verwenden, muss VBA mithilfe der Dim-Anweisung mitteilen, welchen Objekttyp die Variable darstellt. Sie legen dann den Wert fest und verwenden ihn zum Festlegen anderer Variablen oder Eigenschaften.

 Dim MyStringVariable As String MyStringVariable = "Wow!" Worksheets(1).Range("A1").Value = MyStringVariable

Verzweigung und Schleife

Die einfachen Programme in diesem Artikel führen jeweils eine Zeile von oben nach unten aus. Die wirkliche Macht in der Programmierung kommt von den Optionen, die Sie haben, um zu bestimmen, welche Codezeilen auszuführen, basierend auf einer oder mehreren Bedingungen, die Sie angeben. Sie können diese Funktionen noch weiter erweitern, wenn Sie eine Operation viele Male wiederholen können., Der folgende Code erweitert beispielsweise Macro1.

Geben Sie den Code ein oder fügen Sie ihn in den Visual Basic-Editor ein und führen Sie ihn aus. Befolgen Sie die Anweisungen im angezeigten Meldungsfeld und ändern Sie den Text in Zelle A1 von Wow! zu Ja! und führen Sie es erneut aus, um die Kraft des Schleifens zu sehen. Dieses Code-Snippet demonstriert Variablen, Verzweigungen und Schleifen. Lesen Sie es sorgfältig durch, nachdem Sie es in Aktion gesehen haben, und versuchen Sie festzustellen, was passiert, wenn jede Zeile ausgeführt wird.

Alle meine Office-Anwendungen: Beispielcode

Hier sind ein paar Skripte zum Ausprobieren; Jedes löst ein echtes Office-Problem.,

Erstellen Sie eine E-Mail in Outlook

Sub MakeMessage() Dim OutlookMessage As Outlook.MailItem Set OutlookMessage = Application.CreateItem(olMailItem) OutlookMessage.Subject = "Hello World!" OutlookMessage.Display Set OutlookMessage = NothingEnd Sub

Beachten Sie, dass es Situationen gibt, in denen Sie E-Mails in Outlook automatisieren möchten.

Leere Zeilen in einem Excel-Arbeitsblatt löschen

Beachten Sie, dass Sie eine Spalte mit Zellen auswählen und dieses Makro ausführen können, um alle Zeilen in der ausgewählten Spalte mit einer leeren Zelle zu löschen.

Leere Textfelder in PowerPoint löschen

Sub RemoveEmptyTextBoxes() Dim SlideObj As Slide Dim ShapeObj As Shape Dim ShapeIndex As Integer For Each SlideObj In ActivePresentation.Slides For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1 Set ShapeObj = SlideObj.Shapes(ShapeIndex) If ShapeObj.Type = msoTextBox Then If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then ShapeObj.Delete End If End If Next ShapeIndex Next SlideObjEnd Sub

Beachten Sie, dass dieser Code alle Folien durchläuft und alle Textfelder löscht, die keinen Text enthalten., Die count-Variable dekrementiert anstelle von Inkrementen, da jedes Mal, wenn der Code ein Objekt löscht, dieses Objekt aus der Sammlung entfernt wird, wodurch die Anzahl reduziert wird.

Kopieren Sie einen Kontakt aus Outlook nach Word

Sub CopyCurrentContact() Dim OutlookObj As Object Dim InspectorObj As Object Dim ItemObj As Object Set OutlookObj = CreateObject("Outlook.Application") Set InspectorObj = OutlookObj.ActiveInspector Set ItemObj = InspectorObj.CurrentItem Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)End Sub

Beachten Sie, dass dieser Code den aktuell geöffneten Kontakt in Outlook in das geöffnete Word-Dokument kopiert. Dieser Code funktioniert nur, wenn in Outlook derzeit ein Kontakt zur Überprüfung geöffnet ist.

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder dieser Dokumentation?, Bitte beachten Sie den VBA-Support und das Feedback von Office, um Informationen darüber zu erhalten, wie Sie Unterstützung erhalten und Feedback geben können.

Schreibe einen Kommentar

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