Excel aufmöbeln mit VBA
Excel aufmöbeln mit VBA
Excel aufmöbeln mit VBA
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