Ecxel Makros Programmieren



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

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

xcall White Paper Wählen-Buttons in Excel

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Das Leitbild vom Verein WIR

E-PRIME TUTORIUM Die Programmiersprache BASIC

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

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

Was meinen die Leute eigentlich mit: Grexit?

Wir basteln einen Jahreskalender mit MS Excel.

Summenbildung in Bauteiltabellen mit If Then Abfrage

mit dem TeXnicCenter von Andreas Both

Primarschule Birmensdorf PIA Anleitungen Word. Bevor du mit Schreiben beginnen kannst, musst du dein Word- Dokument einrichten.

Access und die andern (Office) Programme. Armin Hess

Repetitionsaufgaben Wurzelgleichungen

Professionelle Seminare im Bereich MS-Office

Viele Bilder auf der FA-Homepage

Erstellen von x-y-diagrammen in OpenOffice.calc

Tutorial: Entlohnungsberechnung erstellen mit LibreOffice Calc 3.5

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

Was ich als Bürgermeister für Lübbecke tun möchte

Diese Anleitung zeigt dir, wie du eine Einladung mit Microsoft Word gestalten kannst.

Geld Verdienen im Internet leicht gemacht

Primzahlen und RSA-Verschlüsselung

! " # $ " % & Nicki Wruck worldwidewruck

Programmieren mit Excel VBA Teil 2 Formulare als Benutzerschnittstellen

Kurzbeschreibung S&S Arbeitszeiterfassung

Nach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt:

Aktivierung von Makros in den Erfassungshilfen

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Fotos verkleinern mit Paint

EINFACHES HAUSHALT- KASSABUCH

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Anleitung über den Umgang mit Schildern

Tutorial: Gnumeric installieren und Jahres-Kostenübersicht erstellen mit Diagramm

Übungen Programmieren 1 Felix Rohrer. Übungen

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Das Persönliche Budget in verständlicher Sprache

Zur drittletzten Zeile scrollen

Eigenen Farbverlauf erstellen

Wie halte ich Ordnung auf meiner Festplatte?

Menü auf zwei Module verteilt (Joomla 3.4.0)

Die Invaliden-Versicherung ändert sich

s zu Hause lesen

Satzhilfen Publisher Seite Einrichten

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Kostenfreier kurs

Spielmaterial. Hallo! Ich bin der kleine AMIGO und zeige euch, wie dieses Spiel funktioniert. Viel Spaß! von Liesbeth Bos

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Ich möchte eine Bildergalerie ins Internet stellen

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Der Kalender im ipad

Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

Dokumentation von Ük Modul 302

AW: AW: AW: AW: Kooperationsanfrage anwalt.de

Visual Basic Basisbefehle Hinweis: Der Text in eckigen Klammern [ ] ist variabel, z.b. [var] => 5.3. Eckige Klammern sind stets wegzulassen!

M03a Lernstraße für den Unterricht in Sekundarstufe I

BERTSCH Dampftafel und Prozesse Excel-Makros FAQ

Michaela Weiss 30. März Lerneinheit 3: VBA Teil 1: Eingabe/Ausgabe

Leichte-Sprache-Bilder

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

Mehrere PDF-Dokumente zu einem zusammenfügen

Urlaubsregel in David

EDV-Fortbildung Kombi-Schulung Word-Excel Modul Excel. Informationen zum Programm. Die Programmoberfläche von Excel

2. Speichern und öffnen

Sin-Funktion vgl. Cos-Funktion

Tastatur auf Hebräisch umstellen

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Benutzerverwaltung mit Zugriffsrechteverwaltung (optional)

Zeichen bei Zahlen entschlüsseln

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

esms - sms senden & empfangen mit Outlook

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Excel Funktionen durch eigene Funktionen erweitern.

Neben dem Symbol Entwurfsmodus ist das Symbol Befehlschaltfläche zu sehen.

Programmierkurs Java

Erstellen einer digitalen Signatur für Adobe-Formulare

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

1. Richtig oder falsch? R F

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Anleitung zur Verwendung der VVW-Word-Vorlagen

Das bringt nichts. Trotzdem. Mach doch, was du willst. Mach ich auch. Wo sind die drei eigentlich hin gefahren? Emmett will sich neue PS3-Spiele

Evangelisieren warum eigentlich?

Abwesenheitsnotiz im Exchange Server 2010

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

B: bei mir war es ja die X, die hat schon lange probiert mich dahin zu kriegen, aber es hat eine Weile gedauert.

Voraussetzung. Anleitung. Gehen Sie auf Start Einstellungen und suchen Sie hier den Eintrag Datenverbindungen oder Verbindungen. Öffnen Sie diesen.

Eigene gestalten Internet- . In meinem heutigen Beitrag möchte ich mich speziell mit Outlook 2007 befassen.

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Mediator 9 - Lernprogramm

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

Mehr Arbeits-Plätze für Menschen mit Behinderung auf dem 1. Arbeits-Markt

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

OUTLOOK-DATEN SICHERN

Transkript:

Ecxel Makros Programmieren http://paranoia.scienceontheweb.net/paranoia/ - mailto: paranoia @ hush.com Wed Feb 3 18:20:05 CET 2010 22. August 2011 Inhaltsverzeichnis 1 Intro 2 2 Mein erstes Makro 3 3 Variablen 4 3.1 Deklarieren............................................ 4 3.2 Variable ausgeben........................................ 4 3.3 Ausgewählte Variablentypen.................................. 4 3.4 Typkonversion.......................................... 4 4 Eingabe und Ausgabe 5 4.1 Eingabe.............................................. 5 4.2 Ausgabe.............................................. 5 5 UserForm 6 5.1 Eine Funktion hinter einen Knopf stecken........................... 6 5.2 Aufgabe : Taschenrechner.................................... 7 6 Bedingte Verzweigung 8 7 Funktionen 8 8 Rekursive Funktionen... 9 8.1 Aufgabe produkt() und differenz()................................ 10 8.2 Aufgabe max() und min().................................... 10 8.3 Aufgabe Taschenrechner02................................... 10 8.4 Taschenrechner02 Add-ons.................................. 11 8.5 Na prima, eine Seite für Musterlösung Taschenrechner02.................. 12 9 Zählschleifen mit for und while..wend [optional] 13 1

1 INTRO 2 Disclaimer Wissen ist zum Teilen da. Ich teile mein Wissen mit Ihnen, lieber Kollege. Ich bin aber nicht perfekt. Unter paranoia@hush.com nehme ich dankbar Ihre Verbesserungsvorschläge entgegen. * Legal Blurb: Alle Informationen in diesem Dokument sind falsch, unvolständig, irreführend, irrelevant und / oder funktionieren einfach nicht. Wenn Sie es trotzdem benutzen, und es geht dabei etwas kaputt, ist das Ihr Problem, nicht meins. * Bitte teilen Sie meine Web-Adresse nicht Ihren Schülern mit. 1 Intro Ich will das gar nicht. Das ist die unreifste, schlechteste Programmiersprache, die ich je gesehen habe. Sie heißt Visual Basic for Applications (VBA) und ist eine Untermenge von VisualBasic (VB). Dennoch scheint es Firmen oder Abteilungen zu geben, die ihre Aufgaben teilweise in lokalen Excel- Versionen mit lokalen Makros zu erledigen versuchen. Vermutlich, weil sie keine andere Programmierumgebung installieren dürfen. Sei s drum.

2 MEIN ERSTES MAKRO 3 2 Mein erstes Makro Gehe excel. Öffne Ansicht Makro Neu. Nenne es Makro01 oder Test01 oder neu01. Tippe Sub HaloWelt() MsgBox ("Hallo Welt!") Starte es mit GrünesDreieck oder Makro-Starten oder Doppelklick... probiers halt. Speichere die Tabelle als TabelleMitMakro, Datentyp Tabelle mit Makro. Standardmäßig speichert Excel ohne Makros. Standardmäßig öffnen schlaue User ohne Makros.

3 VARIABLEN 4 3 Variablen 3.1 Deklarieren Die einfachte Methode ist : benutzen. s = "irgendein Text wdovbqpowidv qipsjfv piqjsnv" Die zweit-einfachste ist : den alten Basic-DIM-Befehl verwenden. dim s as String s = "irgendein Text wdovbqpowidv qipsjfv piqjsnv" 3.2 Variable ausgeben Ist gelegentlich nützlich, wenn man erkennen will, wer da wo amokläuft. s = "irgendein Text wdovbqpowidv qipsjfv piqjsnv" msgbox ("s = " & s) Das in Gänsefüßchen wird wörtlich ausgegeben. Das einzelne s wird als Variable verstanden und ihr Wert ausgegeben. Das & addiert die beiden, so daß EIN String ausgegeben wird. 3.3 Ausgewählte Variablentypen Integer Ganzzahl, d.h. ohne Nachkommastellen. Der Wertebereich ist von -32768 bis +32767. Double Zahlen mit Nachkommastellen. -1,79769313486232E308 bis -4,94065645841247E-324 für negative Werte; String Zeichenkette. In Gänsefüßchen. ZB, Halli hallo, db238@.-. Maximal ungefähr 2 Billionen Zeichen. Boolean Wahr oder Falsch. Es gibt noch mehr; bei Interesse frage g : visual basic variablentypen. 3.4 Typkonversion Manchmal hat man einen String und möchte aber, daß er sich verhält wie eine Zahl. Lösung: Multipliziere mit 1. Manchmal hat man eine Zahl und möchte aber, daß sie sich verhält wie eine Zahl. Lösung: Addiere ein Nichts ( ).

4 EINGABE UND AUSGABE 5 4 Eingabe und Ausgabe 4.1 Eingabe Wir können unsere Eingabewerte aus Zellen holen: dim s as String s = tabelle1.range("b5").value Oder in unserem Formular (das kommt später) aus der TextBox1: dim i as integer i = userform1.textbox1.value dim d as double d = userform1.textbox2.value 4.2 Ausgabe ist wie Eingabe, nur rückwärts: userform1.textbox2.value = a * b tabelle1.range("b5").value = a + b msgbox (a*b) gibt das Ergebnis von a*b nach TextBox2 rate mal klappt auch

5 USERFORM 6 5 UserForm RechtsKlicke Neu-Userform, es erscheint ein häßliches Fenster und ein häßlicher Werkzeugkasten. Klicke auf Label (im Werkzeugkasten) und ziehe ein Label auf (in dem häßlichen Fenster). Erzeuge auch noch eine Textbox und einen Knopf. Verändere die Eigenschaften jedes Objekts : markiere es stelle im Eigenschaften-Fenster links unten etwas um. Du könntest mit Farben und Schriften anfangen. Erzeuge letztlich ein Label Namenabfrage, ein Label Sag mir deinen Namen:, ein Label namens Label3 mit Nix drin, eine Textbox namens TextBox1 und einen Knopf mit der Beschriftung (caption) los. Hups Knopf heißt in WinzigweichSprech Befehlsschaltfläche. Führe es aus. Alles geht bis auf den Knopf. 5.1 Eine Funktion hinter einen Knopf stecken Doppelklicke den Knopf und sage: Private Sub CommandButton1_Click() Dim name As String name = TextBox1 Label3 = "hallo, " & name Nun geht s. Namentliche Begrüßung

5 USERFORM 7 5.2 Aufgabe : Taschenrechner Bastele in VBA einen Taschenrechner: Hinweise: Taschenrechner Ver. 01 1. Schriftgrößen und alberne Titel und Beschriftungen stellt man im Eigenschaftenfenster ein. Dabei darf das Skript nicht laufen. 2. Für den Plus-Knopf : doppelklicke ihn hole die Werte und schreibe das Ergebnis. 3. Die anderen Knöpfe sind sehr, sehr ähnlich. 4. modulo gibt den Rest bei der ganzzahligen Division. Bsp: 17 : 4 = 4 Rest 1. Genau diese 1. Bsp: 5 : 3 = 1 Rest 2. Genau diese 2. Ach so: schreibt man in VBA mod. 5. Unterstrichenes U: Eigenschaft accelerator (engl: Beschleuniger, auch: shortcut.) Beschleunigt während der Ausführung durch Alt-U. 6. Beim Teilen durch 0 bricht das Script ab. Abhilfe: Statt c = a/b TextBox15 = c nimm if b=0 then c = "teile nicht durch null du loser" else: c = a/b endif Hilft auch bei Modulo.

6 BEDINGTE VERZWEIGUNG 8 6 Bedingte Verzweigung if einebestimmtebedingungwahrist then tue dies endif if nocheinebestimmtebedingungwahrist then tue dies und dies und dieses noch und dies auch und dies nochmal else: tue das und das und das auch noch endif kurz lang sonst 7 Funktionen Ein Sub kann keine Parameter übernehmen; eine Funktion schon. Ein Sub kann man an einen Knopf binden; eine Funktion nicht. Function summe (a, b) summe = a + b End Function Sub SummeTest() MsgBox ("summe (8, 3) = " & ( summe (8, 3))) Die Funktion summe bekommt zwei Parameter, die hier a und b genannt werden Sie können sie auch Hinz und Kunz nennen dann müssen Sie aber auch dabei bleiben. summe() berechnet die Summe und gibt sie zurück. Zurückgeben geht, indem einer nicht existenten Variablen, die so wie die Funktion heißt, das Ergebnis zugewiesen wird.

8 REKURSIVE FUNKTIONEN... 9 8 Rekursive Funktionen...... rufen sich selber auf. Deshalb muß man höllisch aufpassen, daß sie das nicht unendlich oft tun, und eine funktionierende Abbruchbedingung einbauen. Hier ein Beispiel für Fakultät: Function fact (i) neugierig? msgbox("berechne fact(" & i & ").") if (i<2) then fact = 1 endif fact = i * fact(i-1) End Function

8 REKURSIVE FUNKTIONEN... 10 8.1 Aufgabe produkt() und differenz() Schreiben Sie die Funktionen produkt (p1, p2) und differenz (kiks, keks). 8.2 Aufgabe max() und min() max() gibt die größere von beiden Zahlen zurück. min() gibt die kleinere. max(max(a,b),c) gibt was? 8.3 Aufgabe Taschenrechner02 Schreiben Sie den verbesserten Taschenrechner02. Hinweise: Private Sub TextBox1_Change() MsgBox ("textbox1 wurde geändert.") TODO : realistischer Screenshot. Ohne hex, bin, etc. Private Sub UserForm_Click() MsgBox ("User hat Form geklickt.") hier kommt der Code für Hintergrund-Farbwechsel rein Mehr Hinweise: Ähm also ein Sub() an die Textfelder zu binden ist leicht. Es dann zum Laufen zu bringen, zb während die Textfelder leer sind, ist schwer. Aber möglich, geht so: Wenn meine Textbox leer ist (textbox1.value = ""), setze ich a=0, sonst setze ich a auf textbox1.value * 1. Für beide Textboxen, versteht sich. Beim Dividieren muß ich aufpassen, ob b=0 ist.

8 REKURSIVE FUNKTIONEN... 11 Beim Potenzieren sollte b kleiner 5 sein. Bei Fakultät sollte a kleiner 200 sein. Der letzte lesbare Wert wird bei 170! ausgebenen. Radizieren: a hoch b schreibt man a ^ b. wurzel aus a schreibt man a ^ 0.5. dritte wurzel aus a schreibt man a ^ 0.3333333. vierte oder 17te wurzel aus a verrate ich nicht. * Ist alles nur definiert wenn a>=0. * Sub f() 2 werte holen und labels vollschreiben Private Sub TextBox1_Change() MsgBox ("textbox1 wurde geändert.") call f() Private Sub TextBox2_Change() MsgBox ("textbox2 wurde geändert.") call f() 8.4 Taschenrechner02 Add-ons Add-On: Schreiben Sie ihn so, daß er beim Klick aufs Formular die Formularfarbe ändert. Add-On: Geben Sie das Ergebnis der Division aus als GanzZahl Rest Ganzzahl. Add-On : Geben Sie auch den gerundeten Wert round ( zahl, nks) aus. zahl ist dabei die Zahl, die gerundet wird; nks ist die zahl der Nachkommastellen. Testen Sie sorgfältig, u.a. mit 2,5. Add-On : Schreiben Sie selbst die Funktion runden. Die Funktion conversion.int(double) könnte dabei hilfreich sein.

8 REKURSIVE FUNKTIONEN... 12 8.5 Na prima, eine Seite für Musterlösung Taschenrechner02... und die ist noch ganz leer. Montag nochmal gucken.

9 ZÄHLSCHLEIFEN MIT FOR UND WHILE..WEND [OPTIONAL] 13 9 Zählschleifen mit for und while..wend [optional] zählschleife mit if drin For i = 1 To 20 MsgBox (i) Range("d" & (i + 6)).Value = i * i If (i = 9) Then Range("d" & (i + 6)).Value = "i ist 9, hier mach ich nix. " End If Next i while..wend Dim v As Integer v = 20 While (v > 0) Range("f" & (v + 6)).Value = v v = v - 1 Wend do... loop while bed. / until bed. do while bed.... loop MsgBox ("sag ok um ford zu fahren") hilfe do..loop