Das MS-Excel-Objektmodell

Transcription

Das MS-Excel-Objektmodell
2
easy
know-how
MS-Excel
Programmieren mit
Visual Basic for Applications
“Investition in Wissen zahlt die besten Zinsen”
Benjamin Franklin
easy2know-how – Erhard Closs, Ihr PC-Coach, Tel.: 089/ 910 72 813, Fax.: 089/ 910 72 813
 Dieses Werk ist urheberrechtlich geschützt.
Alle dadurch begründeten Rechte, insbesondere der Nachdruck, die Übersetzung, die Wiedergabe auf
photomechanischen oder ähnlichen Wegen, die Speicherung und Verarbeitung mit Hilfe der EDV
bleiben auch auszugsweise dem Urheber vorbehalten.
MS Excel – Visual Basic for Applications
3
Inhaltsverzeichnis
Modul 1: Erstellen und Verwenden von Makros ..............................................................................................
Makros aufzeichnen ........................................................................................................................................
Makros ausführen lassen ..................................................................................................................................
Menübefehle und Symbolleisten anpassen ......................................................................................................
Deutsch oder Englisch? ....................................................................................................................................
Zusammenfassen und Vertiefen: Erstellen und Verwenden von Makros ..........................................................
Modul 2: Das MS-Excel-Objektmodell ..........................................................................................................
Überblick über das MS-Excel-Objektmodell .................................................................................................
Methoden und Eigenschaften von Arbeitsmappen .........................................................................................
Methoden und Eigenschaften von Arbeitsblättern ..........................................................................................
Zugriff auf Zeilen, Spalten und Zellbereiche .................................................................................................
Methoden und Eigenschaften von Zellbereichen ...........................................................................................
Zusammenfassen und Vertiefen: Das MS-Excel Objektmodell ......................................................................
4
5
6
7
8
9
10
11
12
13
14
15
16
Modul 3: Zusammenarbeit von VBA und Excel ............................................................................................. 17
Ereignisprozeduren ........................................................................................................................................ 18
Verwenden von MS-Excel-Funktionen in VBA ............................................................................................... 19
Erstellen benutzerdefinierter Funktionen ....................................................................................................... 20
Zusammenfassen und Vertiefen: Zusammenarbeit von VBA und Excel ......................................................... 21
Modul 4: Einsatz von Steuerelementen in Excel-Tabellenblättern ................................................................
Verwenden von Drehfeld oder Bildlaufleiste zur Werteingabe ......................................................................
Einsatz von Kontrollkästchen und Optionsfeldern ..........................................................................................
Verwenden von Listen- und Kombinationsfeldern ..........................................................................................
Zusammenfassen und Vertiefen: Einsatz von Steuerelementen in Excel-Tabellenblättern .............................
22
23
24
25
26
Wichtige Tastenkombinationen ..................................................................................................................... 27
Index ............................................................................................................................................................. 28
MS Excel – Visual Basic for Applications
4
Modul 1
Erstellen und Verwenden von Makros
Wie kann ich Makros in Excel aufzeichnen? Wie kann ich einem Makro ein Tastenkürzel zuweisen? Wie
kann ich Makros ausführen lassen? Wie kann ich Menübefehle und Symbolleisten anpassen? Wie
kann ich Makros in Symbolleisten einbinden? In welcher Sprache sollte man Makros programmieren?
In diesem Modul werden folgende Themen behandelt:
• Makros aufzeichnen
• Makros ausführen lassen
• Menübefehle und Symbolleisten anpassen
• Deutsch oder Englisch?
Lernziel
Der Anwender lernt mit Makros umzugehen und die Benutzeroberfläche von Excel anzupassen.
Voraussetzungen
Gute Excel-Anwender-Kenntnisse, Umgang mit Menüs und Symbolleisten, VBA-Kenntnisse
MS Excel – Visual Basic for Applications
5
Makros aufzeichnen
Wie kann ich Makros in Excel aufzeichnen? Wie weise ich einem Makro ein Tastenkürzel zu? Was
bedeutet relative Aufzeichnung?
-
Abb.1: Optionen beim Aufzeichnen von Makros
Nicht immer muß man Makros selbst programmieren, man kann sie auch einfach
aufzeichnen. Um die Makroaufzeichnung zu starten, wählt man im Menü Extras –
Makro – Aufzeichnen... Im daraufhin erscheinenden Dialogfeld werden die folgenden
Optionen festgelegt:
Aufzeichnen
Makroname:
Optionen
Der Name des neu aufzuzeichnenden Makros. In einer Arbeitsmappe darf der gleiche Makroname kein zweites Mal vorkommen.
Tastenkombination: Eine beliebige Taste, die zusammen mit STRG das Makro später
startet. Um Kombinationen mit STRG + UMSCHALT einzugeben, schreibt man Großbuchstaben.
Makro speichern in: Diese Arbeitsmappe speichert das Makro in der gerade aktiven
Arbeitsmappe. Neue Arbeitsmappe erzeugt eine neue Arbeitsmappe und speichert das Makro dort. Persönliche Makroarbeitsmappe speichert das Makro in der Mappe PERSONL.XLS
im Verzeichnis XLSTART.
Beschreibung:
Ein beliebiger Text, der in das Makro automatisch als Kommentar eingefügt wird.
Sobald die Schaltfläche Ok angeklickt wird, startet die Makroaufzeichnung. Alle
Tätigkeiten, die in Excel vorgenommen werden, werden automatisch aufgezeichnet.
Währenddessen wird die Symbolleiste Aufzeichnung beenden eingeblendet. Mit dem
Symbol Aufzeichnung beenden wird die Aufzeichnung beendet und das Makro
gespeichert.
Aufzeichnung beenden
Auf der Symbolleiste Aufzeichnung beenden befindet sich außerdem das Symbol Relativer Bezug. Ist
dieses aktiviert, können Sie alle Zellbezüge relativ zur Startposition aufzeichnen. Ansonsten startet das
Makro, wenn Sie es wiedergeben, immer in der gleichen Zelle und nicht dort, wo der Zellcursor steht.
MS Excel – Visual Basic for Applications
6
Makros ausführen lassen
Unter welchen Bedingungen kann ich VBA-Prozeduren wiedergeben? Wo speichere ich am besten
Makros?
-
Abb.2: Makros wiederfinden
VBA-Prozeduren können unter folgenden Bedingungen als Makros wiedergegeben
werden (aufgezeichnete Makros erfüllen in jedem Fall diese Bedingungen):
Makros
• Es handelt sich um Prozeduren, die mit dem Schlüsselwort Sub deklariert wurden.
• Die Prozeduren müssen öffentlich, also mit Public deklariert worden sein.
• Die Prozedur darf nach keinen Parametern verlangen.
• Die Arbeitsmappe, die das Makro enthält, muß geöffnet sein.
Alle Arbeitsmappen, die im Verzeichnis XLSTART abgelegt werden, werden beim
Start von Excel automatisch geladen. In ihnen lassen sich Makros ablegen, die in jeder
Arbeitsmappe zur Verfügung stehen sollen.
XLSTART
Makros, die nur in einer bestimmten Arbeitsmappe benötigt werden, speichert man
am besten ebendort. Makros, die fallweise für verschiedene Mappen benötigt werden,
speichert man am besten in einer eigenen Mappe, die man bei Bedarf öffnet, wodurch
die darin gespeicherten Makros zur Verfügung stehen.
Um ein Makro aufzurufen, wählt man aus dem Menü Extras–Makro–Makros... Im
erscheinenden Dialog kann man das jeweils ausgewählte Makro Ausführen, Bearbeiten und Löschen. Mit der Schalftläche Optionen kann man Tastenkürzel und
Kommentar zum Makro ändern.
Aufrufen
Eine Sonderstellung nimmt dabei die Datei PERSONL.XLS, die „Persönliche Makroarbeitsmappe“ ein. Auch diese
Mappe befindet sich im XLSTART-Verzeichnis. Ihr Fenster wird von Excel automatisch ausgeblendet. Damit Sie
diese Mappe bearbeiten können, müssen Sie sie zuvor mit dem Menübefehl Fenster–Einblenden... einblenden.
MS Excel – Visual Basic for Applications
7
Menübefehle und Symbolleisten anpassen
Wie kann ich die Menüleiste und die Symbolleisten anpassen? Wie kann ich meine Makros als
Menübefehle und Symbole einbinden?
-
Abb.3: Anpassen von Symbolleisten und Menüs
Um die Menüleiste und Symbolleiste anzupassen, wählt man aus dem Menü Extras–
Anpassen... Im folgenden Dialog wählt man das Register Befehle. Nun kann man
Menübefehle und Symbole auf den eingeblendeten Symbolleisten beliebig anpassen.
Anpassen
Um ein Symbol oder einen Menübefehl an eine andere Stelle in der gleichen Menüoder Symbolleiste oder sogar in eine andere Symbolleiste zu verschieben, nimmt man
den Befehl oder das Symbol einfach mit der Maus und zieht es an die neue Position.
Wenn man das Symbol kopieren will, hält man dabei die STRG-Taste gedrückt.
Verschieben
Um ein Symbol oder einen Menübefehl zu löschen, zieht man das Symbol oder den
Menübefehl in den Anpassen-Dialog.
Löschen
Um ein neues Symbol oder einen Menübefehl in die Menüleiste oder in eine der
Symbolleisten aufzunehmen, wählt man im Dialog Anpassen zunächst unter Kategorien: eine Befehlskategorie. In der Liste Befehle: kann man nun den gewünschten
Befehl mit der Maus nehmen und an die entsprechende Stelle in der Menüleiste oder
in einer Symbolleiste ziehen.
Hinzufügen
In der Kategorie Makros findet man die beiden Befehle Menüelement anpassen und
Symbol anpassen. Um ein eigenes Makro in eine Menü- oder Symbolleiste einzubinden, zieht man eines dieser beiden Elemente in die entsprechende Leiste hinein.
Danach klickt man auf die Schaltfläche Auswahl ändern und wählt Makro zuweisen...
Makros einbinden
Beachten Sie bitte die Möglichkeiten, über die Schaltfläche Auswahl ändern den Text des Befehls, das Symbol
und einige andere Optionen einzustellen.
MS Excel – Visual Basic for Applications
8
Deutsch oder Englisch?
Kann man auch das deutsche VBA noch in Excel benutzen? Wie übersetzt man die Befehle zwischen
Deutsch und Englisch?
-
Abb.4: Installationsprogramm für Objektbibliotheken
In der Version 5.0 von Excel war eine deutsche Version von VBA integriert. Diese
deutsche Version wird zwar auch von Excel 97 noch unterstützt, allerdings muß Sie
erst nachinstalliert werden. Auf der CD zu Office 97 befindet sich im Verzeichnis
\CDZUGABE\95OLBS\ das Programm INSTOLB.EXE. Mit diesem Programm können
die deutsche sowie einige andere Objektbibliotheken installiert werden. Sie können
mit diesen Objektbibliotheken allerdings keine neuen Projekte erstellen.
Deutsches VBA
Wird eine Mappe, die Makros in deutscher Sprache enthält, geöffnet, werden die
Befehle automatisch in das englische VBA übersetzt. Schlägt diese Übersetzung fehl,
findet man im Temp-Verzeichnis (normalerweise \WINDOWS\TEMP) die Textdatei
TRNSLATE.LOG, die die aufgetretenen Fehler auflistet.
Übersetzen
Für Benutzer von Excel 5.0 empfiehlt es sich, schon jetzt die Makros mit dem
englischen VBA zu schreiben, um späteren Kompatibilitätsproblemen aus dem Weg
zu gehen.
Kompatibilität
Wenn Sie die neue Entsprechung alter, deutscher Befehle suchen, finden Sie im Verzeichnis Microsoft
Office\Office die Datei VBALISTE.XLS, die alle deutschen Befehle und ihre englischen Entsprechungen enthält.
MS Excel – Visual Basic for Applications
9
Zusammenfassen und Vertiefen
Modul 1: Erstellen und Verwenden von Makros
1. Mit dem Befehl Extras–Makro–Aufzeichnen... können neue Makros aufgezeichnet werden.
Makros aufzeichnen
Seite 5
2. Mit dem Befehl Extras–Makro–Makros... können Makros wiedergegeben, bearbeitet, gelöscht und deren Optionen verändert werden.
Makros ausführen
Seite 6
3. Über den Befehl Extras–Anpassen... können Sie die Menü- und Symbolleisten
individuell anpassen. Dabei lassen sich auch eigene Makros einbinden.
Menüs und Symbolleisten
Seite 7
4. Deutsche Makros aus der Version 5.0 von Excel werden nach wie vor unterstützt,
wenn die entsprechende Objekt-Bibliothek nachinstalliert wird. Für neue Projekte kann nur das englische VBA verwendet werden.
Sprache auswählen
Seite 8
-
-
MS Excel – Visual Basic for Applications
10
Modul 2
Das MS-Excel-Objektmodell
Was sind die wichtigsten Objekte und Auflistungen im Excel-Objektmodell? Welche Methoden und
Eigenschaften besitzen Arbeitsmappen und Arbeitsblätter? Wie kann ich auf Zeilen, Spalten und
Zellbereiche zugreifen? Welche Eigenschaften und Methoden besitzen Zeilen, Spalten und Zellbereiche?
In diesem Modul werden folgende Themen behandelt:
• Überblick über das MS-Excel-Objektmodell
• Methoden und Eigenschaften von Arbeitsmappen
• Methoden und Eigenschaften von Arbeitsblättern
• Zugriff auf Zeilen, Spalten und Zellbereiche
• Methoden und Eigenschaften von Zellbereichen
Lernziel
Der Anwender erhält einen Überblick über das MS-Excel-Objektmodell und lernt, wie er Mappen und Tabellenblätter manipulieren kann.
Voraussetzungen
VBA-Kenntnisse
MS Excel – Visual Basic for Applications
11
Überblick über das MS-Excel-Objektmodell
Was sind die wichtigsten Objekte und Auflistungen in Excel? Wie kann ich auf Arbeitsmappen und
Tabellenblätter zugreifen?
-
Abb.5: Die wichtigsten Excel-Objekte
An der Spitze des Objektmodells von Excel steht, wie bei den meisten Anwendungen,
das Application-Objekt.
Application
Die Auflistung Workbooks enthält alle geöffneten Arbeitsmappen. Mit der Methode
Add der Workbooks-Auflistung können neue Arbeitsmappen erstellt werden, während die Methode Open bestehende Arbeitsmappen öffnet. Die Name-Eigenschaft
eines Workbook-Objekts wird durch den Dateinamen definiert und kann nicht
verändert werden.
Workbooks
Jedes Workbook-Objekt enthält die Auflistung Sheets, die alle Blätter in der Arbeitsmappe, egal welchen Typs, enthält. Die Auflistungen Worksheets und Charts hingegen enthalten nur Tabellen- bzw. Diagrammblätter. Der Name jedes Blattes wird
wiederum durch die Name-Eigenschaft definiert. Die Methoden Add und Delete
fügen neue Blätter hinzu bzw. löschen bestehende. Mit der Methode Select kann ein
Blatt ausgewählt werden.
Sheets
Die Eigenschaft ActiveWorkbook des Application-Objekts verweist auf die aktive
Arbeitsmappe, das ist jene Arbeitsmappe, die sich gerade im Vordergrund befindet.
Ähnlich verweist die Eigenschaft ActiveSheet des Application-Objekts auf das aktive
Blatt in der aktiven Mappe. Um das aktive Blatt in einer bestimmten Mappe
herauszufinden, verwendet man die ActiveSheet-Eigenschaft des jeweiligenWorkbookObjekts. Die Eigenschaft ActiveCell verweist auf die aktive Zelle in der Tabelle.
Aktive Objekte
Nähere Informationen zum Objektmodell von Excel finden Sie in der Hilfe unter Microsoft Excel Visual BasicReferenz.
MS Excel – Visual Basic for Applications
12
Methoden und Eigenschaften von Arbeitsmappen
Was sind die wichtigsten Methoden und Eigenschaften von Arbeitsmappen? Wie kann ich Arbeitsmappen speichern oder drucken?
-
Abb.6: Workbook-Objekte
Die Eigenschaft Name liefert den Namen einer Arbeitsmappe zurück. Sie ist eine NurLese-Eigenschaft.
Name
Die wichtigsten Methoden von Arbeitsmappen:
Methoden
Close
Schließt die Arbeitsmappe
PrintOut
Druckt die Arbeitsmappe
PrintPreview
Zeigt die Seitenvorschau an
Protect
Schützt die Arbeitsmappe vor Veränderungen
Unprotect
Hebt den Schutz der Arbeitsmappe wieder auf
Save
Speichert die Arbeitsmappe
SaveAs
Speichert die Arbeitsmappe unter einem anderen Namen (verändert
die Name-Eigenschaft)
Die meisten der hier vorgestellten Methoden benötigen Parameter. Für nähere Informationen zu den Parametern
der Methoden suchen Sie bitte in der Hilfe unter dem Namen der jeweiligen Methode. Für nähere Informationen
zu weiteren Eigenschaften und Methoden des Workbook-Objekts, suchen Sie in der Hilfe unter dem Stichwort
Workbook-Objekt.
MS Excel – Visual Basic for Applications
13
Methoden und Eigenschaften von Arbeitsblättern
Was sind die wichtigsten Methoden und Eigenschaften von Arbeitsmappen? Wie kann ich Arbeitsblätter ausblenden?
-
Abb.7: Das Worksheet-Objekt
Die Eigenschaft Name legt den Namen eines Arbeitsblattes fest. Die Eigenschaft
Visible legt fest, ob das Arbeitsblatt sichtbar ist. Wird Visible auf False gesetzt, wird das
Arbeitsblatt ausgeblendet. Wenn die Arbeitsmappe mit der Methode Protect des
Workbook-Objekts zusätzlich noch geschützt wird, kann der Anwender das Arbeitsblatt nicht mehr einblenden.
Name
Die wichtigsten Methoden von Arbeitsblättern:
Methoden
Activate
Aktiviert das Arbeitsblatt (stellt es in den Vordergrund)
Select
Markiert das Arbeitsblatt
Delete
Löscht das Arbeitsblatt
PrintOut
Druckt das Arbeitsblatt
PrintPreview
Zeigt die Seitenvorschau an
Protect
Schützt das Arbeitsblatt vor Veränderungen
Unprotect
Hebt den Schutz des Arbeitsblatts wieder auf
Die meisten der hier vorgestellten Methoden benötigen Parameter. Für nähere Informationen zu den Parametern
der Methoden suchen Sie bitte in der Hilfe unter dem Namen der jeweiligen Methode. Für nähere Informationen
zu weiteren Eigenschaften und Methoden des Sheet-, Worksheet- und Chart-Objekts suchen Sie in der Hilfe unter
dem jeweiligen Stichwort.
MS Excel – Visual Basic for Applications
14
Zugriff auf Zeilen, Spalten und Zellbereiche
Wie kann ich auf Zeilen, Spalten und Zellbereiche zugreifen? Wie kann ich Zellbereiche markieren?
-
Abb.8: Erstellen von Range-Objekten
Soll ein Zellbereich durch einen String der Form "A1:C5" ausgewählt werden,
verwendet man die Range-Eigenschaft der Objekte Workbook oder Worksheet. Bei
einem Workbook liefert Range, wie auch die anderen Eigenschaften und Methoden
zur Zellbereichsauswahl, immer den Zellbereich im aktiven Arbeitsblatt. Beispiel für
Range:
Range
Worksheets!Tabelle1.Range("A1:C5")
Einzelne Zellen lassen sich auch rein numerisch über einen Spalten- und einen
Zeilenindex mit Hilfe der Eigenschaft Cells adressieren. Z.B. liefert
Cells
Worksheets!Tabelle1.Cells(2, 5) die Zelle in Zeile 2, Spalte 5.
Range und Cells lassen sich auch kombinieren, um einen Zellbereich auf Basis eines
Spalten- und Zeilenindex zu adressieren. Z.B. liefert
Kombination
Worksheets!Tabelle1.Range(Cells(2, 5), Cells(5, 10))
den Bereich zwischen der Zelle in Zeile 2, Spalte 5 und der Zelle in Zeile 5, Spalte 10.
Mit Hilfe der Methode Offset läßt sich die Markierung versetzen. Z.B. versetzt
ActiveSheet.Range("A1:C5").Offset(1, 2) die Markierung um eine Zeile und 2
Spalten, wodurch dann der Bereich F2:H6 adressiert ist.
Offset
Mit Hilfe der Methode Union lassen sich zwei Range-Objekte zusammenführen.
Union
Die Eigenschaft Selection verweist auf den markierten Zellbereich.
Selection
Beachten Sie:Auf diese Weise adressierteRange-Objekte werden nicht automatisch markiert. Sie benötigen diese
Objekte, um auf Eigenschaften und Methoden zugreifen zu können, die im nächsten Kapitel besprochen werden.
Um ein Range-Objekt wirklich zu markieren, verwenden Sie die Methode Select.
MS Excel – Visual Basic for Applications
15
Methoden und Eigenschaften von Zellbereichen
Was sind die wichtigsten Methoden und Eigenschaften von Zellbereichen? Wie kann ich Zellbereiche
manipulieren?
-
Abb.9: Das Range-Objekt
Die wichtigsten Eigenschaften von Range-Objekten:
Address
ColumnWidh
Font
Gibt den Adressbezug zurück (z.B. A1:C5)
Breite aller Spalten im Bereich
Font-Objekt, über das sich alle schriftspezifischen Einstellungen
festlegen lassen
Formula
Formel in der Zelle (Wert, wenn keine Formel enthalten ist)
HasFormula
Gibt zurück, ob sich im Bereich eine Formel befindet
Name
Name des Zellbereichs
NumberFormat
Zahlenformat
RowsHeight
Höhe aller Zeilen im Bereich
Style
Gibt ein Style-Objekt (Formatvorlage) zurück
Text
Text in der Zelle
Value
Wert in der Zelle
Die wichtigsten Methoden von Range-Objekten:
Eigenschaften
Clear
Copy
Find
PrintOut
Select
Methoden
Löschen
Kopieren
Suchen
Drucken
Auswählen
Die meisten der hier vorgestellten Methoden benötigen Parameter. Für nähere Informationen zu den Parametern
der Methoden suchen Sie bitte in der Hilfe unter dem Namen der jeweiligen Methode. Für nähere Informationen
zu weiteren Eigenschaften und Methoden des Range-Objekts suchen Sie in der Hilfe unter dem Stichwort RangeObjekt.
MS Excel – Visual Basic for Applications
16
Zusammenfassen und Vertiefen
Modul 2: Das MS-Excel Objektmodell
1. Die wichtigsten Auflistungen im MS-Excel Objektmodell sind Workbooks, Sheets,
Worksheets und Charts.
Das Objektmodell
Seite 11
2. Mit Hilfe von Methoden können Arbeitsmappen beispielsweise gedruckt, geschützt oder gespeichert werden.
Arbeitsmappen
Seite 12
3. Die Eigenschaft Name eines Sheet-Objekts legt dessen Namen fest. Mit Methoden
können Blätter beispielsweise aktiviert, gelöscht, gedruckt oder geschützt werden.
Arbeitsblätter
Seite 13
4. Um auf Zellbereiche zugreifen zu können, benötigt man Range-Objekte. Diese
werden meist mit den Eigenschaften Range und Cells erzeugt.
Zellbereiche
Seite 14
5. Mit Hilfe von Eigenschaften und Methoden lassen sich sowohl Formatierung als
auch Inhalt von Zellbereichen verändern.
Eigenschaften und Inhalt
von Zellbereichen
Seite 15
-
MS Excel – Visual Basic for Applications
17
Modul 3
Zusammenarbeit von VBA und Excel
Wie kann ich auf Ereignisse reagieren? Welche Ereignisse gibt es? Wie kann ich Excel-Funktionen in
VBA verwenden? Wie kann ich benutzerdefinierte Funktionen in Excel verwenden?
In diesem Modul werden folgende Themen behandelt:
• Ereignisprozeduren
• Verwenden von MS-Excel-Funktionen in VBA
• Erstellen benutzerdefinierter Funktionen
Lernziel
Der Benutzer lernt, Ereignisprozeduren in Excel zu schreiben. Außerdem werden die Themen Excel-Funktionen in
VBA und benutzerdefinierte Funktionen in Excel behandelt.
Voraussetzungen
VBA-Kenntnisse
MS Excel – Visual Basic for Applications
18
Ereignisprozeduren
Welche Ereignisse treten in Arbeitsmappen und Tabellenblättern auf? Wie kann ich darauf reagieren?
-
Abb.10: Beispiel einer Ereignisprozedur
VBA-Prozeduren können in Excel nicht nur über Menüs, Symbolleisten und Tastenkürzel aufgerufen werden, sondern auch über Ereignisse. Um Ereignisprozeduren zu
schreiben, öffnet man die Code-Ansicht des jeweiligen Objekts im Visual Basic-Editor
und wählt das Objekt und das Ereignis aus den Listenfeldern, zu dem man eine
Ereignisprozedur schreiben möchte.
Erstellen
Die wichtigsten Ereignisse in Arbeitsmappen:
Ereignisse
Activate
Tritt ein, wenn die Mappe den Fokus erhält
Deactivate
Tritt ein, wenn die Mappe den Fokus verliert
BeforeClose
Tritt ein, bevor die Mappe geschlossen wird
BeforePrint
Tritt ein, bevor die Mappe gedruckt wird
BeforeSave
Tritt ein, bevor die Mappe gespeichert wird
NewSheet
Tritt ein, wenn ein neues Blatt hinzugefügt wird
Open
Tritt ein, wenn die Mappe geöffnet wird
Die wichtigsten Ereignisse in Tabellenblättern:
Activate
Tritt ein, wenn das Blatt den Fokus erhält
Deactivate
Tritt ein, wenn das Blatt den Fokus verliert
Calculate
Tritt ein, wenn das Blatt neu berechnet wird
Change
Tritt ein, wenn das Blatt geändert wird
SelectionChange
Tritt ein, wenn sich die Auswahl ändert
Auch Diagrammblätter haben verschiedene Ereignisse. Um eine ausführliche Beschreibung zu allen Ereignissen
zu erhalten, sehen Sie bitte in der Hilfe unter den StichwörternWorkbook-Objekt, Worksheet-Objekt und ChartObjekt nach.
MS Excel – Visual Basic for Applications
19
Verwenden von MS-Excel-Funktionen in VBA
Wie kann ich Excel-Funkionen in VBA-Programmen verwenden? Wie lauten die englischen Namen der
wichtigsten Excel-Funktionen?
-
Abb.11: Verwendung von Excel-Funktionen
Neben den in VBA integrierten Funktionen lassen sich auch Excel-Funktionen in VBAProgrammen verwenden.
Excel-Funktionen
Die integrierten Excel-Funktionen sind als Funktionsmethoden des ApplicationObjekts vorhanden. Die Parameter sind die gleichen wie bei der Verwendung im
Tabellenblatt. Allerdings müssen die englischen anstelle der deutschen Funktionsnamen verwendet werden.
Verwendung
Eine Aufstellung aller deutschen und englischen Tabellenfunktionsnamen befindet
sich in der Datei \Programme\Microsoft Office\Office\VBALISTE.XLS.
Englische Namen
Statt Zellbereichen müssen in VBA den Funktionen Range-Objekte übergeben werden, z. B. Application.Sum(ActiveSheet.Range("B2:B25")).
Range-Objekte
Die wichtigsten deutschen Funktionsnamen und ihre englischen Entsprechungen:
Wichtige Funktionen
Summe
Sum
Heute
Today
Jetzt
Now
Runden
Round
Wenn
If
SVerweis
VLookup
WVerweis
HLookup
Mit Hilfe des MenübefehlesBearbeiten–Suchen können Sie in VBALISTE schnell den deutschen Funktionsnamen
und seine englische Entsprechung finden. Eine genaue Beschreibung der Funktionen finden Sie in der Excel-Hilfe
unter dem Stichwort Funktionen. Sie können bei jedem Hilfetext zu einer Funktion mit Optionen–Anmerken...
den englischen Funktionsnamen dazuschreiben.
MS Excel – Visual Basic for Applications
20
Erstellen benutzerdefinierter Funktionen
Wie kann ich VBA-Funktionen in Excel-Tabellenblättern verwenden? Wie kann ich die Neuberechnung
von Funktionen erzwingen?
-
Abb.12: Beispiel einer benutzerdefinierten Funktion
Es ist möglich, VBA-Funktionen in Excel-Tabellenblättern zu verwenden, wenn diese
folgende Bedingungen erfüllen:
VBA-Funktionen
• Sie müssen mit den Schlüsselwörtern Public Function deklariert sein.
• Sie müssen sich in einer offenen Arbeitsmappe befinden.
Unter diesen Bedingungen können die VBA-Funktionen wie eingebaute ExcelFunktionen verwendet werden. Das Modul, in dem die Funktion steht, darf allerdings
nicht den gleichen Namen wie die Funktion haben. Ebensowenig darf sich der
Funktionsname mit einer eingebauten Funktion überschneiden. In diesen Fällen ist die
Funktion mit der Syntax Modulname.Funktionsname (Parameter) zu verwenden.
Normalerweise werden Funktionen nur dann neu berechnet, wenn sich die Parameter
ändern. In manchen Fällen kann es sinnvoll sein zu erzwingen, daß eine Funktion in
jedem Fall neu berechnet wird, besonders wenn das Ergebnis von Faktoren außerhalb
des Tabellenblattes abhängig ist, z.B. externe Daten. Um das zu erreichen, schreibt
man irgendwo in den Funktionskörper den Befehl Application.Volatile.
Verwendung
Neu berechnen
Wenn Sie Ihre selbstgeschriebenen Funktionen in der Mappe PERSONL.XLS speichern, können Sie sie in allen
anderen Mappen verwenden.
MS Excel – Visual Basic for Applications
21
Zusammenfassen und Vertiefen
Modul 3: Zusammenarbeit von VBA und Excel
1. Makros können nicht nur über Menüs und Symbole aufgerufen werden, sondern
auch über Ereignisse. Dazu verwendet man bei Tabellenblättern, Arbeitsmappen
und Diagrammen Ereignisprozeduren.
Ereignisprozeduren
Seite 18
2. Excel-Funktionen lassen sich in VBA über das Application-Objekt verwenden.
Dabei sind aber die englischen Funktionsnamen zu verwenden, die in
VBALISTE.XLS zu finden sind.
Excel-Funktionen
verwenden
Seite 19
3. Öffentliche VBA-Funktionen können in Excel-Tabellenblättern wie eingebaute
Funktionen verwendet werden.
Benutzerdefinierte
Funktionen
Seite 20
-
MS Excel – Visual Basic for Applications
22
Modul 4
Einsatz von Steuerelementen in Excel-Tabellenblättern
Wie erzeuge ich ein Drehfeld zur Werteingabe in meine Tabelle? Wozu verwende ich Kontrollkästchen
und Optionsfelder? Wie kann ich Optionen in einer Gruppe zusammenfassen? Wie kann ich Optionswerte festlegen? Wie kann ich eine umfangreiche Auswahl in einem Listenfeld darstellen? Wie kann
ich eine Spalte einer Datenliste in ein Listenfeld mit VBA eintragen lassen?
In diesem Modul werden folgende Themen behandelt:
• Verwenden von Drehfeld oder Bildlaufleiste zur Werteingabe
• Einsatz von Kontrollkästchen und Optionsfeldern
• Verwenden von Listen- und Kombinationsfeldern
Lernziel
Der Benutzer lernt Möglichkeiten kennen, Tabellenblätter mit Hilfe von Steuerelementen interaktiv zu gestalten.
Voraussetzungen
Einfügen von Objekten in die Tabelle, Grundlagen der Tabellenbehandlung, Umgang mit Datenlisten, Verwenden
von MS-Excel Funktionen, Erstellen von Ereignisprozeduren
MS Excel – Visual Basic for Applications
23
Verwenden von Drehfeld oder Bildlaufleiste zur Werteingabe
Wie erzeuge ich ein Drehfeld zur Werteingabe in meine Tabelle? Wie weise ich den Steuerelementen
ein Makro zu?
-
Abb.13: Optionen für Steuerelemente
Um einer fehlerhaften Tabelleneingabe vorzubeugen, können spezielle Objekte aus
der Symbolleiste Formular in eine Tabelle eingefügt werden.
Formular
Um ein Drehfeld zur Eingabe numerischer Werte einzufügen, wird:
Drehfeld
1. in der Symbolleiste Formular auf das Symbol Drehfeld geklickt und das Drehfeld
in die Tabelle aufgezogen,
2. danach mit der rechten Maustaste auf das Drehfeld geklickt und der Befehl
Steuerelement formatieren... bzw. das Symbol Steuerelement-Eigenschaften angeklickt.
3. Im Register Steuerung wird der Minimal- und Maximalwert (zwischen 0 und
30000) eingestellt und bei Ausgabeverknüpfung festgelegt, welches Tabellenfeld
mit diesem Drehfeld manipuliert wird, sowie in welchen Schritten (Schrittweite)
diese Änderung erfolgen soll.
4. Danach wird das Objekt deaktiviert.
Nun kann durch Klicken auf die Pfeile des Drehfelds der Wert des zugeordneten
Tabellenfeldes verändert werden. Um Änderungen an dem Objekt oder den Einstellungen vorzunehmen, ist beim Anklicken des Objekts die STRG-Taste (bzw. die rechte
Maustaste) zu drücken.
Ändern
Ähnlich wie das Drehfeld funktioniert eine Bildlaufleiste (Symbol Bildlaufleiste). Hier
kann zusätzlich noch ein Seitenwechsel bestimmt werden, der festlegt, um wieviel der
Wert geändert wird, wenn in die graue Fläche der Bildlaufleiste geklickt wird. Die
Orientierung der Bildlaufleiste richtet sich nach dem Verhältnis von Höhe zu Breite.
Bildlaufleiste
Um einen höheren Wert als den Maximalwert zu erzeugen, legen Sie die Ausgabeverknüpfung auf ein
Zwischenfeld und tragen Sie in das Zielfeld eine Formel ein, die den Wert automatisch multipliziert. Soll diese
Aktion über ein Makro erfolgen, kann das Makro über Makro Zuweisen... aus dem Kontextmenü zugeordnet
werden.
MS Excel – Visual Basic for Applications
24
Einsatz von Kontrollkästchen und Optionsfeldern
Wie kann ich Optionen in einer Gruppe zusammenfassen? Wie kann ich Optionswerte festlegen?
-
Abb.14: Beispiel zur Verwendung von Steuerelementen
Mit einem Kontrollkästchen (Symbol Kontrollkästchen) wird ein WAHR/FALSCHWert in das zugeordnete Tabellenfeld eingetragen. In weiterer Folge kann dann mittels
der WENN-Funktion die Berechnung weiterer Tabellenfelder von dem Eintrag im
Kontrollkästchen abhängig gemacht werden.
Kontrollkästchen
Werden mehrere Optionsfelder mit dem Symbol Optionsfeld in einem Tabellenblatt
erzeugt, so führt das Aktivieren einer Option automatisch zur Deaktivierung aller
anderen. Um gleichrangige Optionen in einer Gruppe zusammenzufassen, werden
diese in ein Gruppenfeld gesetzt. Aus jeder Gruppe kann dann eine Option gewählt
werden.
Optionsfeld
Die Ausgabeverknüpfung im Register Steuerung des Steuerelement formatierenDialogs braucht nur für eine der zusammengefaßten Optionen bestimmt werden. Sie
gilt automatisch auch für alle anderen Optionen dieser Gruppe. Je nach gewählter
Option wird ein entsprechender Wert (1 für die erste Option, 2 für die zweite usw.) in
das Ausgabefeld eingetragen.
Ausgabeverknüpfung
Um bestimmte Werte für die einzelnen Optionen festzulegen, wird in einem eigenen
Bereich eine Liste angelegt. Der zu der Option passende Wert kann dann über die
INDEX-Funktion aus dieser Liste ausgewählt werden.
Werte
Um die Eintragung der Ausgabeverknüpfung auf dem Tabellenblatt nicht anzuzeigen, kann diese auch auf einem
anderen Blatt erfolgen, welches über Menü Format–Blatt–Ausblenden ausgeblendet wird. Der Ausdruck eines
Steuerelements wird unterdrückt, indem Sie im Dialogfeld Steuerelement formatieren auf dem Register
Eigenschaften die Option Objekt drucken deaktivieren.
MS Excel – Visual Basic for Applications
25
Verwenden von Listen- und Kombinationsfeldern
Wie kann ich eine umfangreichere Auswahl in einem Listenfeld darstellen? Wie kann ich eine Spalte
einer Datenliste in ein Listenfeld mit VBA eintragen lassen?
-
Abb.15: Kombinationsfeld
Ein Listenfeld kann in einem Tabellenblatt über zwei verschiedene Symbole erzeugt
werden, mit Listenfeld oder Kombinationsfeld. Ein Kombinationsfeld unterscheidet
sich von einem Listenfeld dadurch, daß die Liste erst aufgeklappt werden muß, die
Größe der Dropdown-Liste wird über den Eintrag bei Zeilen auf dem Register
Steuerung im Steuerelement formatieren-Dialog bestimmt.
Listenfeld und
Kombinationsfeld
Bei beiden Listenarten werden die Einträge des Listenfelds über den bei Listenbereich
festgelegten Tabellenbereich bestimmt, dessen erste Spalte in der Liste angezeigt wird.
Im Ausgabebereich wird je nach Auswahl eine Indexzahl eingetragen.
Listenbereich
Im Beispiel wird als Listenbereich eine Datenliste verwendet. Damit eventuelle
Erweiterungen der Datenliste berücksichtigt werden, wird für die Zuordnung des
Listenbereichs ein Bereichsname (“Adressen”) verwendet. Bei Verlassen des Tabellenblatts, das die Liste enthält (Deactivate-Ereignis) wird ein Makro ausgeführt, in dem
der aktuelle Bereich (ohne erste Zeile) ermittelt und dem Bereichsnamen neu
zugeordnet wird:
Dateilisten
Dim varAdr As Range
Set varAdr = Worksheets(“Adressen”).Range(“A1”).
CurrentRegion
Set varAdr = varAdr.Offset(1, 0).Resize(varAdr.Rows.
Count - 1)
ActiveWorkbook.Names.Add Name:=”Adressen”,
RefersToR1C1:=varAdr
Um die Anzeige in der Liste sortiert darzustellen, müssen Sie das Makro entsprechend ergänzen, so daß die
Einträge im Listenbereich nach der ersten Spalte sortiert werden (vor oder nach Schritt 4).
MS Excel – Visual Basic for Applications
26
Zusammenfassen und Vertiefen
Modul 4: Einsatz von Steuerelementen in Excel-Tabellenblättern
-
1. Mit Drehfeldern und Bildlaufleisten können bequem Werteingaben in das Tabellenblatt vorgenommen werden.
Drehfeld und Bildlaufleiste
Seite 23
2. Kontrollkästchen und Optionsfelder erleichtern dem Benutzer, aus mehreren
verfügbaren Möglichkeiten zu wählen. Bei Optionsfeldern ist es wichtig, diese in
Optionsgruppen zusammenzufassen.
Kontrollkästchen und
Optionsfelder
Seite 24
3. Mit Listen- und Kombinationsfeldern können Werte aus Datenlisten ausgewählt
werden. Die Belegung dieser Steuerelemente kann automatisch über Ereignisprozeduren erfolgen.
Listen- und Kombinationsfelder
Seite 25
-
MS Excel – Visual Basic for Applications
Wichtige Tastenkombinationen
Wie kann ich meine Arbeit mit VBA beschleunigen?
Taste(n)
F5
Funktion
Ausführen einer Sub-Prozedur oder eines UserForm-Formulars
F8
Zeilenweises Ausführen von Code
UMSCHALT + F8
Zeilenweises Ausführen von Code mit Prozedurschritten
STRG + PAUSE
STRG + G
Unterbrechen der Ausführung einer Visual Basic-Anwendung
Anzeigen des Direktfensters
F7
Code-Fenster anzeigen
F2
STRG + F
Objektkatalog anzeigen
Suchen
STRG + H
Ersetzen
F3
UMSCHALT + F3
Weitersuchen
Vorheriges suchen
STRG + NACH-UNTEN
Nächste Prozedur
STRG + NACH-OBEN
Vorherige Prozedur
STRG + Z
STRG + Y
Rückgängig
Aktuelle Zeile löschen
TAB
Einzug vergrößern
UMSCHALT + TAB
STRG + UMSCHALT + F9
Einzug verkleinern
Alle Haltepunkte löschen
27
MS Excel – Visual Basic for Applications
28
Index
A
Activate .............................. 13, 18
ActiveCell ................................ 11
ActiveSheet .............................. 11
ActiveWorkbook ...................... 11
Add ........................................... 11
Address .................................... 15
Application ............................... 11
Ausgabeverknüpfung ......... 23, 24
B
BeforeClose .............................. 18
BeforePrint ............................... 18
BeforeSave ............................... 18
Bildlaufleiste ............................ 23
C
Calculate .................................. 18
Cells ......................................... 14
Change ..................................... 18
Chart .................................. 11, 13
Clear ........................................ 15
Close ........................................ 12
ColumnWidth ........................... 15
Copy ......................................... 15
D
Deactivate ......................... 18, 25
Delete ................................ 11, 13
Drehfeld ................................... 23
E
Ereignisse ................................. 18
Excel-Funktionen ..................... 19
H
HasFormula .............................. 15
Heute ........................................ 19
HLookup ................................... 19
I
If ............................................... 19
J
Jetzt .......................................... 19
K
Kombinationsfeld ...................... 25
Kontrollkästchen ....................... 24
L
Listenbereich ............................ 25
Listenfeld .................................. 25
M
Makro ..................................... 5, 6
Menübefehl ................................ 7
N
Name ............................ 11, 12, 15
NewSheet ................................. 18
Now ......................................... 19
NumberFormat ......................... 15
O
Offset ........................................ 14
Open .................................. 11, 18
F
Find .......................................... 15
Font .......................................... 15
Formula .................................... 15
Formular ................................... 23
P
PERSONL.XLS ................... 5, 6, 20
Persönliche Makroarbeitsmappe . 5
PrintOut ........................ 12, 13, 15
PrintPreview ....................... 12, 13
Protect ................................ 12, 13
G
Gruppenfeld ............................. 24
R
Range ................................. 14, 15
-
Round ....................................... 19
RowsHeight .............................. 15
Runden ..................................... 19
S
Save .......................................... 12
SaveAs ...................................... 12
Select ...................... 11, 13, 14, 15
Selection ................................... 14
SelectionChange ....................... 18
Sheet ......................................... 13
Sheets ....................................... 11
Steuerelement ........................... 23
Style .......................................... 15
Sum .......................................... 19
Summe ..................................... 19
SVerweis ................................... 19
Symbolleiste ............................... 7
T
Text .......................................... 15
Today ....................................... 19
U
Union ....................................... 14
Unprotect ........................... 12, 13
V
Value ........................................ 15
VBALISTE.XLS ....................... 8, 19
VLookup ................................... 19
Volatile ..................................... 20
W
Wenn ........................................ 19
Workbook ........................... 11, 12
Worksheet ................................ 13
Worksheets ............................... 11
Wverweis.................................. 19
X
XLSTART ..................................... 6
2
easy
know-how
Erhard Closs – Ihr PC-Coach
Franz-Fackler-Str. 6
80995 München
Telefon:
089/ 910 72 813
Telefax:
089/ 910 72 814
[email protected]
www.easy2know-how.de
Dieses Werk ist urheberrechtlich geschützt.
Alle dadurch begründeten Rechte, insbesondere der Nachdruck, die Übersetzung, die
Wiedergabe auf photomechanischen oder ähnlichen Wegen, die Speicherung und Verarbeitung mit Hilfe der EDV bleiben auch auszugsweise ausdrücklich dem Urheber
vorbehalten.
Die in den Beispielen verwendeten Namen von Firmen, Produkten, Personen, Zeichen
oder sonstigen Daten sind frei erfunden. Ähnlichkeiten mit tatsächlichen Personen,
Firmen, Produkten oder Ereignissen sind rein zufällig und nicht beabsichtigt.
easy2know-how