15. Makros - Automatisierung von Routineaufgaben mittels Makros

Bei der Arbeit mit Microsoft Excel werden Sie feststellen, dass sich bestimmte Aufgaben häufig wiederholen.
Solche regelmäßigen Aufgaben wie das Aktualisieren einer Umsatzübersicht, das Einzeichnen von Daten in ein Diagramm oder das Zuweisen bestimmter Formate, erfordern meist immer gleiche Aktionen und Befehlsfolgen. Viele dieser Aufgaben können Sie mit der mächtigen Programmiersprache Visual Basic für Microsoft Excel automatisieren, wodurch Sie Mühe und Zeit sparen.
Sie benötigen keine Programmiererfahrung, um mit der Arbeit mit Visual Basic zu beginnen. Microsoft Excel verfügt über einen Makro-Recorder, ein integriertes Werkzeug, das den Visual Basic-Code für Sie erzeugt.

Vereinfachen von Aufgaben mit Makros

In Microsoft Excel können Aufgaben durch Makros automatisiert werden. Ein Makro (Prozedur) ist eine mit Namen versehene Anweisungsfolge, die unter diesem Namen aufgerufen wird.
Der Inhalt der Prozedur ist im Vereinbarungsteil unter der Bezeichnung --- Sub --- festzulegen. Prozeduren können wiederum Prozeduren enthalten und aufrufen.
Eine Prozedur wird durch nennen des Prozedurnamens und gegebenenfalls Aufzählen der übergebenen Parameter mit Variablentyp aufgerufen.

Durch das Aufzeichnen von Makros können Sie Microsoft Excel auf Ihre eigenen Bedürfnisse zuschneiden und noch effizienter arbeiten.
Jede Folge von Aktionen, die Sie durchführen, kann aufgezeichnet werden. Anschließend können Sie den Makro abspielen oder ausführen, um die aufgezeichneten Aktionen automatisch zu wiederholen. Nachdem Sie einen Makro aufgezeichnet haben, können Sie ihn auch einem Menübefehl oder einer Schaltfläche zuweisen. Durch Wählen des Menübefehls bzw. Klicken auf die Schaltfläche, können Sie den Makro dann ausführen.

Einsatzmöglichkeiten für Makros

Sie sollten das Aufzeichnen eines Makros immer in Erwägung ziehen, wenn Sie bemerken, dass Sie regelmäßig die gleichen Tastenfolgen eingeben, die gleichen Befehle wählen oder die gleiche Aktionsfolge durchführen. Folgende alltägliche Aufgaben bieten sich beispielsweise für die Automatisierung durch Makros an:
- Das Öffnen einer Gruppe von Arbeitsmappen.
- Das Drucken mehrerer Zellbereiche.
- Das Öffnen einer Datenbank, das Sortieren der Daten, das Erstellen eines Berichts und das Schließen der Datenbank.
- Das Erstellen eines neuen Tabellenblattes mit bestimmten Überschriften, angepassten Spaltenbreiten und speziellen Formaten.

15.1 Vorgehensweise bei der Aufzeichnung:

15.2. Organisieren der Makro - Ausführung

a) Wählen Sie EXTRAS | MAKRO | MAKROS und wählen Sie das Makro aus dem Listenfeld aus


b) ausführen über die vereinbarte Tastenkombination



c) Organisieren des Aufrufs in der Menü- oder Symbolleiste über EXTRAS | ANPASSEN



d) an Grafikelemente bzw. Formularelemente anbinden (Kontextmenü)

15.3 Auto - Makros

Makro-Name   Aktion
Auto_Open   wird beim Öffnen einer Mappe ausgeführt
Auto_Close   wird beim Schließen einer Mappe ausgeführt
Auto_Activate   wird bei der Aktivierung eines Tabellenfensters ausgeführt
Auto_Deactivate   wird bei der Deaktivierung eines Tabellenfensters ausgeführt



15.4. Beispielquelltexte

Makro zum Wechseln zwischen Abeitsblättern

Sub Makro2()
  Sheets("Tabelle1").Select
  Range("A11").Select
End Sub

Makro zum automatischen Erstellen von Überschriften

Sub Überschrifterstellen()
  ÜberschriftText = InputBox( Prompt:=" Geben Sie die Überschrift ein.", Default:="Umsätze west")
  ActiveCell.FormulaR1C1 = ÜberschriftText

  With
Selection.Font
    .Name = "Times New Roman"
    .FontStyle = "Fett kursiv"
    .Size = 20
 
End With
  Selection.Borders(xlBottom).LineStyle = xlDouble
  ColorIndex = xlAutomatic
  Selection.EntireColumn.AutoFit
End Sub

Makro zum Ein- und Ausblenden der Gitternetzlinien

Sub GitternetzlinienFestlegen2()
  ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines
End Sub



Makro zur Werteeingaben über Eingabeboxen

Sub Ton()
  Signalzahl = InputBox(Prompt:=" Geben Sie die Signalzahl ein.", Default:="3")
End Sub

Makros mit Parameterübergabe am Beispiel Bubble-Sort

Sub TauscheZellen(zellbez1, zellbez2)
  Temp = zellbez1.Value
  zellbez1.Value = zellbez2.Value
  zellbez2.Value = Temp
End Sub

Makros mit Parametern können nur durch einen erneuten Aufruf ausgeführt werden.

Sub Tausch()
  TauscheZellen Sheets("tabelle1").Range("A2"), Sheets("tabelle1").Range("A4")
End Sub

Makro Auto_Open zum Anpassen der Tabellengrösse an die Bildschirmauflösung

Sub Auto_Open()
  Sheets("Tabelle").Select
  Range("A1:H1").Select
  ActiveWindow.Zoom = True
  Range("A1").Select

End Sub

'Das einzurichtende Tabellenblatt auswählen
'Hier wird die Breite bestimmt
'Entspricht der Zoomstufe "Markierung"
'Damit die Markierung "verschwindet"



Makro zum zoomen einer Zellenauswahl

Sub AutomaticZoom()

  If
TypeName(ActiveSheet) <> "Worksheet" Then
    Beep

    Exit Sub
  End If

  If
Selection.Cells.Count > 1 Then
    ActiveWindow.Zoom = True
    MsgBox ("Habe Fenster auf optimale Größe gezoomt")

    Else
    ActiveWindow.Zoom = 100
  End If

End Sub

Makro zum Verschieben des aktiven Blattes an Position 1 (Serienbrief)

Sub Blattvoranstellen()
  ActiveSheet.Move Before:=Sheets(1)
  ActiveWorkbook.Save
End Sub


5 3 4