Was genau sind Makros bei Word?

...komplette Frage anzeigen

7 Antworten

Hallo,

Makro ist die eingedeutschte Schreibweise der englischen Kurzform für macroinstruction (dt. etwa: Großbefehl). Dabei handelt es sich um Befehlsfolgen, die automatisiert ablaufen, sobald ein Makro ausgeführt wird.

Die Makroprogrammierung basiert auf der Skriptsprache VBA (Visual Basic for Applications). Es gibt eine Unmenge an Befehlen, je nachdem, was du eben machen willst bzw. was das Makro erledigen soll.

Dazu gibt es Bücher, die unterschiedliche Befehle anhand von gängigen Beispielen erklären.

Wenn du die Makroprogrammierung wirklich lernen willst, würde ich dir empfehlen, dir ein solches Buch zu besorgen. Wichtig: Das Buch sollte
sich schon direkt auf die VBA-Programmierung in Word beziehen,
da die Befehle für die einzelnen Officeprogramme unterschiedlich sind. Wenn du also verschiedene Excel-Befehle kennst, sind diese nicht
zwangsweise in Word anwendbar und umgekehrt. Das heißt: Makros funktionieren grundsätzlich anwendungsbezogen.

Ich habe ganz gute Erfahrungen mit diesem Buch gemacht (und ich habe damit von Anfang an auf Word 2010 programmiert):

Held, Bernd: Word VBA. VBA-Lösungen für Word 2000 bis 2007, München: Markt & Technik, 2009.

Leider ist das Buch heute meist vergriffen und nur noch schwer zu bekommen. Aber wie gesagt: Es gibt eine Unmenge von Word-VBA-Büchern!

Für Excel gibt es das Ganze mittlerweile sogar auf DVD, siehe z. B. diese hier:

https://www.amazon.de/Excel-2013-Grundlagen-systematische-Excel-Programmierung/dp/3990320645/

Der Rest ist weitestgehend Learning by Doing. Und dabei lernt man nie aus ;-) Natürlich ist es enorm hilfreich, dass es im Internet verschiedene Foren gibt, in der die Leute einem weiterhelfen können, wenn man nicht weiter weiß. Auch die einzelnen Befehle bzw. deren Syntax sind auf den entsprechenden Seiten von Microsoft zu finden.

Interessant sind Makros vor allem deshalb, weil man über diese auch Funktionen programmieren kann, die man über die von einer Anwendung  (z. B. Word) über die Schaltflächen und/oder Tastenkombinationen bereitgestellten Funktionen so gar nicht erreichen kann. So kann man beispielsweise im VBA-Editor ganz individuell Dialogfelder und Masken erstellen (sogenannte Userforms), auf deren Basis man individuell programmierte Routinen ausführen lassen kann.

Am Weitesten verbreitet ist die Makroprogrammierung – wie hier schon geschrieben wurde – im Zusammenhang mit Microsoft Excel, aber ich habe sie bisher meist in Bezug auf Word benutzt.

Die Makros, die ich über die Jahre in Word programmiert habe, erfüllen dabei ganz unterschiedliche Aufgaben, z. B.

  • Schnelle Fehlersuche und Korrektur bei immer wieder auftretenden Fehlerquellen im Zusammenhang mit wissenschaftlichen Arbeiten
  • Diverse Sonderfunktionen im Zusammenhang mit Fußnoten, die Word so nicht im Programm hat
  • Automatische Beschriftung, Formatierung, Erstellung und fortlaufende Nummerierung von Arbeitsblättern und Prüfungsangaben inklusive Errechnung und Erstellung der jeweiligen Punkteschlüssel für die Korrektur
  • Schnelle, automatische Erstellung von normgerechten Briefen
  • Erstellung und fortlaufende Nummerierung von Rechnungen
  • Schnelle Formatierung und Beschriftung von Bildern und Erstellung individueller, automatischer Abbildungsverzeichnisse mit Quellenangaben, wie sie die Abbildungsverzeichnisfunktion von Word nicht hinbekommt
  • Schnelle Eingabe unterschiedlicher Datumsformate und Zahlenangaben
  • Auslesen und Anzeige von Zelleninformationen und diverse Erleichterungen beim Rechnen mit Wordtabellen
  • Schnelle Umformatierung von kopierten Internettexten (z. B. von Wikipediaseiten)

und viele, viele mehr. Das soll dir hier als Beispiele dienen, was mit Makros alles möglich ist.

Makroprogrammierung macht (mir zumindest) enormen Spaß! Mir fallen quasi täglich Funktionen ein, die ich immer wieder im Zusammenhang mit meiner täglichen und beruflichen Arbeit mit Word gebrauchen kann. Wenn ich dann die Zeit finde, setze ich mich hin, und programmiere diverse Funktionen, die dann in dieser Form niemand anders zur Verfügung hat und die mir das Leben wirklich erleichtern.

Makroprogrammierung braucht aber auch enorm viel Zeit und teilweise eine hohe Frustrationstoleranz, wenn ein Makro mal einfach nicht laufen will und man den/die Fehler einfach nicht findet. Umso motivierender ist das Ganze, wenn man am Ende wieder eine enorm zeitsparende Funktion mehr hat und dabei wieder neue Befehle gelernt hat, die man vorher noch nicht kannte :-)

Dennoch lohnt sich Makroprogrammierung wirklich nur, wenn man Makros häufig brauchen kann, denn hier hat Iamiam vollkommen Recht, dessen Aussage ich voll und ganz unterschreiben würde:

Makros Programmieren ist interessant, aber eine Zeitsparkasse ohne Verzinsung, wenn man es nicht beruflich betreibt.

Gruß, BerchGerch

BerchGerch 05.08.2016, 16:02

Wow, vielen Dank für den Stern :-) Freut mich, dass dir meine Antwort so gut gefallen hat ;-)

Gruß, BerchGerch

0

Du kannst mit Makros vorgegebene Anweisungsfolgen ablaufen lassen. Die Sprache für Office-Anwendungen ist VBA und enthält spezifische Befehle für dort vorkommende Objekte/Handlungen. Die "Knöpfe" der Leisten führen ebenfalls solche Befehlsfolgen aus (tiefstellen, hochstellen, Farbe geben für Zeichen etc.)

VBA bezieht sich speziell auf die Anwendung, zB in xl gibt es das Objekt Zelle, erst innerhalb dieser die Characters(Gesamtliste der Zeichen des Zelltexts bzw eines/mehrere da draus), dann erst TextFont/Farbe/Stil usw.

Die Sprache muss man erlernen, der Einstieg geht aber schnell mit dem Makrorecorder, die Feinheiten dauern, perfekt wird man auch nach 20 Jahren Praxis nicht. Der Makrorecorder zeigt aber auch, wieviel bei jeder Eingabe gespeichert werden muss (das meiste kann man in der Praxis aber weglassen, weil voreingestellt)

Makros heißen Sub Name() (für xl-Subroutine). Sie können auch als Makrofunktion angelegt sein (heißt dann Function Name() ). Sie können sehr einfach sein, zB zeigt Dir folgende µFunktion in xl die Formeln einer Zelle (auch lange Formelverschachtelungen) in englisch:

  • Function FormelEN(Ort as Range)
  • FormelEN = Ort.Formula
  • End Function

Wenn du den Code im Kontextmenü des Blattnamens öffnest, ein (neues) Modul einfügst und das dort einkopierst + speicherst, findest du das in Formeln, Benutzerdefiniert und kannst es dort aufrufen oder =FormelEN(Bezugszelle) eingeben. Probiers ruhig aus.

noch ein Beispiel:

  • Sub ErgebnisPlusFormelDE()
  • Activecell.offset(0, 1).value = Activecell.value & " " & Activecell.Formulalocal
  • End sub

schreibt das Formelergebnis plus Leerzeichen plus deutscheFormel (sofern dt. xl) in die Zelle rechts neben der ausgewählten.

Wenn Du hier öfter mal reinschaust, siehst du aber auch sehr komplizierte oder zumindest umfangreiche Beispiele.

In Word hab ich nur einmal ein recht umfangreiches makro geschrieben (das hat chemische Formeln analysiert, die Indices erkannt und tiefgesetzt, auch innerhalb längerer Fließtexte. zB: aus Ammoniumalaun NH4Al(SO4)2 * 12H2O die Indices 2 und 4 tiefgesetzt, die 12 belassen. Die Elementerkennung erfolgte über das Erkennen der Großschreibung von 1oder 2Buchstabengruppen plus folgender Zahl. Man muss also sehr genau wissen, wie man vorgehen könnte. In Word musste das µ aber in der Normal.dot gespeichert werden, die Sekretärinnen haben es aber nicht angewandt. (das war noch zu Zeiten, als es keine Knöpfe fürs hoch-/tiefstellen gab.

Seit langem schreibe ich nur noch Makros in xl und kenne die spezifischen Befehle für andere Anwendungen gar nicht mehr.

Makros Programmieren ist interessant, aber eine Zeitsparkasse ohne Verzinsung, wenn man es nicht beruflich betreibt. Ausserdem muss man im xlsm-Format speichern und erhält ständig nervige Warnhinweise über mögliche Gefahren durch "Inhalte", die man erst aktivieren muss und die unbedarfte Anwender verunsichern.
Ins Ausbildungsprogramm der Schulen kommen sie nur, weil sie den Anwender an xl binden: andere Tabellenkalkulationen haben eigene Makrosprachen und können mit VBA Makros nichts anfangen.

Im Gegensatz dazu werden auch komplizierte Formeln meist richtig ausgewertet, es wäre also besser, wenn die Schulen anstatt in Makros etwas tiefer in Formeln einsteigen würden: da ist nach Wenn() und SVerweis meistens Schluss, dabei gäbs da soviel mehr Nützliches...


Makros sind Skripte in VBA geschrieben, die besondere Funktionen bereitstellen um mit dem jeweiligen Office Programm direkt zu interagieren.

Am populärsten sind diese bei Excel. VBA für Excel bietet beispielsweise die Möglichkeit direkte Zellinhalte anzusprechen, in Word kann man Automatisiert Formatierungen vornehmen etc.

Andere Skriptsprachen bräuchten dafür erst besondere Biblotheken, die entsprechende Funktionen bieten.

Eine weitere Besonderheit ist der Makro Recorder. Macht macht ihn an, tätigt irgend eine Handlung im jeweiligen Programm, schaltet ihn ab und der Recorder hat die Handlung in VBA Befehle umgewandelt.

1900minga 01.08.2016, 00:02

Und wie programmiere ich Makros?

0

Makros sind im einfachsten Fall Aufzeichnungen (Macro Recorder: Menü Ansicht, Makros, Makro aufzeichnen), mit denen sich wiederkehrende Aufgaben vereinfachen lassen, z. B. Bewerbungsschreiben in Word. Neben der reinen Aufzeichnungsfunktion wäre da nützlich Einfügen, Schnellbausteine, Feld und dann die Feldfunktion "Fill-In" wählen an den Stellen, an denen man jedes Mal etwas anderes eingeben möchte.

Sieht man sich so etwas mit Makros Anzeigen, Bearbeiten an, kann man sich an VBA etwas herantasten.

Ein Makro ist das Automatisieren von sich wiederholenden Vorgängen. Wenn Du z.B. ein Rundschreiben erstellen musst und hast immer den gleichen Text, aber immer eine andere Adresse, kann man das über ein Makro steuern.

1900minga 01.08.2016, 00:01

Und wie erstelle ich Makros?
Muss man dafür die Computersprache beherrschen?

0
ballonfee 01.08.2016, 00:05
@1900minga

Nein, eine Computersprache brauchst Du nicht zu können. Bei mir ist das schon lange her, dass ich das gemacht hab, deshalb weiß ich das nicht mehr wie das geht. Probier doch einfach aus, das Makro anzuklicken und guck, ob man nicht durch das Programm geleitet wird. 

0
Ninombre 01.08.2016, 09:28
@1900minga

Mit dem Makrorekorder kann man zwar die Aktionen, die man per Hand durchführt, aufzeichnen und wieder abspielen. Wenn aber nicht genau das gleiche passieren soll, muss man in den generierten Programmcode eingreifen. Das ist sehr wohl eine Programmiersprache - Visual Basic for Applications

0

ich weßi auch nciht mehr ganz genau wie es war, aber du machst ein makro, damit du z-b- befehle damit machen kannst. also bei word oder acess,  oder wie das auch heißt die befeglsform "zurück" machst, dann musst das mit makros machen, damit du auch wirklich da was passiert wenn du auf "zurück " oder "weiter" klickst. ungefähr so, aber ist auch ganz grob 

Was möchtest Du wissen?