VBA mit Excel. Einführung VBA mit Excel. Einführung



Ähnliche Dokumente
Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Text-Zahlen-Formatieren

Excel Pivot-Tabellen 2010 effektiv

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

MICROSOFT OFFICE. Inhaltsverzeichnis

Wir basteln einen Jahreskalender mit MS Excel.

EINFACHES HAUSHALT- KASSABUCH

Excel Funktionen durch eigene Funktionen erweitern.

! " # $ " % & Nicki Wruck worldwidewruck

Newsletter. 1 Erzbistum Köln Newsletter

Programm GArtenlisten. Computerhinweise

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Bauteilattribute als Sachdaten anzeigen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Access Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

LÖSUNGEN AUFGABEN: EXCEL XP (OHNE DATEIEN)

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Urlaubsregel in David

Serienbrief erstellen

Professionelle Seminare im Bereich MS-Office

Summenbildung in Bauteiltabellen mit If Then Abfrage

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

3. GLIEDERUNG. Aufgabe:

Berechnungen in Access Teil I

Tutorial Speichern. Jacqueline Roos - Riedstrasse 14, 8908 Hedingen, jroos@hispeed.ch -

32.4 Anpassen von Menüs und Symbolleisten 795i

SEPA-Anleitung zum Release 3.09

Vergleich: Positionen der Word 2003-Befehle in Word

Speichern. Speichern unter

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Dossier: Rechnungen und Lieferscheine in Word

1. So einfach ist der Excel-Bildschirm

Zur drittletzten Zeile scrollen

xcall White Paper Wählen-Buttons in Excel

Excel 2010 Pivot-Tabellen und Datenschnitte

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Microsoft Access 2013 Navigationsformular (Musterlösung)

-Versand an Galileo Kundenstamm. Galileo / Outlook

Excel 2010 Kommentare einfügen

Einfügen mit Hilfe des Assistenten: Um eine Seite hinzufügen zu können, müssen Sie nur mehr auf ein Symbol Stelle klicken.

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Kurzbeschreibung S&S Arbeitszeiterfassung

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Anleitung zur Erstellung einer Gefährdungsbeurteilung

Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5

Fisch schwimmt gegen eine radioaktive Tonne.

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Erstellen von x-y-diagrammen in OpenOffice.calc

6.3 Serienbriefe über Microsoft Excel und Word

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Stapelverarbeitung Teil 1

1 Einleitung. Lernziele. Dokumente vergleichen. Änderungen mit Überarbeitungsfenster bearbeiten Lerndauer. 4 Minuten.

Computeria Rorschach Mit Excel Diagramme erstellen

Weiterverarbeitung Leseranfragen

Windows XP maßgeschneidert

Persönliches Adressbuch

Monatstreff für Menschen ab 50 Merkblatt 69 EXCEL Peter Aeberhard, Computeria Olten

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Erstellen der Barcode-Etiketten:

Primzahlen und RSA-Verschlüsselung

Hilfe zur Urlaubsplanung und Zeiterfassung

SMS4OL Administrationshandbuch

Anwendungsbeispiele Buchhaltung

Bedienungsanleitung Einsatzplanung. Bedienungsanleitung Einsatzplanung. Inhalt. Bedienung einer Plan-Tabelle

Kapitel 1: Betriebssystem IX. W indows Explorer und der Arbeitsplatz Teil 2

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Lehrer: Einschreibemethoden

Hilfedatei der Oden$-Börse Stand Juni 2014

Sichern der persönlichen Daten auf einem Windows Computer

Hinweise zum Übungsblatt Formatierung von Text:

Auswertung erstellen: Liste mit -

Visio Grundlagen. Linda York. 1. Ausgabe, Oktober 2013

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

ERSTELLEN EINES BRIEFBOGENS MIT WORD 1 SCHRITT 1: EINRICHTEN VON KOPF- UND FUßZEILEN 1. Die Ansicht Kopf- und Fußzeilen 1

Handbuch für Redakteure

Das Startmenü. Das Startmenü anpassen

Der Kalender im ipad

Oder: Menü Ansicht/Anordnen nach /Kategorien. Sie haben das -Fenster vor sich.

Erstellen einer digitalen Signatur für Adobe-Formulare

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Comic Life 2.x. Fortbildung zum Mediencurriculum

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Durchführung der Datenübernahme nach Reisekosten 2011

Tipps und Tricks zu Netop Vision und Vision Pro

FlowFact Alle Versionen

Mediator 9 - Lernprogramm

Step by Step Webserver unter Windows Server von Christian Bartl

Konvertieren von Settingsdateien

Transkript:

VBA mit Excel Einführung Die Programmiersprache VBA (Visual Basic for Applications) gewinnt zunehmend an Bedeutung, weil alle MSOfficeProgramme von VBA unterstützt werden. VBA ist aus der sehr viel mächtigeren Sprache VisuaIBasic (VB) abgeleitet worden, mit der eigenständige Programme mit grafischen Benutzeroberflächen entwickelt werden können. Bei den MS-Office-Programmen steht ein kleiner Kernbereich von VB zur Verfügung, der aber mit applikationsspezifischen Funktionen ergänzt wurde. Bei Excel lassen sich die Daten in den Zellen oft viel einfacher und effizienter auswerten, wenn man sie mit VBAProgrammen bzw. -Prozeduren verarbeiten kann. Bei dieser Einführung konzentrieren wir uns bewusst auf die Besonderheiten von VBA bei Excel-Anwendungen. Gleichzeitig setzen wir voraus, dass das Aufzeichnen einfacher Makros bereits bekannt ist. VBA-Programme helfen Ihnen immer wiederkehrende Arbeiten automatisch zu erledigen neue Funktionen hinzuzufügen wenig geübten BenützerInnen eine Arbeitsumgebung zu geben, in der nur noch jene Menüs und Befehle vorhanden sind, die für die konkrete Arbeit gebraucht werden Anwendungen herzustellen, die den Benützer genauso durch eine Arbeitsfolge führen wie ein mit einer Programmiersprache erstelltes Programm andere Microsoft-Anwendungen zu starten und auszuführen Vorbereitungen Da VBA die Zellen nach der Z1S1-Bezugsart adressiert, wechseln Sie in diese Ansicht. Menü: Extras / Optionen / Register Allgemein VBA mit Excel.doc 1

Aktivieren Sie die Symbolleiste für Visual Basic. Zur Eingabe des ersten Programms starten Sie den Visual Basic Editor: Nachdem Sie unter dem Menü: Einfügen / Modul gewählt haben, wird ein leeres Fenster für die Eingabe des Programm-Codes geöffnet. Das erste Programm, Übung 1 Tippen Sie die nachfolgenden Befehle ein: Erklärungen zur Übung 1 Eine Sub-Prozedur erstellen Sub-Prozeduren sind kleine Programmeinheiten, die eine bestimmte Aktion ausführen können. Damit die vielen Prozeduren unterscheidbar bleiben, gibt man ihnen einen Namen. Prozedurnamen dürfen nur aus Buchstaben und Ziffern bestehen und dürfen keine Sonderzeichen und Zwischenräume enthalten. Einzig «Unterstriche» sind zulässig. Die Syntax 1 der Sub-Prozeduren werden wir später noch genauer anschauen. In der einfachsten Form schreiben wir nur gerade das Schlüsselwort Sub und einen Namen, Sub Summe ( ) der nach Möglichkeit etwas über die programmierte Aktion aussagen soll. Dem Prozedurnamen müssen zwei Klammern folgen, die für die Übergabe von Argumenten gedacht sind. Sie müssen auch dann angefügt werden, wenn gar keine Argumente an die Prozedur übergeben werden. Variablen deklarieren In VBA ist es nicht unbedingt erforderlich, Variablen vorgängig zu deklarieren. Trotzdem ist es sinnvoll, alle verwendeten Variablen mit den entsprechenden Datentypen festzulegen. Variablen werden für das Speichern von Daten oder Zwischenergebnissen verwendet. Auch Variablen haben Namen, die nach Möglichkeit etwas über ihren Inhalt aussagen sollen. 1 In der Grammatik die Lehre vom Aufbau eines Satzes. In der EDV die Regeln zur Formulierung eindeutiger Befehle in einer Programmiersprache. VBA mit Excel.doc 2

Datentypen Der Datentyp präzisiert, für was die Variable verwendet werden soll. Also ob sie einen Text, eine Zahl, ein Datum oder ein Wahrheitswert aufnehmen wird. Bei numerischen Variablen können wir angeben, ob die Zahl sehr gross und genau oder lediglich klein und nur ganzzahlig sein darf. In unseren ersten Übungen haben wir es nur mit ganzzahligen Werten (Integer) zu tun. Zellen adressieren In VBA gibt es unterschiedliche Möglichkeiten für den Zugriff auf Zellen. Die einfachste ist Cells(Zeile, Spalte) In unserem Beispiel wird also der Wert in Zelle (4, 3) der Variablen summand1, der Wert in Zelle (5, 3) der Variablen summand2 zugewiesen. Die Inhalte der Variablen summand1 und summand2 werden addiert und das Ergebnis der Variablen resultat zugewiesen. Danach übergeben wir den Inhalt der Variablen resultat an die Zelle (7, 3). Das ist alles nicht sehr spektakulär, soll aber helfen, auch die nachfolgenden Prozeduren gut zu verstehen. Damit die Prozedur ausgeführt werden kann, müssen wir sie noch einer Schaltfläche zuordnen. Abschluss Übung 1 Beenden Sie nun den Editor und bereiten Sie das Tabellenblatt für die Kontrolle der Prozedur vor. Ereignisorientierte Programmierung Damit die Sub-Prozedur Summe ( ) wirksam wird, müssen wir das entsprechende Makro ausführen lassen. Dazu öffnen wir die Liste der Makros: Menü: Extras / Makro / Makros wählen das Makro Summe und klicken auf die Schaltfläche Ausführen. Dieses Vorgehen ist aber eher für das Austesten von Sub-Prozeduren gedacht. VBA ist eine ereignisorientierte Programmiersprache. VBA mit Excel.doc 3

Das heisst, dass die Sub-Prozeduren auf ein Ereignis warten; dass sie aktivieren soll. Im einfachsten Fall ist das ein Mausklick auf eine Schaltfläche. Später werden wir noch andere Möglichkeiten kennen lernen, wo das Ereignis von einem Kontrollfeld, von der Tastatur, von einer Maustaste, oder schon allein durch das Bewegen der Maus ausgelöst wird. Schaltfläche zuordnen Dazu aktivieren wir die Symbolleiste Formular: Menü: Ansicht / Symbolleisten / Formular Dort klicken wir auf das Symbol Schaltfläche. Danach zeichnen wir die Schaltfläche in unser Tabellenblatt. Mit gedrückter Alt-Taste wird die Schaltfläche in die Zellenstruktur eingebettet. Gleichzeitig wird das Verzeichnis der Makros eingeblendet. Dort aktivieren wir das Makro Summe. Schliesslich können wir den Text in der Schaltfläche beliebig anpassen. VBA mit Excel.doc 4

Zählerschleifen Sollen in einer Anwendung eine oder mehrere Anweisungen mehrmals wiederholt werden, so werden so genannte Schleifen verwendet. Da dies natürlich häufig der Fall ist gehören Schleifen zu den wichtigsten Elementen jeder Programmiersprache. Bei VBA hat eine Zählerschleife die Form: For Zähler = Anfang To Ende [Step Schritt] Anweisungen Next Zähler Dabei bedeutet: Zähler Ist eine numerische Variable, die als Schleifenzähler dient. Anfang Der Startwert von Zähler. Ende Der Endwert von Zähler. Schritt Ist optional. Es ist ein Betrag, um den Zähler bei jedem Schleifendurchlauf verändert wird. Falls kein Wert angegeben wird, hat der Schritt immer den Wert 1. Das zweite Programm, Übung 2 Wir kopieren den Programm-Code von Übung 1 und ändern ihn so ab, dass daraus ein Zähler entsteht. Der Wert in Zelle (4, 3) wird zum Anfangswert der Variablen anfang, der Wert in Zelle (5, 3) zum Endwert in Variable ende. In der For...Next-Schleife werden nun der Variablen count alle Werte von anfang bis ende zugewiesen und in der Zelle (7, 3) angezeigt. Je nach Leistungsfähigkeit Ihres Computers dauert dieser Zählvorgang mehr oder weniger lang. Tippen Sie die nachfolgenden Befehle ein: Abschluss Übung 2 Beenden Sie nun den Editor und bereiten Sie das Tabellenblatt für die Kontrolle der Prozedur vor. VBA mit Excel.doc 5

Vielleicht haben Sie Lust; mit dieser noch sehr einfachen Sub-Prozedur zu experimentieren? Zum Beispiel könnten Sie einen «Abwärtszähler» konstruieren, der vom Endwert zum Anfangswert zurückzählt. Das wird in einer For...Next-Schleife mit dem Schritt Step 1 realisiert. Beispiel für Abwärtszähler: Tabellenblatt für die Kontrolle der Prozedur: VBA mit Excel.doc 6

Das dritte Programm, Übung 3 Indexierung der Zellenadressen In einem nächsten Schritt wollen wir auf einer Tabellen-Zeile eine Nummerierung vornehmen. Also in: Cells(11, 6) = 0 Cells(11, 7) = 1 Cells(11, 8) = 2 Cells(11, 9) = 3 Cells(11, 10) = 4 Cells(11, 11) = 5 Cells(11, 12) = 6 Cells(11, 13) = 7 Cells(11, 14) = 8 Cells(11, 15) = 9 Erklärungen zur Übung 3 Diese Adressierungsart nennt man auch Indexierung, weil die Zeilen-Nummern und Spalten-Nummern wie Indizes verwendet werden. Statt nun zehnmal die fast gleiche Anweisung zu schreiben, nutzen wir die Vorteile der For...Next-Schleife. Die Zahlenreihe geht ja hier von 0 bis 9: For spalte = 0 To 9 Und da die Spalten-Adresse immer gerade um 6 höher ist als der Wert der Variablen Spalte ergibt sich: For spalte = 0 To 9 Cells(11, 6 + spalte) = spalte Next spalte Sie können diesen Programm-Code einfach hinzufügen und im Tabellenblatt mit einer Schaltfläche verknüpfen. Bei der Beschriftung der Spalte 5 gelten natürlich die gleichen Überlegungen, nur das hier der Spalten Index konstant bleibt und der Zeilen-Index verändert wird: Cells(12, 5) = 0 Cells(13, 5) = 1 Cells(14, 5) = 2 Cells(15, 5) = 3 Cells(16; 5) = 4 Cells(17, 5) = 5 Cells(18, 5) = 6 Cells(19, 5) = 7 Cells(20, 5) = 8 Cells(21, 5) = 9 Und die entsprechende For...Next-Schleife: For zeile = 0 To 9 Cells(12 + zeile, 5) = zeile Next zeile VBA mit Excel.doc 7

Hier der Programm-Code für die Prozeduren: Tabelleblatt für die Kontrolle der Prozeduren: Auftrag Ändern Sie die Prozedur Zeilenbeschriftung so ab, dass die jeweils ausgewählte Zelle mit einer Farbe eingefärbt wird. Tipp: Zeichnen Sie mit dem Makrorecorder ein entsprechendes Makro auf. Danach fügen Sie die Befehle in die Prozedur Zeilenbeschriftung ein! VBA mit Excel.doc 8

Das vierte Programm, Übung 4 Verschachtelte Schleifen Liegen die zu verarbeitenden oder zu erzeugenden Daten in Tabellenform vor, so kann der Zugriff mit verschachtelten For...Next-Schleifen erfolgen. Ähnlich wie bei Matrix-Operationen in der Mathematik bekommt jede Zelle einen Zeilen- und einen Spalten-Index. Und beide Indexierungen werden mit Hilfe einer Schleifen-Variablen vorgenommen. Hier der Programm-Code für die Übung 4: Tabellenblatt mit Ergebnis für die Übung 4: Erklärungen zur Übung 4 In unserem Beispiel erzeugt die äussere Schleife den Zeilen-Index zeile, die innere Schleife den Spalten-Index spalte. Bei der Programmausführung bekommt die Variable zeile vorerst einmal der Wert 0. Dann werden in der inneren Schleife der Variablen spalte alle Werte von 0 bis 9 zugewiesen. Danach wird die innere Schleife wieder verlassen und zeile in der äusseren Schleife um 1 erhöht. Dieser Vorgang wiederholt sich, bis auch die Variable zeile alle Werte von 0 bis 9 angenommen hat. VBA mit Excel.doc 9

Im Gegensatz zu den Sub-Prozeduren Zeilenbeschriftung ( ) und Spaltenbeschriftung ( ), wo jeweils ein Index konstant blieb und nur der andere verändert wurde, sind hier nun beide Indizes veränderbar: Cells(10 + zeile, 6 + spalte) = inhalt Die konstanten Werte 12 und 6 bedeuten hier nur, dass der erste Wert der Tabelle in Zeile 12 und Spalte 6 zu liegen kommt. Verändern Sie diese Werte, so verschiebt sich die Tabelle im Tabellenblatt. Die Inhalte der Tabelle werden mit der Anweisung: inhalt = 10 * zeile + spalte erzeugt, was aber nur bedeutet, dass der Zeilen-Index für die Zehner, der Spalten-Index für die Einerstellen verantwortlich sind. Datenbereich löschen Um die Funktionsweise der Sub-Prozeduren überprüfen zu können ist es hilfreich, die Inhalte der betroffenen Zellen wieder «löschen» zu können. Dazu lassen wir einfach ein entsprechendes Makro aufzeichnen und mit einer Schaltfläche verbinden. Hier der Programm-Code der Prozedur Löschen: Tabellenblatt inklusive Formular Löschen: VBA mit Excel.doc 10

Aufgabe 1 Erstellen Sie eine Multiplikationstabelle, in welcher das Produkt aus Zeilenund Spaltennummer angezeigt wird. Hier die Lösung von Aufgabe 1: Aufgabe 2 Erstellen Sie eine Anwendung, bei welcher die Zelleninhalte in genau umgekehrter Reihenfolge (von 99 nach 0) eingetragen werden. Hier die Lösung von Aufgabe 2: VBA mit Excel.doc 11

Aufgabe 3 Erstellen Sie eine Anwendung, bei welcher ein Startwert bestimmt, mit welchem Wert die Zahlentabelle beginnen soll. Hier die Lösung von Aufgabe 3. Als Startwert wird der Inhalt der Zelle (4, 3) übernommen: VBA mit Excel.doc 12

Verzweigungen Zu den wohl wichtigsten Programmbefehlen gehören die Verzweigungen, die sogenannten Wenn Dann Sonst Anweisungen Hierbei werden reine Vergleichs-Prüfungen durchgeführt und je nach Ergebnis die eine oder die andere Massnahme getroffen. Wenn die Raumtemperatur tiefer als 18 C ist, dann soll die Heizung eingeschaltet werden, sonst nicht. Das fünfte Programm, Übung 5 Bei unserem Beispiel geht es um die Untersuchung der Teilbarkeit von Zahlen. Als Teiler kommen ja alle Zahlen von 2 bis zur Zahl selber in Frage. Die Vergleichsprüfung erfolgt mit der Modulo-Funktion, die aus der Mathematik bekannt ist: zahl Mod teiler Hier der Programm-Code der Prozedur Teilbarkeit: Tabellenblatt für die Kontrolle der Prozedur (Teiler von 800): Erklärungen zur Übung 5 Die Modulo-Funktion (Mod) gibt bekanntlich den Rest einer Division zurück. Ist dieser Rest Null, so haben wir einen echten Teiler gefunden. If zahl Mod teiler = 0 Then Trifft also diese Wahrheitsprüfung zu, so haben wir einen Teiler gefunden, den wir auf Spalte spalte in die Liste eintragen und anzeigen wollen. Mit der Anweisung spalte = spalte + 1 stellen wir gleichzeitig sicher, dass der Spalten-Index um 1 erhöht wird. VBA mit Excel.doc 13

Der Ausdruck spalte = spalte + 1 ist nicht als mathematische Gleichung zu verstehen. In der Programmiersprache bedeutet dies nämlich, dass der Wert der Variablen spalte ersetzt wird durch einen Wert, der um 1 höher ist. Oft werden Programme auch mit so genannten Flussdiagrammen beschrieben. Die nachfolgende Skizze zeigt, wie so eine Programmverzweigung dargestellt wird. Flussdiagramm einer Programmverzweigung: zahl Mod teiler = 0 ja nein teiler anzeigen spalte = spalte + 1 Werden bei einer Programm-Verzweigung mehrere Anweisungen durchgeführt, müssen diese mit End If abgeschlossen werden. If Bedingung Then Anweisung 1 Anweisung 2 End If VBA mit Excel.doc 14

Das sechste Programm, Übung 6 Teilbarkeit erweitert Statt die Teilbarkeit nur gerade für eine Zahl zu untersuchen können wir auch leicht einen ganzen Zahlenbereich angeben. Der Startwert und der Endwert des Zahlenbereiches werden aus der Tabelle ausgelesen. Danach wird die Teilbarkeit für diesen Zahlenbereich ausgerechnet. Dazu brauchen wir eine zusätzliche For...Next-Schleife. Hier der Programm-Code der Prozedur TeilbarkeitErweitert: Tabellenblatt für die Kontrolle der Prozedur: Erklärungen zur Übung 6 Die innere Schleife ist der gleiche Schleifenkörper, den wir schon im vorangehenden Beispiel verwendet haben. In der äusseren Schleife wird die Zahl vom Startwert bis zum Endwert angepasst. Auch der Zeilen-Index muss nach jeder «neuen» Zahl um eine Einheit erhöht werden und der Spalten- Index muss immer wieder auf die Spalte 6 zurückgesetzt werden. VBA mit Excel.doc 15

Mit der Schleife: For n = 0 To (Cells(6, 3) Cells(5, 3)) richten wir den äusseren Zähler ein. Die Anzahl Schleifendurchgänge wird aus der Differenz von Endwert Startwert berechnet. Die eigentlichen Zahlen, die auf ihre Teilbarkeit untersucht werden, ergeben sich dann jeweils aus dem Startwert in der Zelle (5, 3) und der Variablen n: zahl = Cells(5, 3) + n Auch der Zeilen-Index zeile läst sich aus n ableiten: zeile = n + 5 Damit können wir die gerade zu untersuchende Zahl in der richtigen Zelle anzeigen: Cells(zeile, spalte 1) = zahl Schliesslich legen wir noch fest, dass bei jeder neuen Zahl der Spalten- Index auf 6 zurückgesetzt werden muss. spalte = 6 Was danach folgt kennen Sie bereits. Es ist der gleiche Schleifenkörper, den wir schon im vorangehenden Beispiel verwendet haben. Option für Fortgeschrittene Versuchen Sie die Prozedur so abzuändern, das die zu untersuchende Zahl rot herausgeschrieben wird. Kopieren Sie die Prozedur und ändern Sie diese so ab, dass nur noch Primzahlen innerhalb des Zahlenbereiches angezeigt werden. VBA mit Excel.doc 16

Do While-Schleife Neben der For...Next-Schleife gibt es in praktisch allen Programmiersprachen noch weitere Schleifen-Anweisungen. Eine sehr praktische ist die Do While-Schleife, bei der Anweisungen solange ausgeführt werden solange eine Bedingung erfüllt ist. Im nachfolgenden Beispiel sollen Zahlen in ihre Faktoren zerlegt werden. Im Gegensatz zur Prüfung der Teilbarkeit, wo jeder Teiler nur einmal vorkommen kann, müssen wir bei der Zerlegung in Faktoren berücksichtigen, dass mehrere gleiche Faktoren vorkommen können. Ein Beispiel möge dies verdeutlichen. Wir zerlegen die Zahl 1 000 in Faktoren: 1'000 : 2 = 500 500 : 2 = 250 250 : 2 = 125 125 : 5 = 25 25 : 5 = 5 5 : 5 = 1 Also lauten die Faktoren der Zahl 1 000 = 2 2 2 5 5 5 Da die zu untersuchende Zahl verändert wird, verwenden wir eine Hilfsvariable temp. Dann prüfen wir jeden möglichen Teiler, ob er als Faktor in Frage kommt. Solange die Division temp : teiler keinen Rest ergibt, ist der Teiler ein Faktor: Do While temp Mod teiler = 0 Danach müssen wir aber den Wert der Variablen temp jeweils reduzieren, wie das im vorangehenden Beispiel ja sichtbar wurde. Hier der Programm-Code der Prozedur Faktorzerlegung: VBA mit Excel.doc 17

Tabellenblatt für die Kontrolle der Prozedur: VBA mit Excel.doc 18