11.10.2013 Aufrufe

Excel aufmöbeln mit VBA

Excel aufmöbeln mit VBA

Excel aufmöbeln mit VBA

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Tabelle1 <br />

Tabelle3


Tabelle1 <br />

Tabelle3


Tabelle1 <br />

Tabelle3



+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

• <br />

<br />

• <br />

<br />

<br />

<br />

• <br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />


• <br />

• <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

• <br />

<br />

<br />

<br />

• <br />

<br />

+ <br />

• <br />

<br />

<br />

← → ↑ ↓ <br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />


• <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ <br />

<br />

<br />

+


• <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ <br />

<br />

<br />

+


+


• <br />

<br />

<br />

• <br />

<br />


• <br />

<br />

<br />

• <br />

<br />


+ <br />

+ <br />

+ +<br />

<br />

<br />

−−→ −−→ <br />

⇑ +−−→ −−→ <br />

<br />

+−−→ −−→ ⇑ + +−−→ −−→ <br />

+−−→ −−→ <br />

<br />

<br />

<br />

<br />

+


• <br />

<br />

<br />

<br />

<br />


• <br />

<br />

<br />

<br />

←↪ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ ←↪


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ <br />

+ ⇑ + <br />

+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

• <br />


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ <br />

+ ⇑ + <br />

+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

• <br />


← → ↑ ↓ <br />

+ ←


+ ← <br />

+ ↑ <br />

+ ↓ <br />

↑ <br />

↓ <br />

+ ↑ <br />

+ ↓ <br />

<br />

+ <br />

+ <br />

+ ↑ <br />

+ ↓


+ ←↪<br />

<br />

<br />

<br />

<br />

+


⇑ <br />

← → ↑ ↓ <br />

<br />

⇑ + <br />

+ <br />

⇑ <br />

<br />

⇑ ⇑ + <br />

⇑<br />

⇑ +


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e



+−−→ −−→


+−−→ −−→


+−−→ −−→


+ <br />

<br />

←↪ <br />

<br />

<br />

<br />

<br />

+ <br />

<br />

+


+


+


+


K0<br />

r = 8 <br />

Kn = K0(1+r) n r <br />

K0 n <br />

<br />

Kn = K0(1 + nr) <br />

<br />

<br />

<br />

<br />

<br />

. . .


. . .


e e <br />

<br />

1.000 ∗ 10 + 2.000 ∗ 5 = 20.000<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

= 10 ∗ B2 + 5 ∗ C2<br />

<br />

←↪ <br />

<br />

<br />

<br />

<br />

<br />

<br />

10∗ <br />

+5∗


= 10 ∗ B2 + 5 ∗ C2<br />

<br />

e <br />

e <br />

e e <br />

<br />

<br />

<br />

<br />

= I2 ∗ B2 + I3 ∗ C2<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

= $I$2 ∗ B2 + $I$3 ∗ C2<br />

= I$2 ∗ B2 + I$3 ∗ C2.<br />

$I$2 ∗ B3 + $I$3 ∗ C3 = I$2 ∗ B3 +<br />

I$3 ∗ C3


= $H$2 ∗ B2 + $H$3 ∗ C2<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

A<br />

<br />

<br />

<br />

<br />

¡ \ \ ¡ A<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ +


m n <br />

m·n


= K2 ∗ B2 : B13 + K3 ∗ C2 : C13<br />

K2 = 20 K3 = 12 <br />

<br />

+ ⇑ + ←↪ <br />

<br />

<br />

+ ⇑ + ←↪ ←↪ <br />

<br />

<br />

<br />

+ ⇑ + ←↪ <br />

<br />

<br />

<br />

¢<br />

¢<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

= A1&B1, <br />

= A1 > B1, <br />

= A2¢(B2 ∗ C2), <br />

= A2


= <br />

= <br />

= <br />

<br />

<br />

<br />

<br />

fx


= B14/12<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e e <br />

e e


= B14/12<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e e <br />

e e


= B14/12<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e e <br />

e e


= <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

= <br />

+


=


=


n <br />

A B A m · n<br />

B n · k m · k <br />

<br />

+ ⇑ + ←↪ <br />

<br />

<br />

<br />

<br />

<br />

= <br />

+ ⇑ + ←↪ <br />

<br />

<br />

<br />

A −1 A A <br />

<br />

<br />

<br />

B = A T A A m n <br />

n m bi,j = aj,i<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

A B C D E F G H I J K L M N O<br />

A A Det(A) INDEX($A$2:$C$4;3;2)<br />

4 8 8 - 9/20 - 2/5 4/5 40 8 4 5 6<br />

5 7 11 2/5 - 1/5 - 1/10 8 7 8<br />

6 8 10 - 1/20 2/5 - 3/10 8 11 10<br />

-1<br />

A T


10 = 4 + 6 <br />

<br />

11 = 3 + 6 + 2 <br />

<br />

<br />

+ ⇑ + ←↪ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

←↪


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

A B C D E F G H I J K<br />

Kzl. Modul SWS H-Geld Kzl. Modul SWS H-Geld Kurs Hörer<br />

ana Analysis 8 60 ana Analysis 8 60 A 34<br />

la Lin. Algebra 6 40 ana Analysis 8 60 B 45<br />

cee C 6 80 la Lin. Algebra 6 40 A 56<br />

dat Datenbanken 6 70 cee C 6 80 A 67<br />

dat Datenbanken 6 70 A 45<br />

dat Datenbanken 6 70 B 37<br />

=SVERWEIS($F2;$A$2:$D$6;SPALTE()-5;FALSCH)<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />


• <br />

<br />

<br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />


• <br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

<br />

A B C D E F G H I J K L M N O P Q R S T U<br />

Zahlen 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20<br />

UG 4<br />

OG 8<br />

Summe 30


1 2<br />

V = .<br />

3 4<br />

<br />

<br />

<br />

+ ⇑ + ←↪ <br />

<br />

V −1 =<br />

<br />

−2 1<br />

.<br />

1, 5 −0, 5<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

A B C D E F G H I<br />

Anfangsjahr 2010<br />

Laufzeit 7<br />

Jahre 2010 2011 2012 2013 2014 2015 2016 2017<br />

Sternzeichen Igel Ratte Tiger Drachen Schwein Igel Ratte Tiger


1<br />

2<br />

3<br />

4<br />

5<br />

A B C D E F G H<br />

Anfangsdatum Wochentag Frist Ablaufsdatum Wochentag<br />

10.10.2012 Mi 10 22.10.2012 Mo<br />

=INDEX({"So"."Mo"."Di"."Mi"."Do"."Fr"."Sa"};1;WOCHENTAG(A2))<br />

=WENN(WOCHENTAG(A2)+REST(C2;7)=7;A2+C2+2;WENN(WOCHENTAG(A2)+REST(C2;7)=8;A2+C2+1;A2+C2))


n A <br />

<br />

A <br />

n <br />

i <br />

q = 1 + i<br />

t = n <br />

<br />

REN = A(q n−1 + q n−2 + · · · + 1) = Asn,<br />

sn = q n−1 + q n−2 + · · · + 1 = qn − 1<br />

,<br />

i<br />

n − 1 n − 2 <br />

REN <br />

sn <br />

<br />

RAN <br />

<br />

q −n <br />

RAN = Aq −n sn,<br />

an = q −n sn.<br />

an <br />

A i n <br />

sn an


+


+ ⇑ +


• <br />

<br />


←↪ + ⇑ + ←↪


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

A B C D E<br />

k Tag Monat Jahr Wochentag<br />

1 1 10 2009 Do<br />

2 2 10 2009 Fr<br />

3 3 10 2009 Sa<br />

4 4 10 2009 So<br />

5 5 10 2009 Mo<br />

6 6 10 2009 Di<br />

7 7 10 2009 Mi<br />

8 8 10 2009 Do<br />

<br />

<br />

<br />

<br />

<br />

= <br />

= <br />

= <br />

= <br />

= <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

x 2 − 2x − 3 = 0


x 5 − 2x 3 − 3 = 0<br />

<br />

x ↦→ 2x x ↦→ tan x<br />

<br />

tan x − 2x = 0. <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

x <br />

<br />

<br />

x = 0 <br />

<br />

<br />

<br />

<br />

x = 1, 16556118520721


0, 0000000001 = 10 −9<br />

<br />

10 −4


A B C D E F G H I J<br />

1<br />

2<br />

3<br />

4<br />

Monat<br />

Jan<br />

Feb<br />

Mrz<br />

Bier Limo<br />

350 2000<br />

420 2160<br />

504 2320<br />

Gewinn<br />

in Euro<br />

880,00<br />

984,00<br />

1099,20<br />

4.000<br />

3.500<br />

3.000<br />

Säulendiagramm<br />

5 Apr 604 2480 1227,20 2.500<br />

6 Mai 724 2640 1371,20 2.000<br />

7 Jun 868 2800 1534,40 1.500<br />

8 Jul 1041 2960 1720,80 1.000<br />

9 Aug 1249 3120 1935,20 500<br />

10<br />

11<br />

Sep<br />

Okt<br />

1498 3280<br />

1797 3440<br />

2182,40<br />

2469,60<br />

0<br />

12 Nov 2156 3600 2804,80<br />

13<br />

14<br />

Dez 2587 3760 3197,60<br />

Bier Limo Gewinn<br />

i E<br />

15 Heute Geburtstag Gelebte Tage Alter Uhrzeit<br />

16 07.10.2009 19.01.1971 14141 38 01:03:03<br />

17 Blatt neu berechnen: Taste F9!<br />

Feb<br />

Jan<br />

Dez<br />

Nov<br />

Okt<br />

Sep<br />

Aug<br />

Jul<br />

Jun<br />

Mai<br />

Apr<br />

Mrz<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e e <br />

e <br />

e <br />

e <br />

e


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

<br />

A B C D E F G H I<br />

Name Vorname Geschlecht Gebdat Gatte Kinder FBR Grundgehalt Gehalt<br />

Bulletti Benito M 11.02.1962 0 MaD 4.600 4.700<br />

Eisenbeiß Elfriede W 22.11.1944 Erich 0 SuF 3.450 4.000<br />

Schurigl Schorsch M 13.11.1949 0 MaD 4.800 5.100<br />

Lobedanz Lothar M 25.08.1965 Lola 1 MaD 4.700 5.100<br />

Grün Gero M 13.02.1953 0 SuF 6.000 6.350<br />

Greulich Gitta W 11.11.1972 1 MaD 4.100 4.300<br />

Gründlich Gerda W 15.12.1965 0 SuF 3.800 4.050<br />

Trauerwein Thaddäus M 11.11.1955 Trude 2 MaD 6.000 6.700<br />

Männer 26.100 Frauen 11.350 Σ 37.450 37.900<br />

SuF 13.250 Eltern 14.800 μ 4.681 5.038<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

A B C D E F<br />

Anfangsjahr Anfangsmonat Laufzeit (Monate) Endjahr Endmonat<br />

2008 6 56 2013 1<br />

7884<br />

Einkommen Gerundet Steuer Jahr Schaltjahr<br />

46299,45 46296 7884 2000 Ja<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

e <br />

e e e <br />

<br />

e e <br />

<br />

<br />

<br />

<br />

<br />

<br />

L R


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

15<br />

16<br />

A B C D E F G H I J K L M N O P Q R S T U V W X Y<br />

Matrix L<br />

Matrix R<br />

1 0 0 0 1 3 1 -1 1 3 1 -1 4 -2 7 -5 1 0 0 0<br />

2 1 0 0 0 -1 -1 2 2 5 1 0 -1 1 -3 2 0 1 0 0<br />

3 0 1 0 0 0 1 0 3 9 4 -3 -3 0 1 0 0 0 1 0<br />

4 -1 1 1 0 0 0 1 4 13 6 -5 -3 1 -1 1 0 0 0 1<br />

{=MMULT(L;R)} {=MINV(A)}<br />

MDET(L) 1 MDET(R) -1 MDET(A) -1<br />

A = L*R Inverse A -1<br />

{=MTRANS(A)} A<br />

1 0 0 0 1 3 2 -5 1 2 3 4 4 -2 7 -5<br />

-2 1 0 0 0 -1 -1 2 3 5 9 13 -1 1 -3 2<br />

-3 0 1 0 0 0 1 0 1 1 4 6 -3 0 1 0<br />

-3 1 -1 1 0 0 0 1 -1 0 -3 -5 -3 1 -1 1<br />

-1 =R -1 *L -1<br />

Inverse L -1<br />

Inverse R -1<br />

Matrixformeln: Strg+Umschalt+Eingabe!<br />

A* A -1<br />

(A T ) −1 <br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

18<br />

A B C D E F G<br />

Preisliste Kundenliste<br />

ArtikelNr Artikel Preis KundenNr Kunde Rabatt<br />

1 Babypuder Hauchzart 4,50 1 BabyDiscount 10,00%<br />

2 Alete Spuckspinat 2,30 2 BaByHiP 4,00%<br />

3 Ohropax 1,20 3 BabyParadies 13,00%<br />

AuftragsNr ArtikelNr Artikel<br />

Auftragsposten<br />

KundenNr Kunde Anzahl Preis<br />

1 1 Babypuder Hauchzart 2 BaByHiP 12 51,84<br />

2 1 Babypuder Hauchzart 1 BabyDiscount 120 486,00<br />

1 2 Alete Spuckspinat 2 BaByHiP 13 28,70<br />

3 3 Ohropax 3 BabyParadies 800 835,20<br />

Umsatzliste<br />

KundenNr Kunde Gesamter Umsatz<br />

1 BabyDiscount 486,00<br />

2 BaByHiP 80,54<br />

3 BabyParadies 835,20


K0 i n <br />

<br />

<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

A B C D E F G H<br />

Kapital Zins Laufzeit Zeit Kexp Keinfach Unterschied<br />

5000,00 8,00% 5 01.01.1999 5.000,00 5.000,00 0,00<br />

01.01.2000 5.400,00 5.400,00 0,00<br />

01.01.2001 5.832,00 5.800,00 32,00<br />

01.01.2002 6.298,56 6.200,00 98,56<br />

01.01.2003 6.802,44 6.600,00 202,44<br />

01.01.2004 7.346,64 7.000,00 346,64<br />

<br />

<br />

<br />

<br />

<br />

Zins <br />

1<br />

2<br />

3<br />

4<br />

5<br />

A B C D E F G H I J K<br />

Vertragsgrundlagen<br />

Wert<br />

Zins 0,0500 Anfangs- Anfangs- Anzahl End- End- Zahltermine Monatlicher<br />

Abschlusskosten 0,0400 jahr monat Monate jahr monat pro Jahr Zahlbeitrag<br />

Monatsfaktor 1,00407 2008 10 38 2011 11 1 250<br />

<br />

MonF aktor = (1 + Zins) (1/12) .


alpha <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

18<br />

19<br />

20<br />

21<br />

22<br />

23<br />

24<br />

25<br />

26<br />

27<br />

A B C D E F G H I J K L M<br />

k<br />

Jahr<br />

Monat<br />

Zahlbeitrag<br />

Alphakosten<br />

Kapital<br />

k<br />

Jahr<br />

Monat<br />

Zahl<br />

beitrag<br />

Alphakosten<br />

1 2008 10 250 10,83 239,17 1 2008 10 3000 130,00 2.870,00<br />

2 2008 11 250 10,83 479,31 2 2008 11 0 0,00 2.881,69<br />

3 2008 12 250 10,83 720,43 3 2008 12 0 0,00 2.893,43<br />

4 2009 1 250 10,83 962,53 4 2009 1 0 0,00 2.905,22<br />

5 2009 2 250 10,83 1.205,62 5 2009 2 0 0,00 2.917,06<br />

6 2009 3 250 10,83 1.449,70 6 2009 3 0 0,00 2.928,94<br />

7 2009 4 250 10,83 1.694,77 7 2009 4 0 0,00 2.940,87<br />

8 2009 5 250 10,83 1.940,84 8 2009 5 0 0,00 2.952,86<br />

9 2009 6 250 10,83 2.187,91 9 2009 6 0 0,00 2.964,89<br />

10 2009 7 250 10,83 2.435,99 10 2009 7 0 0,00 2.976,97<br />

11 2009 8 250 10,83 2.685,09 11 2009 8 0 0,00 2.989,09<br />

12 2009 9 250 10,83 2.935,19 12 2009 9 0 0,00 3.001,27<br />

13 2009 10 250 10,83 3.186,32 13 2009 10 3000 130,00 5.883,50<br />

14 2009 11 250 10,83 3.438,46 14 2009 11 0 0,00 5.907,47<br />

15 2009 12 250 10,83 3.691,64 15 2009 12 0 0,00 5.931,54<br />

16 2010 1 250 10,83 3.945,85 16 2010 1 0 0,00 5.955,70<br />

17 2010 2 250 10,83 4.201,09 17 2010 2 0 0,00 5.979,97<br />

18 2010 3 250 10,83 4.457,37 18 2010 3 0 0,00 6.004,33<br />

19 2010 4 250 10,83 4.714,70 19 2010 4 0 0,00 6.028,79<br />

20 2010 5 250 10,83 4.973,07 20 2010 5 0 0,00 6.053,36<br />

21 2010 6 250 10,83 5.232,50 21 2010 6 0 0,00 6.078,02<br />

22 2010 7 250 10,83 5.492,99 22 2010 7 0 0,00 6.102,78<br />

23 2010 8 250 10,83 5.754,53 23 2010 8 0 0,00 6.127,64<br />

24 2010 9 250 10,83 6.017,14 24 2010 9 0 0,00 6.152,61<br />

25 2010 10 250 0,00 6.291,66 25 2010 10 500 0,00 6.677,68<br />

26 2010 11 250 0,00 6.567,29 26 2010 11 0 0,00 6.704,88<br />

<br />

Kapital


x 5 − 2x 3 − 3 = 0, cos(x) = x.


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

A B C D E F G H I<br />

CDU/CSU SPD FDP GRÜNE<br />

1998 40,5 42,5 6,4 7,5<br />

2002 38,5 38,5 7,4 8,5<br />

2005 35,5 34,5 8,4 9,5<br />

2009 33,9 23,5 14,4 12,5<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0<br />

1998<br />

2002<br />

2005<br />

2009<br />

Anteil in %<br />

45<br />

40<br />

35<br />

30<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

Wahlen 1998 bis 2009<br />

CDU/CSU<br />

SPD<br />

FDP<br />

GRÜNE<br />

1998 2002 2005 2009<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Jahr


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

A B C D E F G H I<br />

CDU/CSU SPD FDP GRÜNE<br />

1998 40,5 42,5 6,4 7,5<br />

2002 38,5 38,5 7,4 8,5<br />

2005 35,5 34,5 8,4 9,5<br />

2009 33,9 23,5 14,4 12,5<br />

50<br />

40<br />

30<br />

20<br />

10<br />

0<br />

1998<br />

2002<br />

2005<br />

2009<br />

Anteil in %<br />

45<br />

40<br />

35<br />

30<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

Wahlen 1998 bis 2009<br />

CDU/CSU<br />

SPD<br />

FDP<br />

GRÜNE<br />

1998 2002 2005 2009<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Jahr


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

A B C D E F G H<br />

Anteil<br />

CDU/CSU 38,5<br />

SPD 38,5<br />

FDP 7,4<br />

GRÜNE 8,5<br />

CDU/CSU SPD FDP GRÜNE<br />

40<br />

20<br />

0<br />

38,5 38,5<br />

<br />

<br />

<br />

<br />

Anteil in %<br />

7,4<br />

8,5


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

A B C D E F G H<br />

Anteil<br />

CDU/CSU 38,5<br />

SPD 38,5<br />

FDP 7,4<br />

GRÜNE 8,5<br />

CDU/CSU SPD FDP GRÜNE<br />

40<br />

20<br />

0<br />

38,5 38,5<br />

<br />

<br />

<br />

<br />

Anteil in %<br />

7,4<br />

8,5


• <br />

<br />

<br />

<br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />


• <br />

<br />

<br />

<br />

<br />

• <br />

<br />

<br />

<br />

<br />

<br />


e <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

A B C D E F G H I<br />

1999 2000 2001 2002 2003 2004 2005 2006<br />

Kapital 5.000,00 5.400,00 5.832,00 6.298,56 6.802,44 7.346,64 7.934,37 8.569,12<br />

Zinsen 0 400,00 432,00 466,56 503,88 544,20 587,73 634,75<br />

10.000<br />

8.000<br />

6.000<br />

4.000<br />

2.000<br />

0<br />

1998 1999 2000 2001 2002 2003 2004 2005 2006


e <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

A B C D E F G H I<br />

1999 2000 2001 2002 2003 2004 2005 2006<br />

Kapital 5.000,00 5.400,00 5.832,00 6.298,56 6.802,44 7.346,64 7.934,37 8.569,12<br />

Zinsen 0 400,00 432,00 466,56 503,88 544,20 587,73 634,75<br />

10.000<br />

8.000<br />

6.000<br />

4.000<br />

2.000<br />

0<br />

1998 1999 2000 2001 2002 2003 2004 2005 2006


e <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

A B C D E F G H I<br />

1999 2000 2001 2002 2003 2004 2005 2006<br />

Kapital 5.000,00 5.400,00 5.832,00 6.298,56 6.802,44 7.346,64 7.934,37 8.569,12<br />

Zinsen 0 400,00 432,00 466,56 503,88 544,20 587,73 634,75<br />

10.000<br />

8.000<br />

6.000<br />

4.000<br />

2.000<br />

0<br />

1998 1999 2000 2001 2002 2003 2004 2005 2006


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+


1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

14<br />

15<br />

16<br />

17<br />

18<br />

<br />

A B C D E F G H I J K L M N O P Q<br />

1,56 2,05 1,76 1,68 1,86 1,71 1,62 1,78 1,76 1,83<br />

1,74 1,69 1,91 1,89 1,81 1,93 1,72 1,78 1,73 1,83<br />

4,00<br />

VDF VF<br />

1,20<br />

UG OG Δ i h i f i d i F i<br />

1,50 1,65 0,15 2 0,1 0,667 0,1<br />

1,65 1,75 0,1 6 0,3 3,000 0,4<br />

1,75 1,85 0,1 7 0,35 3,500 0,75<br />

1,85 1,95 0,1 4 0,2 2,000 0,95<br />

1,95 2,10 0,15 1 0,05 0,333 1<br />

Matrixformel Spalte D:<br />

{HÄUFIGKEIT($A$1:$J$2;$B$5:$B$9)}<br />

1,30 1,50 1,65 1,75 1,85 1,95 2,10 2,25<br />

VF 0,00 0,00 0,10 0,40 0,75 0,95 1,00 1,00<br />

0,00<br />

0,00<br />

1,40 1,60 1,80 2,00 2,20<br />

1,50 1,50 1,65 1,65 1,65 1,75 1,75 1,75 1,85 1,85 1,85 1,95 1,95 1,95 2,10 2,10<br />

VDF 0,00 0,67 0,67 0,00 3,00 3,00 0,00 3,50 3,50 0,00 2,00 2,00 0,00 0,33 0,33 0,00<br />

3,00<br />

2,00<br />

1,00<br />

Größe in [m]<br />

<br />

<br />

<br />

hi <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ + ←↪<br />

<br />

n<br />

fi = hi/n <br />

Fi <br />

i <br />

F0 = f0,<br />

Fi = fi + Fi−1, i = 1 k.<br />

Fk = 1 <br />

Fi OGi F0 <br />

UG1 k + 1 (UG1, F0) (OG1, F1) <br />

(OGk, Fk) <br />

<br />

1,00<br />

0,80<br />

0,60<br />

0,40<br />

0,20


∆i <br />

fi <br />

di = fi<br />

∆i<br />

di fi <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

∆i<br />

G = − (x − 3) 2 − (y − 2) 2 + 5<br />

x + y ≥ 3<br />

x 2 + y 2 ≤ 9<br />

x, y ≥ 0


x y <br />

x, y ≥ 0 <br />

<br />

<br />

<br />

<br />

¢ ¢ <br />

<br />

<br />

<br />

¢ ¢


x = 9/ √ 13<br />

y = 6/ √ 13 <br />

<br />

3,5<br />

3<br />

2,5<br />

2<br />

1,5<br />

1<br />

0,5<br />

0<br />

0 1 2 3 4


y = sin(x) z = cos(x) [−4, 4]<br />

<br />

y = sin(πx)/(πx) [−6, 6] <br />

x = 0 1<br />

<br />

G = x + 3y x · y ≤ 4 x 2 · y ≤ 16 2x −<br />

2y ≤ 7 −2x + 2y ≤ −3 x, y ≥ 0 <br />

<br />

<br />

<br />

<br />

<br />

(x, y) <br />

x + y ≥ 250 <br />

(100, 100) <br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

13<br />

A B C D E F G H I<br />

Zahl<br />

der<br />

Flüge<br />

Flug-<br />

Flug<br />

platz x Flughäfen Kilometer<br />

A 40 200 40 4019,9502<br />

B 160 210 10 1702,9386<br />

C 250 160 20 4560,7017<br />

D 220 80 30 5731,492<br />

E 100 40 20 1843,9089<br />

F 50 120 10 282,84271<br />

Optimum 30 100<br />

Min z =<br />

u. d. Nebenbedingungen<br />

18141,834<br />

x + y ≤ 250 130<br />

(x - 100)^2 + (y - 100)^2 ≥ 400 4900<br />

250<br />

200<br />

150<br />

100<br />

50<br />

0<br />

Y<br />

Standorte der Flughäfen<br />

0 50 100 150 200<br />

X<br />

250<br />

Flughäfen Optimum


X µ =<br />

1, 80 σ = 0, 07 <br />

<br />

<br />

<br />

x ↦→ f(x) =<br />

0, 5x 4 − 2x − 3 xp xn <br />

<br />

x0 > xp <br />

x0 = 3<br />

<br />

[−2, 3]<br />

xn<br />

<br />

<br />

x ↦→ f(x) = x 4 /4 − 5/4x 2 + 1 [−3, 3]


X µ =<br />

1, 80 σ = 0, 07 <br />

<br />

<br />

<br />

x ↦→ f(x) =<br />

0, 5x 4 − 2x − 3 xp xn <br />

<br />

x0 > xp <br />

x0 = 3<br />

<br />

[−2, 3]<br />

xn<br />

<br />

<br />

x ↦→ f(x) = x 4 /4 − 5/4x 2 + 1 [−3, 3]


X µ =<br />

1, 80 σ = 0, 07 <br />

<br />

<br />

<br />

x ↦→ f(x) =<br />

0, 5x 4 − 2x − 3 xp xn <br />

<br />

x0 > xp <br />

x0 = 3<br />

<br />

[−2, 3]<br />

xn<br />

<br />

<br />

x ↦→ f(x) = x 4 /4 − 5/4x 2 + 1 [−3, 3]


• <br />

<br />


\


+ <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+ <br />

<br />

<br />

<br />

+


⇑ + <br />

<br />

<br />

⇑ +


Sub <br />

End Sub


Sub IrgendeinName() <br />

End Sub <br />

<br />

<br />

<br />

Sub NeuesBlatt() Sub NeuesBlatt<br />

<br />

<br />

<br />

’ Löschen der dritten Tabelle<br />

Sub Tabelle3Weg()<br />

Sheets(3).Select<br />

ActiveSheet.Delete<br />

End Sub<br />

’ Neuerstellung der dritten Tabelle<br />

Sub Tabelle3Her()<br />

Sheets.Add<br />

ActiveSheet.Name = "Tabelle3"<br />

Sheets("Tabelle3").Move After:=Sheets(Sheets.Count)<br />

End Sub<br />

Tabelle3Weg() <br />

<br />

Tabelle3Her() <br />

Add Sheets <br />

<br />

ActiveSheet <br />

<br />

<br />

<br />

<br />

<br />

Sheets("Tabelle3").Select<br />

<br />

<br />

<br />

<br />

HalloA1() <br />

<br />

Save_As()


+ <br />

<br />

<br />

<br />

Tabelle3Weg() Tabelle3Her() <br />

<br />

<br />

Tabelle3Her()


Sub ZellenKopie()<br />

Sheets(1).Range("A1").Value = Sheets(3).Range("C1").Value<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

Function Addi(ByVal a As Double, ByVal b As Double) As Double<br />

Addi = a + b<br />

End Function


Sub Function <br />

a b


Sub AddierenUndKopieren()<br />

Sheets(3).Range("C1").Value = _<br />

Addi(Sheets(3).Range("A1").Value, _<br />

Sheets(3).Range("B1").Value)<br />

ZellenKopie<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Sub Gustav()


Dim Wert As Integer<br />

Wert = MsgBox("Das aktive Arbeitsblatt Gustav nennen?", _<br />

vbYesNo + vbQuestion, "Entscheidung!")<br />

If (Wert = vbNo) Then Exit Sub<br />

ActiveSheet.Name = "Gustav"<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Wert <br />

Wert vbNo <br />

<br />

<br />

Rueck = MsgBox( Meldung, Btns, Titel)


Sub MeldungsTest()<br />

Sheets(1).Range("A1").Value = _<br />

MsgBox("Mein Häuslein brennt!", _<br />

VbOKCancel + VbExclamation, "Hilfe")<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Sub EiGudeWie()<br />

MsgBox "Wir wünschen Ihnen einen guten Tag!"<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

String <br />

<br />

<br />

<br />

<br />

<br />

Sub FaerbeA1()<br />

Dim Farbe As String<br />

Farbe = InputBox("Wählen Sie rot oder gelb:",_<br />

"Farbe eingeben", "rot)<br />

Sheets(1).Select<br />

Range("A1").Select<br />

If (UCase(Farbe) = "ROT") Then _<br />

Selection.Interior.ColorIndex = 3<br />

If (UCase("Farbe") = "GELB") Then _<br />

Selection.Interior.ColorIndex = 36<br />

End Function


UCase() <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

DisplayAlerts() <br />

<br />

<br />

<br />

1<br />

2<br />

A B C D E<br />

Schaltflächen Symbol Meldung<br />

Lieben Sie große Hunde<br />

Titel Rückgabe<br />

OK und Abbrechen Fragezeichen und kleine Kinder? Neugierig<br />

<br />

<br />

<br />

<br />

Meldung()


Hans hans <br />

Hans


Public Private Dim <br />

Long Double <br />

Dim alt As Long<br />

Dim alpha As Double<br />

<br />

alt Long <br />

alpha Double <br />

Dim <br />

<br />

alt <br />

alpha String <br />

"" <br />

<br />

<br />

Variant <br />

Dim Private Public <br />

<br />

<br />

<br />

Dim alt As Long, neu As Long ’So ist es richtig!<br />

Dim alpha, beta As Double ’So ist es falsch<br />

Long <br />

Double <br />

beta alpha alpha Variant <br />

<br />

<br />

<br />

Option Explicit<br />

Dim<br />

Private Public ReDim Static <br />

<br />

<br />

<br />

<br />

Option Explicit


Dim alt As Long : alt = 30<br />

<br />

<br />

Dim alt As Long<br />

alt = 30<br />

<br />

_ <br />

<br />

<br />

<br />

Sub Function If <br />

<br />

<br />

Function End Function If End If <br />

<br />

<br />

<br />

<br />

+ − ∗ <br />

<br />

<br />

If <br />

Sub


Xxx12<br />

xXX12 Xxx12 <br />

_xyz<br />

92X -X ?XY _ <br />

X_08_15 <br />

<br />

Dim x As Long<br />

Function Summe() <br />

<br />

If <br />

<br />

Hans hans <br />

Hans <br />

<br />


2500 = 1000 + 30 · 50 <br />

<br />

<br />

<br />

<br />

<br />

Option Explicit<br />

Muss am Anfang stehen!<br />

Public Grundgehalt As Double<br />

Private Zuwachs As Double<br />

Public Const Zulage = 50<br />

Function Lohn(ByVal Alter As Long) As Double<br />

Lohn = (Grundgehalt + Zulage * Alter) * (1 + Zuwachs)<br />

End Function<br />

Sub InitDaten()<br />

Grundgehalt = 1000 ’Darf jeder wissen!<br />

Zuwachs = 0,1 ’Chefsache!<br />

End Sub<br />

Private Sub LohnTest()<br />

’ Zwei Anweisungen in einer Zeile! Brrrr!<br />

Dim alt As Long : alt = 30<br />

MsgBox "Lohn(30): " & Lohn(30)<br />

InitDaten<br />

alt = InputBox("Wie alt sind Sie?", "Alter eingeben", alt)<br />

MsgBox "Sie sind " & alt & " Jahre alt und verdienen " _<br />

& Lohn(alt) & " Euros!"<br />

End Sub<br />

<br />

<br />

LohnTest


Option Explicit <br />

<br />

<br />

<br />

InitDaten MsgBox <br />

Lohn InputBox<br />

<br />

<br />

InitDaten() <br />

LohnTest() <br />

<br />

<br />

<br />

Option Explicit <br />

<br />

<br />

<br />

Dim alt As Long: alt = 30<br />

<br />

<br />

<br />

<br />

<br />

Lohn() <br />

ByVal <br />

<br />

<br />

<br />

<br />

<br />

Lohn()


Public <br />

Private <br />

[Public][Private] Variablenname [As Typ]<br />

<br />

Public <br />

<br />

<br />

<br />

<br />

Option Private Module<br />

<br />

Private <br />

Private Dim <br />

Private <br />

<br />

<br />

<br />

<br />

<br />

Dim <br />

Private Public <br />

<br />

<br />

Grundgehalt Zuwachs <br />

<br />

Grundgehalt <br />

alt LohnTest()


Option Explicit<br />

Sub Sub1()<br />

Dim lok As Long<br />

lok = 2<br />

MsgBox "Hier Sub1! lok = " & lok<br />

End Sub<br />

Sub Sub2()<br />

Dim lok As Long<br />

lok = 3<br />

Sub1<br />

MsgBox "Hier Sub2! lok = " & lok<br />

End Sub<br />

<br />

Sub1 <br />

Sub2 Sub1 <br />

Sub1 <br />

lok <br />

lok Sub2 <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Option Explicit<br />

Public pub As Long<br />

Sub InitPub()<br />

pub = 1<br />

End Sub


Sub Pub1()<br />

InitPub<br />

MsgBox "Hier Pub1! pub = " & pub<br />

End Sub<br />

<br />

Sub Pub2()<br />

Dim pub As Long<br />

pub = 3<br />

InitPub<br />

MsgBox "Hier Pub2! pub = " & pub<br />

MsgBox "Hier Pub2! GlobLoc.pub = " & GlobLoc.pub<br />

End Sub<br />

InitPub pub<br />

<br />

pub pub <br />

<br />

<br />

<br />

GlobLoc GlobLoc.pub <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Const <br />

Public Private <br />

Public <br />

[Public][Private] Const Bezeichner [As Typ] = Ausdruck<br />

<br />

<br />

Private Const KurzPi = 3.14<br />

Public Const LangPi As Double = KurzPi + 0.00159<br />

Public Const GebDatum = "19.1.1971"


LangPi <br />

<br />

GebDatum LangPi KurzPi <br />

<br />

Zulage <br />

Public <br />

<br />

<br />

<br />

<br />

Public <br />

Sub Function <br />

Private <br />

LohnTest() <br />

<br />

<br />

Option Explicit<br />

Sub Ausgabe()<br />

InitDaten<br />

MsgBox "Grundgehalt: " & Grundgehalt _<br />

& vbNewLine & "Lohn im Alter 30: " & Lohn(30)<br />

’Nicht erlaubt in einem anderen Modul<br />

’MsgBox "Zuwachs = " & Zuwachs<br />

’LohnTest<br />

End Sub<br />

InitDaten() Grundgehalt <br />

<br />

Zuwachs <br />

LohnTest() <br />

Zuwachs Public <br />

LohnTest() Private Public <br />

<br />

<br />

<br />

<br />

<br />

Double


Byte <br />

<br />

<br />

Integer <br />

<br />

<br />

Long <br />

<br />

Single <br />

<br />

<br />

<br />

Double <br />

<br />

<br />

<br />

Currency <br />

<br />

<br />

<br />

<br />

Decimal ±79.228.162.514.264.337.593.543.950.335


±10 <br />

<br />

±0, 0000000000000000000000000001 <br />

Long Double <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Sub UeberlaufTest()<br />

Dim a As Integer, b As Integer<br />

a = 16000<br />

b = 17000<br />

MsgBox "a + b = " & a + b<br />

End Sub<br />

<br />

Long Integer <br />

<br />

<br />

<br />

Boolean <br />

True False<br />

<br />

Dim b As Boolean<br />

b = i > 2<br />

b True i <br />

False<br />

<br />

True False <br />

True False <br />

Dim i as Long<br />

Dim b as Boolean<br />

i = (i < 2) + 2*b


i b False <br />

(i < 2) True 2*b <br />

b False <br />

True i <br />

<br />

<br />

<br />

<br />

True False <br />

<br />

If (Bedingung) Then Anweisung<br />

<br />

<br />

<br />

<br />

If (Monat >= 11) Then MsgBox("Bald kommt der Nikolaus!")<br />

If (Nachname = "Kohl") Then Vorname = "Helmut"<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

d = c*(a + b) <br />

c d = (a + b)


+ − ∗ / ^<br />

\ Mod <br />

<br />

\ Mod <br />

<br />

x*5^4, (y/x)^(-0.5), (x+y)/(x^2-z)<br />

<br />

5x^4, (y/x)^-0.5, (xy)/(x^2-z) -2,3<br />

<br />

<br />

<br />

<br />

<br />

<br />

\ <br />

<br />

<br />

Mod 17 Mod 4 16 Mod 4 22 Mod 4 <br />

17 \ 4 25 \ 5 <br />

<br />

x < y <br />

x y <br />

3 < 4 <br />

"drei"< "vier" True <br />

False <br />

<br />

<br />

<br />

<br />

x > y x < y <br />

x >= y x


And <br />

<br />

<br />

<br />

Or <br />

X Y <br />

True <br />

True Xor <br />

X Y Eqv <br />

True <br />

Imp X Imp Y True<br />

X True Y = False <br />

Not <br />

<br />

<br />

<br />

If(a = 3 And c 5) Then Anweisung<br />

If(a < 6 Or x > 4) Then Anweisung<br />

If(Not(a < 6 Or x > 4)) Then Anweisung<br />

x <br />

a b <br />

If(x > a And x < b) Then Anweisung<br />

<br />

If(b > x > a) Then Anweisung<br />

<br />

X Y


∗ / <br />

+ − <br />

< >= <br />

= <br />

<br />

<br />

= <br />

<br />

<br />

<br />

2*3 + 4*5


a + b < c*d<br />

<br />

(a + b) < (c*d)<br />

<br />

<br />

<br />

Variable = Arithmetischer Ausdruck<br />

<br />

gamma = 2*beta + alpha+5.004<br />

a = 3*a + 2<br />

<br />

<br />

<br />

gamma gamma<br />

<br />

a a =<br />

−1 <br />

a a <br />

a a <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

a = b = 3*d + 1<br />

a b 3*d + 1 <br />

<br />

a = (b = 3*d + 1)<br />

b <br />

3*d + 1 b a


Option Explicit<br />

Public a As Double<br />

Private Sub Set_a()<br />

a = 1<br />

End Sub<br />

Sub Arith()<br />

Dim i As Long<br />

Dim a As Double<br />

a = 2.1<br />

Set_a<br />

i = (a * a) ^ 2<br />

a = a * a ^ 2<br />

MsgBox "i = " & i & ", a = " & a & ", a = " & Abschluss.a<br />

i = (i \ 4) * 4<br />

MsgBox "i = " & i & ", i Mod 4 = " & i Mod 4<br />

End Sub<br />

<br />

<br />

<br />

1 − x 2 /2! + x 4 /4! x y−z<br />

a n−1/2 /b 2n<br />

<br />

-a = 4<br />

4 = Hans<br />

a - 2 = b + 4<br />

"Hugo" = "Emma"<br />

Test <br />

Option Explicit<br />

Public pub As Long<br />

Sub Init(ByVal ww As Long)<br />

pub = ww<br />

End Sub<br />

Function AddPub(ByVal d As Long)


AddPub = d + pub<br />

End Function<br />

Function NewAddPub(ByVal d As Long)<br />

Dim pub As Long<br />

NewAddPub = d + pub<br />

Init 3<br />

End Function<br />

Sub Test()<br />

Dim a As Long, b As Long<br />

Dim c As Long, d As Long<br />

a = 3<br />

Init 1<br />

b = AddPub(a)<br />

c = NewAddPub(a)<br />

d = AddPub(a)<br />

MsgBox "b = " & b & ", c = " & c & ", d = " & d<br />

End Sub<br />

<br />

Sub BoolTest1()<br />

Dim a As Long, b As Long, c As Long<br />

c = a = b<br />

MsgBox "c = " & c<br />

c = Not c<br />

MsgBox "c = " & c<br />

End Sub<br />

<br />

Sub BoolTest2()<br />

Dim i As Long<br />

Dim b As Boolean<br />

i = (i = b) + 2 * True<br />

MsgBox "i = " & i<br />

End Sub


\ Mod<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

a a i <br />

Long (a * a)^2 <br />

<br />

a = a * a^2 a = a * (a ^ 2) <br />

(i \ 4) <br />

i <br />

i Mod 4


sin(3.14) <br />

<br />

sin(2.1) <br />

<br />

x <br />

<br />

<br />

<br />

sin(x) tan(x) <br />

<br />

WorksheetFunction <br />

WorksheetFunction.Max(1,3,4) <br />

WorksheetFunction.


Gehalt()<br />

<br />

Option Explicit<br />

Function Gehalt(ByVal al As Long, ByVal k As Long) As Long<br />

Dim Grundgehalt As Long<br />

Grundgehalt = 500<br />

If (al > 30 And al < 46) Then Grundgehalt = 1000<br />

If (al >= 46) Then Grundgehalt = 1500<br />

Gehalt = Grundgehalt + k * 300<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

al k <br />

<br />

<br />

500 + 300 = 800<br />

1000 + 900 = 1900<br />

1500 + 1200 = 2700<br />

<br />

Function Name_der_Funktion(Parameterliste) As Typ_der_Funktion<br />

Anweisungen<br />

End Function<br />

Function


ByVal<br />

As <br />

<br />

<br />

<br />

Gehalt <br />

Gehalt <br />

Long<br />

<br />

<br />

Gehalt() <br />

Gehalt = Grundgehalt + k*300<br />

Gehalt <br />

<br />

<br />

<br />

<br />

<br />

Gehalt <br />

Gehalt(30,2) <br />

<br />

<br />

<br />

<br />

Gehalt()<br />

<br />

Dim s As Long<br />

s = Gehal(20, 3) ’falscher Namen, Gehal statt Gehalt<br />

s = Gehalt("Pi", 3.14) ’unsinnige Parametertypen<br />

s = Gehalt(20, 3, 12) ’zu viele Parameter<br />

<br />

Gehalt() <br />

<br />

<br />

Sub GehaltTest()<br />

Dim a As Long, k As Long<br />

a = 48: k = 3<br />

MsgBox "Alter: " & a & ", Kinder: " & k & _


", Gehalt: " & Gehalt(a, k)<br />

MsgBox "Alter: 35" & ", Kinder: 2" & _<br />

", Gehalt: " & Gehalt(35, 2)<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

s = Gehalt(20, 3)<br />

Gehalt(al, k) al k <br />

<br />

<br />

<br />

<br />

Gehalt(20, 3) <br />

al k <br />

<br />

<br />

al k alter kinder <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

ByVal


ByRef <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Sub Tausch(ByRef i As Long, ByRef j As Long)<br />

Dim h As Long<br />

h = j : j = i : i = h<br />

End Sub<br />

Tausch() <br />

<br />

TauschtNicht()<br />

Sub TauschtNicht(ByVal i As Long, ByVal j As Long)<br />

Dim h As Long<br />

h = j : j = i : i = h<br />

End Sub<br />

a b <br />

c d<br />

Sub TauschTest()<br />

Dim a As Long, b As Long, c As Long, d As Long<br />

a = 1: b = 2: c = 3: d = 4


Tausch a, b<br />

TauschtNicht c, d<br />

MsgBox "a = " & a & ", b = " & b & _<br />

", c = " & c & ", d = " & d<br />

End Sub<br />

<br />

a = 2, b = 1, c = 3, d = 4<br />

<br />

<br />

Tausch 10, 20<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Exit Sub Exit Function <br />

<br />

<br />

<br />

<br />

<br />

<br />

K0 p n Kn =<br />

K0(1 + p/100) n <br />

<br />

<br />

Function EndKapital(ByVal K_0 As Double, _<br />

ByVal p As Double, ByVal n As Long) As Double<br />

If (p < 0) Or (n < 0) Then Exit Function<br />

EndKapital = WorksheetFunction.Round(K_0 * (1 + p/100) ^ n,2)<br />

End Function<br />

<br />

<br />

WorksheetFunction.Round


x 2 + px + q = 0.<br />

<br />

D = p 2 − 4q<br />

<br />

x1 = 0, 5(−p + D 0,5 ), x2 = 0, 5(−p − D 0,5 ).<br />

<br />

p q <br />

D x1 x2 <br />

Sub PQFormel(ByVal p As Double, q As Double, _<br />

ByRef D As Double, ByRef x1 As Double, ByRef x2 As Double)<br />

D = p ^ 2 - 4 * q<br />

If (D < 0) Then Exit Sub<br />

x1 = 0.5 * (-p + D ^ (0.5))<br />

x2 = 0.5 * (-p - D ^ (0.5))<br />

End Sub<br />

Sub TestPQ()<br />

Dim p As Double, q As Double<br />

Dim D As Double, x As Double, y As Double<br />

p = -9: q = 20<br />

PQFormel -9, 20, D, x, y<br />

MsgBox "D = " & D & ", x = " & x & ", y = " & y<br />

End Sub<br />

TestPQ <br />

p = -9 q = 20 <br />

PQFormel<br />

p q <br />

p q <br />

<br />

<br />

p PQFormel <br />

p TestPQ<br />

<br />

PQFormel <br />

D D TestPQ <br />

x y x1 x2 D<br />

x y TestPQ PQFormel <br />

p q TestPQ


n <br />

n − 1 <br />

QS(1234) = QS(123) + 4 = 10 n <br />

n! n <br />

n! = n ∗ (n − 1)! <br />

<br />

FakulRek Fakultät <br />

n <br />

Long Double <br />

Function FakuRek(ByVal n As Integer) As Double<br />

If (n < 0) Then FakuRek = 0<br />

If (n = 0 Or n = 1) Then FakuRek = 1<br />

If (n > 1) Then FakuRek = n * FakuRek(n - 1) ’(*)<br />

End Function<br />

<br />

n = 1 <br />

<br />

<br />

<br />

<br />

<br />

<br />

FakuRek = n * FakuRek(n - 1)<br />

n = 1


n<br />

n


ByRef <br />

<br />

<br />

<br />

<br />

<br />

ByRef PQFormel <br />

<br />

<br />

<br />

Zinssatz1 <br />

<br />

Exit Function <br />

<br />

<br />

<br />

ax + by = e<br />

cx + dy = f.<br />

Det2 = ad − bc <br />

x = (de − bf)/Det2 y = (af − ce)/Det2 <br />

Det2 <br />

<br />

Log(x) <br />

<br />

<br />

Log_10(x) x


ISTSCHALTJAHR <br />

True <br />

False <br />

<br />

<br />

<br />

QuersummeRek(n)


"Hallo" <br />

<br />

2 31 <br />

<br />

2 16 <br />

String String*k


Sub StringTest()<br />

Dim SVar As String<br />

Dim SFest As String * 5<br />

SVar = "Angela"<br />

SFest = "Angela"<br />

MsgBox "SVar = " & vbTab & SVar & vbNewLine & _<br />

"SFest = " & vbTab & SFest<br />

End Sub<br />

SVar SFest <br />

<br />

<br />

<br />

<br />

SVar = Angela<br />

SFest = Angel<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

&


Sub TestEt()<br />

Dim s As String, t As String, j As Long<br />

s = "Hallo"<br />

t = " Welt im Jahr " ’Leerzeichen beachten!<br />

j = 2009<br />

t = s & t & j & "!"<br />

MsgBox t<br />

End Sub<br />

<br />

t "Hallo Welt im Jahr 2009!" <br />

& <br />

<br />

s = "Blah, blah, blah, blah, blah, blah, blah, blah, blah,"<br />

s = s & " Dacapo: blah"<br />

<br />

<br />

s = "Pi ist ungefähr " & 3.14<br />

s "Pi ist ungefähr 3.14"<br />

<br />

<br />

Len(s) s <br />

LCase(s) <br />

s <br />

UCase(s) <br />

s <br />

<br />

Left(s, k) s k <br />

s k <br />

<br />

Right(s, k) s k <br />

s k <br />

<br />

Mid(s, i, k) s i k <br />

s i <br />

(i + k - 1) i k <br />

Mid(s, i, k) <br />

k


i Mid(s, i, 1) <br />

i <br />

String <br />

InStr(pos, s, teilstr) <br />

s teilstr pos <br />

<br />

teilstr s <br />

<br />

<br />

LTrim(s) RTrim(s) Trim(s) <br />

<br />

<br />

<br />

Replace(s, findme, rplc) <br />

s findme rplc <br />

<br />

String<br />

Variant String <br />

Left$(s, k) <br />

Left(s, k) <br />

<br />

<br />

Sub StringFunctionTest()<br />

Dim s As String, anf As String<br />

Dim <strong>mit</strong>te As String, ende As String<br />

Dim Us As String, Ls As String<br />

s = " Hello World "<br />

s = LTrim(s)<br />

s = RTrim(s)<br />

’Oder kurz s = Trim(s)<br />

Us = UCase(s)<br />

Ls = LCase(s)<br />

MsgBox "s = " & s & ", Us = " & Us & ", Ls = " & Ls<br />

<br />

anf = Left(s, 3)<br />

ende = Right(s, 2)<br />

<strong>mit</strong>te = Mid(s, 7, 2)<br />

MsgBox "anf = " & anf & ", ende = " & ende _<br />

& ", <strong>mit</strong>te = " & <strong>mit</strong>te<br />

Mid(s, 7, 4) = "Welt"


Mid(s, 2, 1) = "a"<br />

s = Left(s, Len(s) - 1)<br />

MsgBox "s = " & s<br />

End Sub<br />

<br />

<br />

LTrim RTrim <br />

<br />

<br />

InStr Replace <br />

Sub ReplaceAndInStrTest()<br />

Dim aus As String<br />

Dim i As Long, j As Long<br />

Dim s As String, sRplc As String<br />

s = "Blah, sonst , Blah"<br />

i = InStr(s, "Blah")<br />

j = InStr(2, s, "Blah")<br />

MsgBox "i = " & i & ", j = " & j<br />

sRplc = Replace(s, "Blah", "XXX", 1)<br />

MsgBox s & ", " & sRplc<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

"21"<br />

<br />

<br />

CInt(Ausdruck)<br />

CLng(Ausdruck)<br />

CSng(Ausdruck)<br />

CDbl(Ausdruck)


CDec(Ausdruck)<br />

CCur(Ausdruck)<br />

CDate(Ausdruck)<br />

<br />

CInt() CDbl() <br />

<br />

<br />

<br />

<br />

<br />

IsNumeric() True <br />

<br />

<br />

IsNumeric() <br />

<br />

Long <br />

Dim i As Long, istr As String<br />

istr = InputBox("Alter", "Alter eingeben", 20)<br />

If (IsNumeric(istr)) Then i = CLng(istr);<br />

<br />

IsNumeric() <br />

<br />

<br />

<br />

Double <br />

Sub CDblTest()<br />

Dim piKomma As String, piPunkt As String<br />

Dim piRichtig As Double, piFalsch As Double<br />

piKomma = "3,14"<br />

If (IsNumeric(piKomma)) Then piRichtig = CDbl(piKomma)<br />

MsgBox "Korrekte Umwandlung: " & piRichtig<br />

piPunkt = "3.14"<br />

If (IsNumeric(piPunkt)) Then piFalsch = CDbl(piPunkt)<br />

MsgBox "Falsche Umwandlung: " & piFalsch<br />

End Sub


Function KommaWeg(ByRef z As String) As String<br />

Dim i As Long<br />

i = InStr(z, ",")<br />

If (i > 0) Then KommaWeg = Left(z, i - 1) & _<br />

"." & Right(z, Len(z) - i)<br />

End Function<br />

Sub KommaWegSub(ByRef z As String)<br />

z = KommaWeg(z)<br />

End Sub<br />

Sub KommaTest()<br />

Dim pi As String, pipunkt As String<br />

pi = "3,14"<br />

pipunkt = KommaWeg("3,14")<br />

KommaWegSub pi<br />

’Aber nicht KommaWegSub(pi)<br />

MsgBox "pi = " & pi & ", " & "pipunkt = " & pipunkt<br />

End Sub<br />

z String KommaWeg <br />

<br />

<br />

KommaWegSub <br />

<br />

KommaTest pi pipunkt


Date <br />

<br />

<br />

<br />

Date # <br />

#January 1, 1993# #1 Jan 93# <br />

#mm/tt/yy# <br />

#11/13/2009# <br />

<br />

Date <br />

<br />

<br />

Date <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Date <br />

<br />

<br />

<br />

Now Date <br />

<br />

<br />

<br />

<br />

<br />

Variant <br />

IsDate(d) Boolean <br />

d <br />

True <br />

Date


True <br />

#12/30/1899 12:00 am#<br />

Day(d) <br />

<br />

Month(d) <br />

<br />

Year(d) <br />

<br />

Hour(d) <br />

<br />

Minute(d) <br />

<br />

Second(d) <br />

<br />

Weekday(datum, [firstdayofweek])) <br />

<br />

<br />

vbMonday <br />

<br />

DateSerial(jahr,monat,tag) <br />

Date <br />

<br />

DateSerial(2008,12,24) <br />

<br />

TimeSerial(stu,m,sek) Date<br />

<br />

<br />

DateAdd(interval,wieviel,datum) <br />

Date <br />

datum <br />

interval <br />

<br />

<br />

DateAdd("d",7,DateSerial(2008,12,24) <br />

DateAdd("yyyy",7,DateSerial(2008,12,24)


Sub DateTest()<br />

Dim Weihnacht As Date, Sylvester As Date, diff As Long<br />

Dim aus As String, J As Long<br />

J = Year(Now)<br />

diff = DateSerial(J, 12, 24) - Now + Time<br />

aus = "Now: " & Now & ", Time: " & Time<br />

aus = aus & "." & vbNewLine & diff & "-mal werden wir noch"<br />

aus = aus & " wach, heißa dann ist Weihnachtstach!"<br />

MsgBox (aus)<br />

End Sub<br />

DateAdd <br />

Sub DateAddTest()<br />

Dim dt As Date<br />

dt = DateSerial(2008, 12, 24)<br />

MsgBox DateAdd("d", 7, dt) & ", " & DateAdd("yyyy", 7, dt) _<br />

& ", " & DateAdd("m", -7, dt) & ", " & DateAdd("y", -7, dt)<br />

End Sub<br />

<br />

<br />

<br />

Public Function Muttertag(ByVal Jahr As Long) As Date<br />

Muttertag = DateSerial(Jahr, 5, _<br />

15 - Weekday(DateSerial(Jahr, 5, 1), vbMonday))<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Public Function Ostersonntag(ByVal Jahr As Long) As Date<br />

Dim a As Long, b As Long, C As Long<br />

Dim D As Long, e As Long, f As Long


’ Die "magische" Gauss-Formel anwenden:<br />

a = Jahr Mod 19<br />

b = Jahr \ 100<br />

C = (8 * b + 13) \ 25 - 2<br />

D = b - (Jahr \ 400) - 2<br />

e = (19 * (Jahr Mod 19) + ((15 - C + D) Mod 30)) Mod 30<br />

If e = 28 And a > 10 Then e = 27<br />

If e = 29 Then e = 28<br />

f = (D + 6 * e + 2 * (Jahr Mod 4) _<br />

+ 4 * (Jahr Mod 7) + 6) Mod 7<br />

Ostersonntag = DateSerial(Jahr, 3, e + f + 22)<br />

End Function<br />

<br />

<br />

<br />

Function Pfingstsonntag(ByVal Jahr As Long)<br />

Pfingstsonntag = DateAdd("d", 49, Ostersonntag(Jahr))<br />

End Function<br />

<br />

<br />

Function Fastnacht(ByVal Jahr As Long)<br />

Fastnacht = DateAdd("d", -47, Ostersonntag(Jahr))<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Person <br />

<br />

<br />

<br />

Person <br />

Nachname Vorname Geschlecht GebDat


NewPersW <br />

<br />

<br />

Pers=NewPersW("Müller", "Lieschen") Pers.Nachname <br />

<br />

Kopie = Pers <br />

Kopie Pers <br />

Vorname Kopie <br />

Vorname Pers<br />

PersonToString <br />

<br />

<br />

Option Explicit<br />

Public Type Person<br />

Nachname As String<br />

Vorname As String<br />

Geschlecht As String * 1<br />

GebDat As Date<br />

End Type<br />

Function NewPersW(ByRef n As String, ByRef vn As String) _<br />

As Person<br />

NewPersW.Nachname = n<br />

NewPersW.Vorname = vn<br />

NewPersW.Geschlecht = "W"<br />

NewPersW.GebDat = Now() - Time()<br />

End Function<br />

Function PersonToString(ByRef p As Person) As String<br />

PersonToString = p.Vorname & " " & p.Nachname & ", geb. " _<br />

& p.GebDat<br />

End Function<br />

Sub TestPerson()<br />

Dim Pers As Person, Kopie As Person<br />

Pers = NewPersW("Müller", "Lieschen")<br />

Kopie = Pers<br />

Kopie.Vorname = "Helena"<br />

MsgBox PersonToString(Pers) & ", " & PersonToString(Kopie)<br />

End Sub<br />

<br />

<br />

PersonToString


ToString <br />

<br />

<br />

<br />

Variant <br />

<br />

Dim IchBinVariant As Variant ’Explizit als Variant deklariert<br />

Dim IchAuch ’Variablen ohne Typangabe sind Variant<br />

Variant <br />

<br />

Variant <br />

Variant Long <br />

Variant Long <br />

Variant Byte Integer Long Single <br />

<br />

Variant <br />

Byte Integer Integer Long<br />

Long Single Double <br />

Currency Decimal Double <br />

Variant <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Long Double <br />

Date <br />

Double <br />

<br />

<br />

String


a b <br />

Long a = b <br />

a <br />

b a b<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Long Double <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

MitHallo <br />

<br />

<br />

HideLeftXX <br />

<br />

<br />

<br />

<br />

SwitchIJ <br />

i j


WegMitP <br />

<br />

<br />

Alter <br />

<br />

Frist <br />

n <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

KMult <br />

Invers(z) 1/z <br />

InversSub(z) z 1/z <br />

KomplexToString(z)


WegMitP <br />

<br />

<br />

Alter <br />

<br />

Frist <br />

n <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

KMult <br />

Invers(z) 1/z <br />

InversSub(z) z 1/z <br />

KomplexToString(z)


Sub IfTest()<br />

Dim x As Double<br />

x = InputBox("Bitte positive Zahl eingeben: ", "Los", "0")<br />

If (x


If (x


Basiswert = 20<br />

End If<br />

’Hier geht’s weiter!<br />

Gehalt = Grundgehalt + Alter*Basiswert<br />

End Function<br />

<br />

Alter <br />

Else <br />

End If <br />

<br />

Else <br />

End If <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Function Brutto1(ByVal al As Long, ByVal k As Long) As Long<br />

Dim Kindergeld As Long, Grundgehalt As Long<br />

<br />

If (al < 15 Or k < 0) Then<br />

Brutto1 = -1<br />

k = 0<br />

Else<br />

If (al < 31) Then<br />

Grundgehalt = 500<br />

Kindergeld = 300<br />

Else<br />

If (al > 30 And al < 46) Then<br />

Grundgehalt = 1000<br />

Kindergeld = 250<br />

Else<br />

Grundgehalt = 1500


Kindergeld = 200<br />

End If<br />

End If<br />

End If<br />

Brutto1 = Grundgehalt + k*Kindergeld<br />

End Function<br />

<br />

<br />

Else If <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

If(Bedingung_1) Then<br />

Anweisung(en)<br />

ElseIf(Bedingung_2) Then<br />

Anweisung(en)<br />

’usw.<br />

Else<br />

Anweisung(en)<br />

End If<br />

If Else <br />

<br />

<br />

<br />

<br />

<br />

<br />

End If <br />

<br />

Brutto2() <br />

Function Brutto2(ByVal al As Long, ByVal k As Long) As Long<br />

Dim Kindergeld As Long, Grundgehalt As Long


If (al < 15 or k < 0) Then<br />

Brutto2 = -1<br />

k = 0<br />

ElseIf (al < 31) Then<br />

Grundgehalt = 500<br />

Kindergeld = 300<br />

ElseIf (al < 46) Then<br />

Grundgehalt = 1000<br />

Kindergeld = 250<br />

Else<br />

Grundgehalt = 1500<br />

Kindergeld = 200<br />

End If<br />

Brutto2 = Grundgehalt + k*kindergeld<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

Case Select Case <br />

Select Case(Ausdruck)<br />

Case Auswahlliste1<br />

Anweisung(en)<br />

Case Auswahlliste2<br />

Anweisung(en)<br />

’usw.<br />

Case Else<br />

Anweisung(en)<br />

End Select<br />

<br />

Case Else <br />

<br />

<br />

<br />

<br />

Function Brutto3(ByVal al As Long, ByVal k As Long) As Long<br />

Dim Kindergeld As Long, Grundgehalt As Long


If ( k < 0) Then al = 0<br />

Select Case al<br />

Case Is < 15<br />

Brutto3 = -1<br />

k = 0<br />

Case 15 To 30<br />

Grundgehalt = 500<br />

Kindergeld = 300<br />

Case 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, _<br />

42, 43, 44, 45<br />

Grundgehalt = 1000<br />

Kindergeld = 250<br />

Case Else<br />

Grundgehalt = 1500<br />

Kindergeld = 200<br />

End Select<br />

Brutto3 = Grundgehalt + k * Kindergeld<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Function Jahreszeit(ByVal tag As Long, _<br />

ByVal mon As Long) As String<br />

If (mon = 1 Or mon = 2 Or (mon = 3 And tag < 21) _<br />

Or (mon = 12 And tag > 20)) Then<br />

Jahreszeit = "Winter"<br />

ElseIf (mon = 4 Or mon = 5 Or (mon = 3 And tag > 20) _<br />

Or (mon = 6 And tag < 21)) Then<br />

Jahreszeit = "Lenz"<br />

ElseIf (mon = 7 Or mon = 8 Or (mon = 9 And tag < 21) _<br />

Or (mon = 6 And tag > 20)) Then<br />

Jahreszeit = "Sommer"


Else<br />

Jahreszeit = "Herbst"<br />

End If<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

Season()<br />

Function Season(ByVal tag As Long, _<br />

ByVal mon As Long) As String<br />

Select Case mon<br />

Case 1, 2, 3<br />

Season = "Winter"<br />

If (mon = 3 And tag > 20) Then Season = "Frühling"<br />

Case 4 To 6<br />

Season = "Frühling"<br />

If (mon = 6 And tag > 20) Then Season = "Sommer"<br />

Case Is 20) Then Season = "Herbst"<br />

Case Else<br />

Season = "Herbst"<br />

If (mon = 12 And tag > 20) Then Season = "Winter"<br />

End Select<br />

End Function<br />

<br />

<br />

Gehalt Bruttoi <br />

<br />

<br />

Sub AuswahlTest()<br />

Dim alt As Long, ki As Long<br />

Dim t As Long, m As Long


alt = InputBox("Alter: ", "Los!", "30")<br />

ki = InputBox("Anzahl Kinder: ", "Los!", "2")<br />

MsgBox Gehalt(alt) & ", " & Brutto1(alt, ki)<br />

MsgBox Brutto2(alt, ki) & ", " & Brutto3(alt, ki)<br />

t = InputBox("Tag: ", "Los!", "13")<br />

m = InputBox("Monat: ", "Los!", "11")<br />

MsgBox Jahreszeit(t, m) & ", " & Season(t, m)<br />

End Sub<br />

<br />

<br />

<br />

<br />

• <br />

• <br />

• <br />

<br />

<br />

<br />

<br />

<br />

<br />

Dim i As Long<br />

For i = Anfangswert To Endwert [ Step Schritt ]<br />

Anweisung(en)<br />

[ Exit For ]<br />

Anweisung(en)<br />

Next i<br />

i Anfangswert <br />

Schritt <br />

Schritt <br />

Endwert <br />

<br />

Exit For


1 n <br />

n<br />

i = n(n + 1)/2, <br />

i=1<br />

100<br />

<br />

i=1<br />

i = 100 · 101/2 = 5050.<br />

Function MeineSumme(ByVal n As Long) As Long<br />

Dim i As Long<br />

MeineSumme = 0<br />

For i = 1 To n<br />

MeineSumme = MeineSumme + i<br />

Next i<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Function KillSz(ByRef s As String) As String<br />

Dim i As Long<br />

KillSz = ""<br />

For i = 1 To Len(s)<br />

If Mid(s, i, 1) = "ß" Then<br />

KillSz = KillSz & "ss"<br />

Else<br />

KillSz = KillSz & Mid(s, i, 1)<br />

End If<br />

Next i<br />

End Function<br />

<br />

i <br />

<br />

<br />

<br />

Function WegMitUmlauten(ByRef S As String) As String<br />

Dim i As Long


WegMitUmlauten = ""<br />

For i = 1 To Len(S)<br />

Select Case Mid(S, i, 1)<br />

Case "Ä": WegMitUmlauten = WegMitUmlauten & "Ae"<br />

Case "ä": WegMitUmlauten = WegMitUmlauten & "ae"<br />

Case "Ö": WegMitUmlauten = WegMitUmlauten & "Oe"<br />

Case "ö": WegMitUmlauten = WegMitUmlauten & "oe"<br />

Case "Ü": WegMitUmlauten = WegMitUmlauten & "Ue"<br />

Case "ü": WegMitUmlauten = WegMitUmlauten & "ue"<br />

Case Else: WegMitUmlauten = WegMitUmlauten & Mid(S, i, 1)<br />

End Select<br />

Next i<br />

End Function<br />

<br />

<br />

<br />

<br />

Do Loop <br />

While Until <br />

While Until <br />

Do <br />

Loop <br />

<br />

Do<br />

Anweisung(en)<br />

[Exit Do]<br />

Anweisung(en)<br />

Loop While(Wiederholungsbedingung)<br />

nächste Anweisung<br />

Do Loop While <br />

<br />

<br />

<br />

<br />

<br />

<br />

• <br />


• <br />

• <br />

<br />

• Exit Do <br />

<br />

<br />

<br />

Dim Jahr As Long<br />

Do<br />

Jahr = CInt(InputBox("Bitte Geburtsjahr eingeben: ","1978"))<br />

Loop While (1900 > Jahr Or Jahr > 1990)<br />

<br />

<br />

<br />

Until <br />

<br />

Do<br />

Anweisung(en)<br />

[Exit Do]<br />

Anweisung(en<br />

Loop Until(Abbruchbedingung))<br />

<br />

<br />

<br />

<br />

<br />

Dim Jahr As Long<br />

Do<br />

Jahr = CInt(InputBox("Bitte Geburtsjahr eingeben: ","1978"))<br />

Loop Until (1900


i j <br />

Function Ggt(ByVal i As Long, ByVal j As Long) _<br />

As Long<br />

Dim h As Long<br />

If (i < 1 Or j < 1) Then Ggt = -1<br />

If j > i Then<br />

h = i : i = j : j = h<br />

End If<br />

Do<br />

i = i Mod j<br />

h = i : i = j : j = h<br />

Loop While (j > 0)<br />

’oder Loop Until (j = 0)<br />

Ggt = i<br />

End Function<br />

<br />

<br />

<br />

<br />

Do While (Wiederholungsbedingung)<br />

Anweisung(en)<br />

[Exit Do]<br />

Anweisung(en<br />

Loop<br />

<br />

<br />

<br />

<br />

<br />

<br />

While (Wiederholungsbedingung)<br />

Anweisung(en)


[Exit While]<br />

Anweisung(en<br />

Wend<br />

<br />

Exit Do Exit While<br />

<br />

<br />

While Until <br />

<br />

Do Until (Abbruchbedingung)<br />

Anweisung(en)<br />

[Exit Do]<br />

Anweisung(en<br />

Loop<br />

<br />

<br />

<br />

<br />

<br />

<br />

Function Zaehle(ByRef gesamt As String, _<br />

ByRef teil As String) As Long<br />

Dim i As Long<br />

Zaehle = 0 : i = 1<br />

Do While (InStr(i, gesamt, teil) > 0)<br />

’oder<br />

’Do Until (InStr(i, gesamt, teil)


a a <br />

<br />

a / Mod <br />

k a <br />

k = a Mod 10<br />

<br />

a = (a - a Mod 10)/10<br />

a <br />

<br />

<br />

Function Quersumme(ByVal a As Long) As Long<br />

Quersumme = 0<br />

If (a < 0) Then a = -a<br />

Do While (a > 0)<br />

’Oder: Do Until (a = 0)<br />

Quersumme = Quersumme + a Mod 10<br />

a = (a - a Mod 10) / 10<br />

Loop<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

Sub SchleifenTest()<br />

MsgBox "Summe der Zahlen von 1 bis 100: " & MeineSumme(100)<br />

MsgBox "Aus Walroßfüße wird: " & KillSz("Walroßfüße")<br />

MsgBox "Aus Ää Öö Üü wird: " & WegMitUmlauten("Ää Öö Üü")<br />

MsgBox "Größter gemeinsamer Teiler von 96 und 54: " _<br />

& Ggt(96, 54)<br />

MsgBox "Quersumme von 1234567: " & Quersumme(1234567)<br />

MsgBox Zaehle("Fischers Fritz fischt frische Fische", "sch")<br />

End Sub


i n <br />

2i − 1 <br />

*<br />

***<br />

*****<br />

*******<br />

’usw<br />

<br />

n 2i − 1 i <br />

vbNewLine <br />

Halbtanne() <br />

<br />

<br />

Function HalbTanne(ByVal n As Long) As String<br />

Dim i, j As Long<br />

HalbTanne = ""<br />

For i = 1 To n<br />

For j = 1 To 2 * i - 1<br />

HalbTanne = HalbTanne & "*"<br />

Next j<br />

HalbTanne = HalbTanne & vbNewLine<br />

Next i<br />

End Function


Sub TestHalbTanne()<br />

Dim i As Long<br />

i = InputBox("Bitte Anzahl der Zeilen eingeben: ", "", "12")<br />

MsgBox HalbTanne(i)<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Sub DreiSchleifen()<br />

Dim x As Double, s As String, b As Boolean<br />

Do Until (UCase(InputBox("Wollen sie wirklich? Ja/Nein ", _<br />

"Tu’s nicht", "Nein")) = "NEIN")<br />

Do<br />

Do<br />

s = InputBox("Positive Zahl eingeben: ", "", "0")<br />

b = IsNumeric(s)<br />

If (Not b) Then MsgBox "Das ist keine Zahl!"<br />

Loop Until (b)<br />

x = CDbl(s)<br />

If x


GoTo Marke Marke <br />

<br />

<br />

<br />

x <br />

1/x <br />

Beratung <br />

Ende Eingabe<br />

Sub GoToTest()<br />

Dim x As Double, aus As String<br />

Eingabe:<br />

x = InputBox("Bitte Zahl 0 eingeben: ", "Tu’s!", "1")<br />

If (x = 0) Then GoTo Beratung<br />

MsgBox "x = " & x & ", 1/x = " & 1 / x<br />

GoTo Ende<br />

Beratung:<br />

MsgBox "Die Zahl " & x & " ist nicht positiv!"<br />

GoTo Eingabe<br />

Ende:<br />

aus = InputBox("Nochmal? Ja/Nein ", "Tu’s nicht", "Nein")<br />

If UCase(aus) = "JA" Then GoTo Eingabe<br />

End Sub


Exit <br />

<br />

<br />

• Exit Do <br />

<br />

<br />

Exit Do <br />

<br />

• Exit For <br />

<br />

<br />

Exit For <br />

<br />

• Exit While <br />

<br />

Exit While <br />

Exit While <br />

Exit While <br />

• Exit Select <br />

<br />

Exit Select <br />

<br />

• Exit Function <br />

<br />

Exit Function <br />

<br />

• Exit Sub <br />

<br />

Exit Sub <br />

<br />

<br />

Randomize <br />

<br />

<br />

Exit Sub <br />

Exit Do Rnd() <br />

demoNum


Sub exitStatementDemo()<br />

Dim demoNum As Single, i As Long, j As Long<br />

Randomize<br />

Do<br />

j = j + 1<br />

For i = 1 To 10<br />

demoNum = Int(Rnd() * 100)<br />

Select Case demoNum<br />

Case 7: Exit For<br />

Case 29: Exit Do<br />

Case 54<br />

MsgBox "Exit Sub bei j: " & j & ", i = " & i<br />

Exit Sub<br />

End Select<br />

Next i<br />

Loop<br />

MsgBox "Exit Do bei j: " & j & ",i = " & i<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

On Error Resume Next<br />

On Error GoTo Marke<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Sub OnErrorTest()<br />

Dim x As Double, aus As String<br />

On Error GoTo Ende<br />

x = InputBox("Bitte Zahl 0 eingeben: ", "Tu’s!", "1")<br />

MsgBox "x = " & x & ", 1/x = " & 1 / x


Exit Sub<br />

<br />

Ende:<br />

aus = aus & "Sie begingen Fehler <strong>mit</strong> Nummer " & Err & "!"<br />

aus = aus & vbNewLine & Error & "!"<br />

MsgBox aus, vbCritical, "Aufpassen!"<br />

End Sub<br />

Err <br />

<br />

Error


Function Schaltjahr(ByVal j As Long) As Long<br />

Schaltjahr = 0<br />

If (j Mod 400 = 0) Or (j Mod 4 = 0 And j Mod 100 0) _<br />

Then Schaltjahr = 1<br />

End Function<br />

Schaltjahr <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Function LaufendeNr(ByVal j As Long, ByVal m As Long, _<br />

ByVal t As Long) As Long<br />

If (m < 3) Then<br />

LaufendeNr = (m - 1) * 31<br />

ElseIf (m < 9) Then<br />

LaufendeNr = (m - 1) * 30 + (m - 1) \ 2 + Schaltjahr(j) - 2<br />

Else<br />

LaufendeNr = 243 + Schaltjahr(j) + (m - 9) * 30 + (m - 9)\2<br />

End If<br />

LaufendeNr = LaufendeNr + t<br />

End Function


m - 1 <br />

t <br />

j <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Function TageSeitGregor(ByVal j As Long, ByVal m As Long, _<br />

ByVal t As Long) As Long<br />

Dim i As Long<br />

TageSeitGregor = LaufendeNr(j, m, t)<br />

For i = 1582 To j - 1<br />

TageSeitGregor = TageSeitGregor + 365 + Schaltjahr(i)<br />

Next i<br />

End Function<br />

j <br />

LaufendeNr() <br />

i <br />

j - 1 TageSeitGregor <br />

<br />

TageSeitGregor(j, m, t) <br />

<br />

TageSeitGregor(j, m, t) + 4) Mod 7 <br />

WTag(j, m, t) <br />

TageSeitGregor(j, m, t) <br />

Function WTag(ByVal j As Long, ByVal m As Long, _<br />

ByVal t As Long) As String<br />

Select Case (TageSeitGregor(j, m, t) + 4) Mod 7<br />

Case 0: WTag = "Sonntag"<br />

Case 1: WTag = "Montag"<br />

Case 2: WTag = "Dienstag"<br />

Case 3: WTag = "Mittwoch"<br />

Case 4: WTag = "Donnerstag"<br />

Case 5: WTag = "Freitag"<br />

Case Else: WTag = "Samstag"


End Select<br />

End Function<br />

Case <br />

<br />

<br />

<br />

<br />

Sub KalenderTest()<br />

MsgBox WTag(1999, 11, 13) & ", der 13.11.1999 war der " _<br />

& LaufendeNr(1999, 11, 13) & " Tag des Jahres, und der " _<br />

& TageSeitGregor(1999, 11, 13) & " Tag seit dem 1.1.1582."<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

OhneP() <br />

<br />

Replace() <br />

Tannenbaum(Byval N As Long) <br />

N <br />

*<br />

***<br />

*****<br />

*******<br />

*********<br />

N = 5 N


MyHour(d) MyMinute(d) <br />

MyHour(0) = 0 <br />

MyMinute(0) = 0 MyHour(1) = 24 MyMinute(1) = 0 <br />

d <br />

Schaltjahr()<br />

LaufendeNr() TageSeitGregor() <br />

<br />

<br />

<br />

<br />

<br />

<br />

AnzTageNeu() <br />

<br />

AnzTage() <br />

<br />

Select Case If <br />

ElseIf <br />

<br />

<br />

<br />

True False <br />

MyYear(d) MyMonth(d) MyDay(d)<br />

<br />

d = 152623 <br />

d < 0 <br />

<br />

Month() Day()


• <br />

• <br />

• <br />

• <br />

<br />

<br />

<br />

<br />

<br />

low up <br />

<br />

N = up-low+1 N <br />

<br />

<br />

Public Private Dim <br />

Option Explicit<br />

Sub Feldtest()<br />

Dim Von0bis10(10) As Double<br />

Dim mx As Double, sigma As Double, i As Long<br />

For i = LBound(Von0bis10) To UBound(Von0bis10)<br />

Von0bis10(i) = i*i<br />

Next i<br />

mx = WorksheetFunction.Max(Von0bis10)<br />

sigma = WorksheetFunction.StDevP(Von0bis10)<br />

MsgBox "Max = " & mx & ", Standardabweichung = " & sigma<br />

End Sub<br />

Von0bis10


Max StDevP <br />

WorksheetFunction. <br />

<br />

LBound(Datenfeld) UBound(Datenfeld) <br />

<br />

<br />

<br />

Public ErstesDrittel(1 To 12) As Long<br />

Public ZweitesDrittel(13 To 24) As Long<br />

Public DrittesDrittel(24 To 36) As Long<br />

<br />

<br />

<br />

Option Base 1<br />

<br />

<br />

<br />

<br />

<br />

<br />

n − 1 n n<br />

<br />

<br />

<br />

<br />

Variant <br />

<br />

<br />

<br />

<br />

WoTage <br />

WoTage(1) WoTage(7) Option Base 1<br />

<br />

Option Explicit<br />

Option Base 1<br />

Sub ArrayBsp()<br />

Dim WoTage As Variant<br />

WoTage = Array("Montag", "Dienstag", "Mittwoch", _<br />

"Donnerstag", "Freitag", "Samstag", "Sonntag")


MsgBox "Herrlich, heut ist " & WoTage(7)<br />

Worksheets(1).Range("A1:G1").Value = WoTage<br />

Worksheets(1).Range("A3:A9").Value = _<br />

WorksheetFunction.Transpose(WoTage)<br />

Worksheets(1).Columns("A:G").AutoFit<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

ByRef <br />

<br />

<br />

Weiten <br />

SetWeiten <br />

[a, b] <br />

Sub SetWeiten(ByRef w() As Double, _<br />

ByVal a As Double, ByVal b As Double)<br />

Dim i As Long<br />

For i = LBound(w) To UBound(w)<br />

w(i) = Round(a + (b - a) * Rnd(), 2)<br />

Next i<br />

End Sub<br />

Max<br />

MyMax <br />

Function MyMax(ByRef u As Variant) As Variant<br />

Dim i As Long<br />

MyMax = u(LBound(u))<br />

For i = LBound(u) + 1 To UBound(u, 1)<br />

If (u(i) > MyMax) Then MyMax = u(i)<br />

Next i<br />

End Function<br />

Variant


MMult SetWeiten <br />

Double <br />

<br />

Variant <br />

<br />

<br />

<br />

<br />

<strong>Excel</strong>.Range <br />

Variant <br />

<br />

<br />

Sub Vec2RangeVert(ByRef rg As <strong>Excel</strong>.Range, ByRef U As Variant)<br />

On Error Resume Next<br />

rg.Resize(UBound(U) - LBound(U) + 1, 1).Value = _<br />

WorksheetFunction.Transpose(U)<br />

End Sub<br />

<br />

<br />

Option Explicit<br />

Option Base 1<br />

Sub Prozedurentest()<br />

Dim i As Long<br />

Dim Weiten(10) As Double<br />

SetWeiten Weiten, 4, 7<br />

MsgBox "Max: " & MyMax(Weiten)<br />

Vec2RangeVert Worksheets(1).Range("I1"), Weiten<br />

Worksheets(1).Columns("I:I").NumberFormat = "0.00"<br />

Worksheets(1).Columns("I:I").EntireColumn.AutoFit<br />

End Sub<br />

Weiten [4, 7] <br />

Vec2RangeVert


Preserve <br />

<br />

DynArrayZu <br />

<br />

Option Explicit<br />

Option Base 1<br />

Dim Faecher() As String<br />

Sub DynArrayneu(ByVal N As Long)<br />

Dim i As Long<br />

If (N > 0) Then ReDim Faecher(N)<br />

For i = 1 To N<br />

Faecher(i) = InputBox("Name des Fachs: ")<br />

Next i<br />

End Sub<br />

Sub DynArrayZu(ByVal Nzu As Long)<br />

Dim i As Long, N As Long<br />

N = UBound(Faecher)<br />

If (Nzu > 0 And N > 0) Then ReDim Preserve Faecher(N + Nzu)<br />

For i = 1 To Nzu<br />

Faecher(N + i) = InputBox("Name des Fachs: ", "", "")<br />

Next i<br />

End Sub<br />

Function Ausgabe(ByRef u As Variant) As String<br />

Dim i As Long<br />

For i = LBound(u) To UBound(Faecher) - 1<br />

Ausgabe = Ausgabe & u(i) & vbNewLine<br />

Next i<br />

Ausgabe = Ausgabe & u(i)<br />

End Function<br />

Sub DynarrayTest()<br />

DynArrayneu (2)<br />

DynArrayZu (1)<br />

MsgBox Ausgabe(Faecher)<br />

End Sub


Option Base 1<br />

<br />

<br />

Double <br />

Dim Mat(4 TO 8, 9) As Double<br />

(8 − 4 + 1) · 10 Mat(4, 0) <br />

Mat(8, 9) <br />

<br />

<br />

<br />

LBound <br />

UBound Long <br />

<br />

<br />

k = 1, 2<br />

<br />

<br />

Variant <br />

<br />

<br />

Option Explicit<br />

Option Base 1<br />

Sub MatToRange()<br />

Dim mat As Variant<br />

Dim zanz As Long, sanz As Long<br />

Dim i As Long, j As Long<br />

ReDim mat(3, 4)<br />

’Gib der Matrix Werte<br />

For i = LBound(mat, 1) To UBound(mat, 1)<br />

For j = LBound(mat, 2) To UBound(mat, 2)<br />

mat(i, j) = "(" & i & ", " & j & ")"<br />

Next j<br />

Next i<br />

<br />

zanz = UBound(mat, 1) - LBound(mat, 1) + 1<br />

sanz = UBound(mat, 2) - LBound(mat, 2) + 1


Sheets(2).Range("A1").Resize(zanz, sanz).Value = mat ’(*)<br />

End Sub<br />

mat <br />

zans sanz<br />

<br />

LBound UBound <br />

MatToRange <br />

<br />

<br />

<br />

i <br />

j <br />

<br />

Variant <br />

RangeToMat FromRange <br />

<br />

<br />

<br />

Sub RangeToMat()<br />

Dim FromRange As Variant<br />

FromRange = Worksheets(2).Range("A1").CurrentRegion.Value<br />

MsgBox LBound(FromRange, 1) & ", " & UBound(FromRange, 1) _<br />

& ", " & LBound(FromRange, 2) & ", " & UBound(FromRange, 2)<br />

End Sub<br />

<br />

<br />

<br />

Variant <br />

MatMax <br />

SetHilbert n <br />

n ai,j 1/(i+j−1)<br />

a1,1 = 1 a2,3 = a3,2 = 1/4<br />

Option Explicit<br />

Option Base 1<br />

Function MatMax(ByRef m() As Double) As Double<br />

Dim i As Long, j As Long<br />

MatMax = m(LBound(m, 1), LBound(m, 2))<br />

For i = LBound(m, 1) To UBound(m, 1)<br />

For j = LBound(m, 2) To UBound(m, 2)<br />

If m(i, j) > MatMax Then MatMax = m(i, j)


Next j<br />

Next i<br />

End Function<br />

Sub SetHilbert(ByRef H As Variant, ByVal n As Long)<br />

ReDim H(n, n)<br />

Dim i As Long, j As Long<br />

For i = 1 To n<br />

For j = 1 To n<br />

H(i, j) = 1 / (i + j - 1)<br />

Next j<br />

Next i<br />

End Sub<br />

Sub MatrixTest()<br />

Dim mat() As Double<br />

SetHilbert mat, 4<br />

MsgBox MatMax(mat)<br />

End Sub<br />

<br />

<br />

MMult <br />

MInv <br />

<br />

<br />

<br />

<br />

<br />

Option Explicit<br />

Option Base 1<br />

Sub HilbertMatrix()<br />

Dim i As Long, j As Long, n As Long<br />

Dim mat As Variant, inv As Variant, idn As Variant<br />

ReDim mat(1, 1)<br />

n = 8<br />

SetHilbert mat, n<br />

MsgBox WorksheetFunction.MDeterm(mat)<br />

<br />

Sheets(5).Range("A1:AZ200").Clear<br />

inv = WorksheetFunction.MInverse(mat)


idn = WorksheetFunction.MMult(mat, inv)<br />

<br />

Sheets(5).Cells(1, 1).Value = "Hilbert Matrix"<br />

Sheets(5).Rows("2:" & CStr(n + 1)).NumberFormat="# ???/???"<br />

Sheets(5).Cells(2, 1).Resize(n, n).Value = mat<br />

Sheets(5).Cells(3 + n, 1).Value = "Inverse Hilbert Matrix"<br />

Sheets(5).Cells(4 + n, 1).Resize(n, n).Value = inv<br />

Sheets(5).Cells(5 + 2 * n, 1).Value = "Einheitsmatrix?"<br />

Sheets(5).Cells(6 + 2 * n, 1).Resize(n, n).Value = idn<br />

End Sub<br />

Variant <br />

MMult MInv <br />

<br />

mat <br />

<br />

<br />

Vec2String() <br />

(v1, v2, . . . , vn) <br />

v <br />

MaxNorm()<br />

v p ≥ 1 <br />

<br />

<br />

u<br />

vp = |v(i)| p<br />

i=l<br />

1/p<br />

, <br />

l u <br />

PNorm() p ≤ 0 <br />

−1 0 < p < 1 <br />

<br />

MaxDist() <br />

<br />

v <br />

v <br />

σ 2 <br />

u<br />

= v(i) 2<br />

<br />

u<br />

/n − v(i)<br />

i=l<br />

i=l<br />

2<br />

/n 2 ,


l u <br />

<br />

<br />

<br />

<br />

<br />

Vec2String <br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

A B C D E F G H I J<br />

Dimension: 7 -1 2 3 4 -5 7 4<br />

p: 2<br />

MaxNorm: 7<br />

P-Norm: 10,95445115<br />

MaxDist: 12<br />

Varianz: 13,14285714<br />

<br />

Sub ErzeugeRndVec(ByVal n As Long, ByRef w() As Long)<br />

n <br />

Rnd() <br />

[0, 1) <br />

<br />

Auf Boolean Auf True <br />

<br />

SwitchZ1Z2 <br />

Z1 Z2 <br />

Z1 Z2 Z1 Z2 <br />

<br />

<br />

× A = (aij) <br />

aii <br />

aij i ∈ {1, . . . , n} <br />

n<br />

|aij| < |aii|.<br />

j=1<br />

j=i<br />

× A <br />

A∞


A∞ = max<br />

i=1,...,m<br />

n<br />

|aij|.<br />

<br />

Komplex<br />

<br />

j=1


• <br />

• <br />

• <br />


• <br />

• <br />

• <br />

• <br />

• <br />


CommandButton1_Click() <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

+


⇑ + <br />

<br />

<br />

<br />

Caption <br />

<br />

Caption


Label1 TextBox1 CommandButton1 <br />

Label2 <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />


UserForm1


Name <br />

<br />

Name <br />

<br />

TextBox TextBox1 <br />

TextBox2 <br />

Label <br />

Label1 Label2 <br />

<br />

<br />

Userform Userform1 Userform2 <br />

<br />

Label1 TextBox1 CommandButton1 <br />

Userform1<br />

<br />

Name Caption <br />

<br />

Caption <br />

<br />

<br />

UserForm1 Testformular <br />

<br />

<br />

<br />

Value <br />

<br />

Value True<br />

False<br />

<br />

Top Left Width Height <br />

<br />

Width <br />

Height Left Top <br />

<br />

Left Top


ShowModal True <br />

False <br />

<br />

<br />

<br />

Caption <br />

<br />

<br />

CmdBtn <br />

CmdBtn.Enabled = False<br />

CmdBtn.Caption = "Drücken zwecklos!"<br />

Enabled True False<br />

True <br />

<br />

Caption <br />

<br />

<br />

UserForm1 <br />

<br />

Label1 TextBox1 CommandButton1<br />

<br />

Caption <br />

ShowModal <br />

False


CmdBtn.Move CmdBtn.Left + 10, CmdBtn.Top + 20<br />

Move Left Top <br />

Move <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

CommandButton1. <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Move <br />

<br />

<br />

<br />

Show Hide<br />

<br />

<br />

Show <br />

UserForm1.Show vbModal<br />

UserForm2.Show vbModeless


UserForm3.Hide<br />

<br />

<br />

<br />

<br />

<br />

Unload <br />

<br />

<br />

<br />

Load <br />

<br />

<br />

Load Initialize <br />

UserForm_Initialize() <br />

<br />

<br />

Load UserForm1<br />

UserForm1.Show<br />

<br />

UserForm1.Show


UserForm <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Initialize <br />

<br />

<br />

UserForm_Initialize <br />

Value <br />

Tabelle1<br />

<br />

<br />

Click <br />

<br />

<br />

Commandbutton1_Click <br />

<br />

Tabelle1 <br />

Value TextBox1


Click Change <br />

<br />

<br />

TextBox1 TextBox1_Change<br />

<br />

<br />

TextBox1_Change <br />

Commandbutton1_Click <br />

<br />

<br />

Private Sub TextBox1_Change()<br />

CommandButton1_Click<br />

End Sub<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Private Sub Objekt_Activate()<br />

Private Sub Objekt_Deactivate()<br />

<br />

<br />

Private Sub UserForm_Activate()<br />

Private Sub UserForm_Deactivate()<br />

Private Sub Tabelle1_Activate()<br />

Private Sub Tabelle1_Deactivate()<br />

<br />

<br />

<br />

• <br />

<br />


• <br />

<br />

<br />

• <br />

<br />

<br />

Ausführen|Sub/UserForm ausführen <br />

<br />

<br />

Activate Deactivate <br />

<br />

<br />

Tabelle1 <br />

Worksheet <br />

Activate <br />

<br />

Worksheet <br />

Worksheet_Activate<br />

<br />

<br />

Show <br />

<br />

<br />

Initialize <br />

Hide <br />

Initialize <br />

<br />

Tabelle1 <br />

Worksheet <br />

Activate <br />

UserForm1


Tabelle1<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Name <br />

String Visible Boolean <br />

<br />

Font


CommandButton TextBox <br />

<br />

<br />

<br />

<br />

MSForms.CommandButton <br />

<strong>Excel</strong>.Workbook <br />

<br />

<br />

Long Double <br />

<br />

<br />

Dim <br />

<br />

Dim a as Long, b As Long<br />

a = 1<br />

b = a<br />

a = a + 1<br />

MsgBox "a = " & a & ", b = " & b<br />

<br />

a = 1 a <br />

a = b <br />

a <br />

<br />

<br />

<br />

<br />

<br />

Sub ChangeBtn()<br />

1. Application.Wait (Now + TimeValue("0:00:03"))<br />

2. Dim Btn As MSForms.CommandButton<br />

3. Dim Btndoppel As MSForms.CommandButton<br />

4. Set Btn = Userform1.CommandButton1<br />

5. Set Btndoppel = Btn<br />

6. Btn.Caption = "Sub<strong>mit</strong>"<br />

7. Btn.Font.Name = "Courier New"<br />

8. Btn.Font.Size = 12<br />

9. Btn.Font.Italic = True<br />

10. Userform1.CommandButton1.Font.Bold = True


11. Btndoppel.AutoSize = True<br />

12. Btn.Move Btn.Left, Btn.Top - 4<br />

End Sub<br />

<br />

<br />

MSForms.CommandButton <br />

<br />

<br />

<br />

MSForms.CommandButton <br />

<br />

<br />

<br />

<br />

Btn <br />

Set <br />

<br />

<br />

<br />

Userform1.CommandButton1 <br />

Btn <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

a = b a b <br />

Set a = b a <br />

b


With<br />

With Btn<br />

.Caption = "Sub<strong>mit</strong>"<br />

With .Font<br />

.Name = "Courier New"<br />

.Size = 12<br />

.Italic = True<br />

.Bold = True<br />

End With<br />

.AutoSize = True<br />

.Move .Left, .Top - 4<br />

End With<br />

Btn <br />

<br />

Tabelle3<br />

<br />

<br />

New


MyUserform <br />

Private <br />

<br />

<br />

Set MyUserForm = New Userform1<br />

<br />

<br />

<br />

Me <br />

<br />

<br />

Unload MyUserform <br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Nothing <br />

Set <br />

<br />

<br />

Nothing<br />

Set Btn = Nothing<br />

Set <br />

<br />

Nothing <br />

<br />

<br />

Nothing <br />

Set <br />

Nothing


Nothing <br />

If ( Btn Is Nothing ) Then MsgBox"Btn nicht verwendbar"<br />

’Nicht: If ( Btn = Nothing ) Then MsgBox"Btn nicht verwendbar"<br />

Is <br />

<br />

Sub ChangeCaption()<br />

Dim Btn As MsForms.CommandButton<br />

If (Btn Is Nothing) Then MsgBox "Btn is Nothing"<br />

Set Btn = UserForm1.CommandButton1<br />

E: Btn.Caption = "Sub<strong>mit</strong>"<br />

On Error GoTo Fehler<br />

Set Btn = Nothing<br />

F: Btn.AutoSize = True<br />

Fehler: MsgBox Err.Description<br />

End Sub<br />

Btn Nothing


Nothing <br />

If ( Btn Is Nothing ) Then MsgBox"Btn nicht verwendbar"<br />

’Nicht: If ( Btn = Nothing ) Then MsgBox"Btn nicht verwendbar"<br />

Is <br />

<br />

Sub ChangeCaption()<br />

Dim Btn As MsForms.CommandButton<br />

If (Btn Is Nothing) Then MsgBox "Btn is Nothing"<br />

Set Btn = UserForm1.CommandButton1<br />

E: Btn.Caption = "Sub<strong>mit</strong>"<br />

On Error GoTo Fehler<br />

Set Btn = Nothing<br />

F: Btn.AutoSize = True<br />

Fehler: MsgBox Err.Description<br />

End Sub<br />

Btn Nothing


MitHallo <br />

<br />

<br />

HideLeftXX <br />

<br />

<br />

<br />

<br />

SwitchIJ <br />

i j <br />

<br />

<br />

WegMitP <br />

<br />

<br />

Function MitHallo(ByRef z As String)<br />

MitHallo = "Hallo " & z<br />

End Function<br />

Function HideLeftWithX(ByRef s As String) As String<br />

HideLeftWithX = s<br />

If Len(s) >= 2 Then _<br />

HideLeftWithX = "XX" & Right(s, Len(s) - 2)<br />

End Function<br />

Function HideRightWithX(ByRef s As String) As String<br />

HideRightWithX = s<br />

If Len(s) >= 2 Then _<br />

HideRightWithX = Left(s, Len(s) - 2) & "XX"<br />

End Function


Function SwitchIJ(ByRef s As String, ByVal i As Long, _<br />

ByVal j As Long) As String<br />

SwitchIJ = s<br />

If (i < 1 Or j < 1 Or i > Len(s) Or j > Len(s)) Then _<br />

Exit Function<br />

Mid(SwitchIJ, i, 1) = Mid(s, j, 1)<br />

Mid(SwitchIJ, j, 1) = Mid(s, i, 1)<br />

End Function<br />

’Oder ohne Exit Function:<br />

Function SwitchIJ(ByRef s As String, ByVal i As Long, _<br />

ByVal j As Long) As String<br />

SwitchIJ = s<br />

If (i > 0 And i 0 And j


Frist = DateAdd("d", n, dat)<br />

If (Weekday(Frist, vbMonday) = 6) Then _<br />

Frist = DateAdd("d", n + 2, dat)<br />

If (Weekday(Frist, vbMonday) = 7) Then _<br />

Frist = DateAdd("d", n + 1, dat)<br />

End Function<br />

<br />

Public Function Sommerzeit(ByVal JahrA As Long) As Date<br />

Sommerzeit = DateSerial(JahrA, 3, 31 - _<br />

(Weekday(DateSerial(JahrA, 3, 31), vbMonday) Mod 7))<br />

End Function<br />

Public Function Winterzeit(ByVal JahrA As Long) As Date<br />

Winterzeit = DateSerial(JahrA, 10, 31 - _<br />

(Weekday(DateSerial(JahrA, 10, 31), vbMonday) Mod 7))<br />

End Function<br />

Public Function VierterAdvent(ByVal JahrA As Long) As Date<br />

VierterAdvent = DateSerial(JahrA, 12, 25 - _<br />

Weekday(DateSerial(JahrA, 12, 25), vbMonday))<br />

End Function<br />

<br />

<br />

KMult <br />

Invers(z) 1/z <br />

InversSub(z) z 1/z <br />

KomplexToString(z)<br />

Option Explicit<br />

Public Type Komplex<br />

Re As Double<br />

Im As Double<br />

End Type<br />

Function KomplexToString(ByRef z As Komplex) As String<br />

If (z.Re = 0 And z.Im = 0) Then<br />

KomplexToString = "0"<br />

ElseIf (z.Re = 0) Then<br />

KomplexToString = z.Im & "i"<br />

If (z.Im = 1) Then KomplexToString = "i"<br />

If (z.Im = -1) Then KomplexToString = "-i"<br />

Else<br />

If (z.Im > 0) Then KomplexToString = _


z.Re & " + " & z.Im & "i"<br />

If (z.Im < 0) Then KomplexToString = _<br />

z.Re & " - " & (-z.Im) & "i"<br />

If (z.Im = 1) Then KomplexToString = z.Re & " + i"<br />

If (z.Im = -1) Then KomplexToString = z.Re & " - i"<br />

If (z.Im = 0) Then KomplexToString = z.Re<br />

End If<br />

End Function<br />

Function KMult(ByRef w As Komplex, ByRef z As Komplex) _<br />

As Komplex<br />

KMult.Re = w.Re * z.Re - w.Im * z.Im<br />

KMult.Im = w.Re * z.Im + w.Im * z.Re<br />

End Function<br />

Function Invers(ByRef z As Komplex) As Komplex<br />

If (z.Re = 0 And z.Im = 0) Then Exit Function<br />

Dim betraghoch2 As Double<br />

betraghoch2 = z.Re ^ 2 + z.Im ^ 2<br />

Invers.Re = z.Re / betraghoch2<br />

Invers.Im = -z.Im / betraghoch2<br />

End Function<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Function Netto1(ByVal Brutto As Long, _<br />

ByVal k As Long, ByVal verh As Boolean) As Double<br />

If (Brutto < 0) Then<br />

Netto1 = 0<br />

Else<br />

Dim anz As Long<br />

anz = k<br />

If (verh = True) Then anz = anz + 1<br />

<br />

If (anz = 0) Then


Netto1 = Brutto * 0.6<br />

Else<br />

If (anz = 1) Then<br />

Netto1 = Brutto * 0.7<br />

Else<br />

Netto1 = Brutto * 0.8<br />

End If<br />

End If<br />

End If<br />

End Function<br />

Function Netto2(ByVal Brutto As Long, _<br />

ByVal k As Long, ByVal verh As Boolean) As Double<br />

If (Brutto < 0) Then<br />

Netto2 = 0<br />

Exit Function ’Exit mögen manche nicht<br />

End If<br />

Dim anz As Long<br />

anz = k<br />

If (verh) Then anz = anz + 1<br />

If (anz = 0) Then<br />

Netto2 = Brutto * 0.6<br />

ElseIf (anz = 1) Then<br />

Netto2 = Brutto * 0.7<br />

Else<br />

Netto2 = Brutto * 0.8<br />

End If<br />

End Function<br />

<br />

Function Netto3(ByVal Brutto As Double, _<br />

ByVal k As Long, ByVal verh As Long) As Double<br />

If (Brutto < 0) Then<br />

Netto3 = 0<br />

Else<br />

Dim anz As Long ’ anz: Anzahl der Familien<strong>mit</strong>glieder<br />

anz = k<br />

If (verh 0) Then anz = anz + 1<br />

Select Case anz<br />

Case 0<br />

Netto3 = Brutto * 0.6<br />

Case 1


Netto3 = Brutto * 0.7<br />

Case Else<br />

Netto3 = Brutto * 0.8<br />

End Select<br />

End If<br />

End Function<br />

OhneP() <br />

<br />

Replace() <br />

Tannenbaum(Byval N As Long) <br />

N <br />

*<br />

***<br />

*****<br />

*******<br />

*********<br />

N = 5 N <br />

<br />

<br />

Function OhneP(ByRef s As String) As String<br />

Dim i As Long<br />

OhneP = s<br />

For i = 1 To Len(s)<br />

If Mid(OhneP, i, 1) = "P" Then Mid(OhneP, i, 1) = "B"<br />

If Mid(OhneP, i, 1) = "p" Then Mid(OhneP, i, 1) = "b"<br />

Next i<br />

End Function<br />

Function Tannenbaum(ByVal n As Integer) As String<br />

Dim i As Long, k As Long<br />

Tannenbaum = ""<br />

For i = 1 To n<br />

For k = 1 To n - i<br />

Tannenbaum = Tannenbaum & " "<br />

Next k<br />

For k = 1 To 2 * i - 1<br />

Tannenbaum = Tannenbaum & "*"<br />

Next k<br />

Tannenbaum = Tannenbaum & vbNewLine<br />

Next i


End Function<br />

Function ZaehleVokale(ByRef s As String) As Long<br />

Dim i As Long, z As Long<br />

z = 0<br />

For i = 1 To Len(s)<br />

Select Case UCase(Mid(s, i, 1))<br />

Case "A", "E", "I", "O", "U": z = z + 1<br />

End Select<br />

Next i<br />

ZaehleVokale = z<br />

End Function<br />

<br />

MyHour(d) MyMinute(d) <br />

MyHour(0) = 0 <br />

MyMinute(0) = 0 MyHour(1) = 24 MyMinute(1) = 0 <br />

d <br />

Function MyMinute(d As Double) As Long<br />

If (d < 0 Or d > 1) Then MyMinute = -1<br />

MyMinute = Fix(d * 24 * 60) Mod 60<br />

End Function<br />

Function MyHour(d As Double)<br />

If (d < 0 Or d > 1) Then MyHour = -1<br />

MyHour = Fix(24 * d)<br />

End Function<br />

Schaltjahr()<br />

LaufendeNr() TageSeitGregor() <br />

<br />

<br />

<br />

<br />

<br />

<br />

AnzTageNeu() <br />

<br />

AnzTage() <br />

<br />

Select Case If <br />

ElseIf


True False <br />

MyYear(d) MyMonth(d) MyDay(d)<br />

<br />

d = 152623 <br />

d < 0 <br />

Function AnzTage(j As Long, m As Long) As Long<br />

If (m < 1 Or m > 12) Then<br />

AnzTage = -1<br />

Else<br />

Select Case m<br />

Case 4, 6, 9, 11<br />

AnzTage = 30<br />

Case 2<br />

AnzTage = 28 + Schaltjahr(j)<br />

Case Else<br />

AnzTage = 31<br />

End Select<br />

End If<br />

End Function<br />

Function DateCheck(j As Long, m As Long, d As Long) As Boolean<br />

DateCheck = False<br />

If (0 < d And d 12) Then<br />

AnzTageNeu = -1<br />

Else<br />

AnzTageNeu = 30 + m Mod 2<br />

If (m = 2) Then AnzTageNeu = 29 + Schaltjahr(j)<br />

End If<br />

End Function<br />

Function MyYear(d As Long)<br />

Dim y As Long, n As Long<br />

Dim Schluss As Boolean<br />

MyYear = 1582 + Fix(d / 365.2425)<br />

Schluss = False<br />

Do


If (d < TageSeitGregor(MyYear, 1, 1)) Then<br />

MyYear = MyYear - 1<br />

ElseIf (TageSeitGregor(MyYear, 12, 31) < d) Then<br />

MyYear = MyYear + 1<br />

Else<br />

Schluss = True<br />

End If<br />

’*** Vermeidet Idiotenschleife!!!***<br />

n = n + 1<br />

Loop While (n < 100 And Schluss = False)<br />

End Function<br />

Function MyMonth(d As Long)<br />

Dim y As Long, i As Long, l As Long, lni As Long<br />

y = MyYear(d)<br />

l = d - TageSeitGregor(y - 1, 12, 31)<br />

i = 12<br />

lni = LaufendeNr(y, i, 1)<br />

Do While (l < lni And i > 1)<br />

i = i - 1<br />

If i > 1 Then lni = LaufendeNr(y, i, 1)<br />

Loop<br />

MyMonth = i<br />

End Function<br />

Function MyDay(d As Long)<br />

Dim y As Long, i As Long, l As Long<br />

y = MyYear(d)<br />

i = MyMonth(d)<br />

MyDay = d - TageSeitGregor(y, i, 1) + 1<br />

End Function<br />

<br />

<br />

Vec2String() <br />

(v1, v2, . . . , vn) <br />

v <br />

MaxNorm()<br />

v p ≥ 1 <br />

<br />

<br />

u<br />

vp = |v(i)| p<br />

i=l<br />

1/p<br />

,


l u <br />

PNorm() p ≤ 0 <br />

−1 0 < p < 1 <br />

<br />

MaxDist() <br />

<br />

v <br />

v <br />

σ 2 <br />

u<br />

= v(i) 2<br />

<br />

u<br />

/n − v(i)<br />

i=l<br />

l u <br />

i=l<br />

2<br />

/n 2 , <br />

<br />

<br />

<br />

<br />

<br />

Vec2String <br />

<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

Option Explicit<br />

Option Base 1<br />

A B C D E F G H I J<br />

Dimension: 7 -1 2 3 4 -5 7 4<br />

p: 2<br />

MaxNorm: 7<br />

P-Norm: 10,95445115<br />

MaxDist: 12<br />

Varianz: 13,14285714<br />

Function Vec2String(ByRef v As Variant) As String<br />

If Not IsArray(v) Then Exit Function<br />

Dim i As Long<br />

Vec2String = "("<br />

For i = LBound(v) To UBound(v) - 1<br />

Vec2String = Vec2String & v(i) & ", "<br />

Next i<br />

Vec2String = Vec2String & v(UBound(v)) & ")"<br />

End Function


Function MaxNorm(ByRef v() As Double) As Double<br />

Dim j As Long<br />

MaxNorm = Abs(v(LBound(v)))<br />

For j = LBound(v) + 1 To UBound(v)<br />

If (Abs(v(j)) > MaxNorm) Then MaxNorm = Abs(v(j))<br />

Next j<br />

End Function<br />

Function PNorm(ByRef u() As Double, _<br />

ByVal p As Double) As Double<br />

Dim i As Long, k As Long<br />

If p < 1 Then<br />

PNorm = -1<br />

Else<br />

k = LBound(u)<br />

PNorm = Abs(u(k)) ^ p<br />

For i = k + 1 To UBound(u)<br />

PNorm = PNorm + Abs(u(i)) ^ p<br />

Next i<br />

PNorm = PNorm ^ (1 / p)<br />

End If<br />

End Function<br />

Function MaxDist(ByRef v() As Double) As Double<br />

Dim j As Long, max As Double, min As Double<br />

max = min = v(LBound(v))<br />

For j = LBound(v) + 1 To UBound(v)<br />

If (v(j) > max) Then max = v(j)<br />

If (v(j) < min) Then min = v(j)<br />

Next j<br />

MaxDist = max - min<br />

End Function<br />

Function VarianzVec(ByRef v() As Double) As Double<br />

Dim i As Long, n As Long<br />

Dim sqrs As Double, svar As Double<br />

svar = 0<br />

sqrs = 0<br />

For i = LBound(v) To UBound(v)<br />

svar = svar + v(i)<br />

sqrs = sqrs + v(i) * v(i)


Next i<br />

n = UBound(v) - LBound(v) + 1<br />

VarianzVec = (sqrs - svar * svar / n) / n<br />

End Function<br />

Sub TestProzedur()<br />

Dim v() As Double<br />

Dim n As Long, i As Long, p As Double<br />

Worksheets("Tabelle1").Select<br />

n = Cells(1, 2).Value<br />

p = Cells(2, 2).Value<br />

ReDim v(n)<br />

For i = 1 To n<br />

v(i) = Cells(1, i + 3).Value<br />

Next i<br />

MsgBox "Der Vektor ist: " & Vec2String(v)<br />

Cells(3, 2).Value = MaxNorm(v)<br />

Cells(4, 2).Value = PNorm(v, p)<br />

Cells(5, 2).Value = MaxDist(v)<br />

Cells(6, 2).Value = VarianzVec(v)<br />

End Sub<br />

<br />

Sub ErzeugeRndVec(ByVal n As Long, ByRef w() As Long)<br />

n <br />

Rnd() <br />

[0, 1) <br />

Sub ErzeugeRndVec(ByVal n As Long, ByRef w() As Long)<br />

Dim i As Long<br />

Dim Ober As Long, Unter As Long<br />

Ober = 6<br />

Unter = 1<br />

Randomize<br />

ReDim w(n)<br />

For i = 1 To n<br />

w(i) = Int((Ober - Unter + 1) * Rnd() + Unter)<br />

’Also: w(i) = Int(6 * Rnd() + 1)<br />

Next i<br />

End Sub


Auf Boolean Auf True <br />

<br />

’ Quelle:<br />

’ http://dbwiki.net/wiki/<strong>VBA</strong>_Tipp:_Bubblesort (31.1.2013)<br />

’ Ganz leicht verändert<br />

Public Function BubbleSortAsc(vArray As Variant) As Long<br />

’<br />

’ Ascending: aufsteigend sortieren<br />

’<br />

If Not IsArray(vArray) Then Exit Function<br />

Dim Mark As Long, i As Long<br />

Dim EndIdx As Long, StartIdx As Long<br />

Dim Temp As Variant<br />

Dim cnt As Long<br />

cnt = 0<br />

EndIdx = UBound(vArray)<br />

StartIdx = LBound(vArray)<br />

Do While EndIdx > StartIdx<br />

Mark = StartIdx<br />

For i = StartIdx To EndIdx - 1<br />

Marke: If vArray(i) > vArray(i + 1) Then<br />

Temp = vArray(i)<br />

vArray(i) = vArray(i + 1)<br />

vArray(i + 1) = Temp<br />

Mark = i<br />

cnt = cnt + 1<br />

End If<br />

Next i<br />

EndIdx = Mark<br />

Loop<br />

BubbleSortAsc = cnt<br />

End Function<br />

’ Genauso Absteigend sortieren: In der markierten Anweisung<br />

’ das Vorzeichen > durch < ersetzen<br />

Public Function BubbleSortAsc(vArray As Variant) As Long<br />

usw.<br />

Function BubbleSort(ByRef vArray As Variant, _<br />

ByVal Asc As Boolean)<br />

If Asc Then<br />

BubbleSort = BubbleSortAsc(vArray)<br />

Else


BubbleSort = BubbleSortDsc(vArray)<br />

End If<br />

End Function<br />

Sub Testbubble()<br />

Dim anz As Long<br />

anz = 80<br />

Dim v As Variant<br />

ReDim v(anz)<br />

Dim aus As String<br />

Dim i As Long<br />

For i = 1 To anz<br />

v(i) = Chr(Int(Rnd * (90 - 65 + 1) + 65))<br />

Next i<br />

’ Im Vektor befinden sich große Buchstaben von A bis Z<br />

aus = "Unsortiert: " & vbTab & Vec2String(v) & vbNewLine<br />

i = BubbleSort(v, True)<br />

aus = aus & "Sortiert: " & vbTab & Vec2String(v)<br />

MsgBox aus & " i = " & i<br />

aus = "Unsortiert: " & vbTab & Vec2String(v) & vbNewLine<br />

i = BubbleSort(v, False)<br />

aus = aus & "Sortiert: " & vbTab & Vec2String(v)<br />

MsgBox aus & " i = " & i<br />

End Sub<br />

SwitchZ1Z2 <br />

Z1 Z2 <br />

Z1 Z2 Z1 Z2 <br />

<br />

Sub SwitchZ1Z2(ByRef m As Variant, ByVal Z1 As Long,_<br />

ByVal Z2 As Long)<br />

If (Z1 < LBound(m, 1) Or Z1 > UBound(m, 1)) Then Exit Sub<br />

If (Z2 < LBound(m, 1) Or Z2 > UBound(m, 1)) Then Exit Sub<br />

Dim s As Long<br />

Dim H As Variant<br />

For s = LBound(m, 2) To UBound(m, 2)<br />

H = m(Z1, s)<br />

m(Z1, s) = m(Z2, s)<br />

m(Z2, s) = H<br />

Next s<br />

End Sub


× A = (aij) <br />

aii <br />

aij i ∈ {1, . . . , n} <br />

n<br />

|aij| < |aii|.<br />

Function IsDiagDom(ByRef m As Variant) As Boolean<br />

IsDiagDom = True<br />

Dim rows As Long, cols As Long<br />

Dim rowidx, colidx As Long<br />

j=1<br />

j=i<br />

Dim rowstart, rowend As Long<br />

Dim colstart, colend As Long<br />

rowstart = LBound(m, 1)<br />

rowend = UBound(m, 1)<br />

colstart = LBound(m, 2)<br />

colend = UBound(m, 2)<br />

rows = rowend - rowstart + 1<br />

cols = colend - colstart + 1<br />

If (rows cols) Then<br />

IsDiagDom = False<br />

Else<br />

Dim sum As Double<br />

Dim i As Long<br />

Dim j As Long<br />

i = LBound(m, 1)<br />

Do While (IsDiagDom = True And i


Loop<br />

End If<br />

End Function<br />

× A <br />

A∞ <br />

<br />

<br />

A∞ = max<br />

i=1,...,m<br />

n<br />

|aij|.<br />

<br />

Komplex<br />

<br />

Function ZSnorm(ByRef m As Variant) As Double<br />

Dim i As Long<br />

Dim j As Long<br />

Dim help As Double<br />

help = 0<br />

ZSnorm = 0<br />

For i = LBound(m, 1) To UBound(m, 1)<br />

For j = LBound(m, 2) To UBound(m, 2)<br />

help = help + Abs(m(i, j))<br />

Next j<br />

If ZSnorm < help Then ZSnorm = help<br />

help = 0<br />

Next i<br />

End Function<br />

<br />

j=1


Loop<br />

End If<br />

End Function<br />

× A <br />

A∞ <br />

<br />

<br />

A∞ = max<br />

i=1,...,m<br />

n<br />

|aij|.<br />

<br />

Komplex<br />

<br />

Function ZSnorm(ByRef m As Variant) As Double<br />

Dim i As Long<br />

Dim j As Long<br />

Dim help As Double<br />

help = 0<br />

ZSnorm = 0<br />

For i = LBound(m, 1) To UBound(m, 1)<br />

For j = LBound(m, 2) To UBound(m, 2)<br />

help = help + Abs(m(i, j))<br />

Next j<br />

If ZSnorm < help Then ZSnorm = help<br />

help = 0<br />

Next i<br />

End Function<br />

<br />

j=1


Loop<br />

End If<br />

End Function<br />

× A <br />

A∞ <br />

<br />

<br />

A∞ = max<br />

i=1,...,m<br />

n<br />

|aij|.<br />

<br />

Komplex<br />

<br />

Function ZSnorm(ByRef m As Variant) As Double<br />

Dim i As Long<br />

Dim j As Long<br />

Dim help As Double<br />

help = 0<br />

ZSnorm = 0<br />

For i = LBound(m, 1) To UBound(m, 1)<br />

For j = LBound(m, 2) To UBound(m, 2)<br />

help = help + Abs(m(i, j))<br />

Next j<br />

If ZSnorm < help Then ZSnorm = help<br />

help = 0<br />

Next i<br />

End Function<br />

<br />

j=1


Loop<br />

End If<br />

End Function<br />

× A <br />

A∞ <br />

<br />

<br />

A∞ = max<br />

i=1,...,m<br />

n<br />

|aij|.<br />

<br />

Komplex<br />

<br />

Function ZSnorm(ByRef m As Variant) As Double<br />

Dim i As Long<br />

Dim j As Long<br />

Dim help As Double<br />

help = 0<br />

ZSnorm = 0<br />

For i = LBound(m, 1) To UBound(m, 1)<br />

For j = LBound(m, 2) To UBound(m, 2)<br />

help = help + Abs(m(i, j))<br />

Next j<br />

If ZSnorm < help Then ZSnorm = help<br />

help = 0<br />

Next i<br />

End Function<br />

<br />

j=1


Loop<br />

End If<br />

End Function<br />

× A <br />

A∞ <br />

<br />

<br />

A∞ = max<br />

i=1,...,m<br />

n<br />

|aij|.<br />

<br />

Komplex<br />

<br />

Function ZSnorm(ByRef m As Variant) As Double<br />

Dim i As Long<br />

Dim j As Long<br />

Dim help As Double<br />

help = 0<br />

ZSnorm = 0<br />

For i = LBound(m, 1) To UBound(m, 1)<br />

For j = LBound(m, 2) To UBound(m, 2)<br />

help = help + Abs(m(i, j))<br />

Next j<br />

If ZSnorm < help Then ZSnorm = help<br />

help = 0<br />

Next i<br />

End Function<br />

<br />

j=1


Loop<br />

End If<br />

End Function<br />

× A <br />

A∞ <br />

<br />

<br />

A∞ = max<br />

i=1,...,m<br />

n<br />

|aij|.<br />

<br />

Komplex<br />

<br />

Function ZSnorm(ByRef m As Variant) As Double<br />

Dim i As Long<br />

Dim j As Long<br />

Dim help As Double<br />

help = 0<br />

ZSnorm = 0<br />

For i = LBound(m, 1) To UBound(m, 1)<br />

For j = LBound(m, 2) To UBound(m, 2)<br />

help = help + Abs(m(i, j))<br />

Next j<br />

If ZSnorm < help Then ZSnorm = help<br />

help = 0<br />

Next i<br />

End Function<br />

<br />

j=1

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!