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 |
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 |