Wofür benutzt man VBA in Word und Excel? Was kann man damit machen!?

5 Antworten

Was man damit machen kann:

VBA ist zum einen eine Turing-vollständige Programmiersprache (man kann damit alles berechnen, was man überhaupt mit einem Computerprogramm berechnen kann), und es ist eine strukturierte (ja, auch ein BASIC kann strukturiert sein!) sowie objekt- und ereignisorientierte Programmiersprache. Außerdem kann man damit auf das Dateisystem direkt zugreifen.

Was die Objektstruktur betrifft, ist es auf der einen Seite weniger umfangreich als VB6 (dem es sehr, sehr ähnlich ist, der größte Teil des Codes ist 1:1 zwischen den Sprachen übertragbar), auf der anderen Seite verfügt es über die komplette Objektstruktur der Anwendung, in die es eingebettet ist.

Dadurch kann man mit VBA alles machen, was man auch mit Tastatur, Maus, internen Funktionen und Menüpunkten in der zugehörigen Anwendung machen kann, und noch einiges darüber hinaus. Und man braucht nur noch eine einzige Aktion auszuführen, um eine Kette von Aktionen (Dutzende, Hunderte, Zigtausende und mehr) in kürzestmöglicher Zeit ausgeführt zu bekommen, die man sonst einzeln über Maus und Tastatur anstoßen müsste, und auch automatisch prüfen, ob eine Wiederholungsaufgabe abgearbeitet ist.

Diese Wiederholungen, Prüfungen und das "Darüber hinaus" sind die Gründe, warum VBA eingesetzt wird.

Dass man mit VBA fast alles machen kann, was man auch mit VB (eine vollständig ausgewachsene Programmiersprache) machen kann, macht VBA-"Makros" (so nennt man VBA-Programme und -Programmbestandteile) andererseits auch so gefährlich, dass sie inzwischen nur noch mit viel Mühe und ggf. Administrator-Erlaubnis ausführbar sind.

-----

(Leider gibt es soweit ich weiß bisher noch keine "abgespeckte" "sichere" Teilsprache von VBA, die z. B. in Excel z. B. nicht auf das Dateisystem zugreifen und keine Endlosschleifen ausführen kann, aber z. B. über Zellbereiche iterieren und Formeln, Zellformate u. ä. ändern kann.)

Das ist jetzt sehr allgemein gefragt. Am Ende ist das eine Programmierspreche mit der du die Officeanwendung steuern kannst und so individuelle Automatisierungen oder Funktionen bereitstellen kannst.

Was machst du denn bislang z.B. mit Excel?

Um etwas Fleisch an die Sache zu bringen: Ich hab mal als Chemiker mithilfe einer Atomgewichtstabelle ein großes Makro geschrieben, das nicht nur Molekulargewichte ausrechnete, sondern auch Formeln so darstellte, dass der Index tiefgestellt und auf lesbar wiedervergrößert worden war. Wenn ein Molekularpartikel gelistet war (zB als Citr, Ace, Succ, Sacch,...) konnte man auch diese auswerten , zB K2HCitr x H2O wurde richtig geschrieben und berechnet, sogar rotes Blutlaugensalz, wenn man es als Formel K3[Fe(CN)6] eingab. Ein davon abgeleitetes Makro stellte auch in Word diese Formeln richtig dar. Berechnet wurde da nichts, aber das Makro erkannte, ob mitten im Text solche Formeln auftauchten, die es dann formatierte. ZB fürs Schreiben von Laborprotokollen oder Doktorarbeiten. (gab auch ein paar Störfaktoren, wenn zB Rechtsbegriffe wie zB Gesetz$7, was als Formel interpretiert wurde. Und nur ganzzahlige Indices waren erlaubt (später unvollkommen verbessert)

Leider hat das Word-Makro nach einem Upgrade von Word dann nicht mehr getan, das xl-µ hab ich zum letzten Mal in xl2003 noch in Aktion gehabt.

In xl hab ich lange Zeit sowas wie einen Versionsmanager (in xl heißt das Szenario, der Name stammt noch aus Lotus-123, wo ich sowas zuerst betrieb) programmiert: Da mir der eingebaute Mgr schon bei 20 verschiedenen Versionsfeldern à ca 1000 Zellen die Datei sprengte, wurden die (aussagekräftig benannten)Versionsfelder in vielen speziellen Dateien gespeichert, von dort automatisch geholt, dort auch geändert oder neu angelegt (es handelte sich um komplexe Versuchsrezepte). Jeweils über Abfrageboxen angewählt (die zugehörige Datei geöffnet) und von dort in eine Rechendatei eingespeist, in der ich mich dann auf die eigentlichen Aufgaben konzentrieren konnte. Hat mir bis zu meiner Pensionierung wertvolle Dienste geleistet.

Es gibt aber auch ganz kleine Makros: zB eines, das eine Einzelformel als Text darstellt (ist in xl ja nur eine Option für alle Formeln eines Blattes). Oder eine als Text geschriebene Formel wieder aktiviert.)

u.v.a.m.

Ich muss dich aber warnen: du steckst eine Unmenge Zeit in sowas rein!

Grundsätzlich werden damit Vorgänge, die immer wieder auf die gleiche Weise zu erledigen sind automatisiert.
z.B: Wochenberichterstellung im Controlling. Ablage / Mail als PDF. Erstellung einer zugehörigen PowerPoint für das zugehörige Meeting.


Aber wie aus den Antworten bereits hervorgeht kann man alles mögliche Programmieren. Meine persönlichen eigenen Highlights:
DJ Software, Internet Explorer für meine Zwecke fernsteuern.

Was möchtest Du wissen?