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ü ExtrasMakroMakros... 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 FensterEinblenden... 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 ExtrasMakroAufzeichnen... können neue Makros aufgezeichnet werden. Makros aufzeichnen Seite 5 2. Mit dem Befehl ExtrasMakroMakros... können Makros wiedergegeben, bearbeitet, gelöscht und deren Optionen verändert werden. Makros ausführen Seite 6 3. Über den Befehl ExtrasAnpassen... 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übefehlesBearbeitenSuchen 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 OptionenAnmerken... 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ü FormatBlattAusblenden 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