Wussten Sie, dass...? (Excel, VBA, VBA-Editor) Home Home

WB01727_.gif (1537 Byte)

Seiteninhalt
Es gibt immer wieder Dinge, die wusste man einfach noch nicht. Solches Wissen sitzt meistens in den Köpfen der Profis und bleibt leider für andere oft unzugänglich. Dabei könnten gerade Junior-Entwickler von diesem einzigartigen Know-how profitieren, damit sie nicht die gleichen, altbekannten Fehler machen und mit viel Aufwand (sprich Zeit und Nerven) nach einer Lösung suchen.
Leserprofil
Alle Excel-Anwender und VBA-Programmierer ohne spezielle Fachkenntnisse

WB01727_.gif (1537 Byte)

Verwandte Themen

VBA-Beispiele für Microsoft Excel

Tipps und Tricks für Microsoft Excel und Excel-VBA

AutoFilter: VBA-Lösungen zu häufig gestellten Fragen

The SOSCQ Page: Codebeispiele für VBA und VB

WB01727_.gif (1537 Byte)

Themengebiete

Microsoft Excel - Geschichte (5 Beiträge)

Microsoft Excel - Benutzung (30 Beiträge)

Visual Basic für Applikationen/VBA (20 Beiträge)

VBA-Editor/VBE (10 Beiträge)


Excel-Geschichte: Wussten Sie, dass...

Help_Small.gif (956 Byte) [1] ... Excel ursprünglich für den Apple Macintosh entwickelt wurde? Die erste Version für Microsoft Windows war Microsoft Excel 2.0 und erschien im Jahre 1987.

Help_Small.gif (956 Byte) [2] ... es ein Excel mit der Versionsnummer 6.0 nie gegeben hat?

Help_Small.gif (956 Byte) [3] ... schon Microsoft Excel 3.0, welches im Jahre 1990 erschien, bereits Add-Ins kannte?

Help_Small.gif (956 Byte) [4] ... nach der Installation des Service Packs 2 (SP-2) von Microsoft Office 2000 im Info-Dialogfenster von Excel als Versionsinfo immer noch "SR-1" gezeigt wird?

Help_Small.gif (956 Byte) [5] ... die ersten Excelversionen für Windows 95 und Windows NT in bezug auf ihre technischen Programmeigenschaften (Limitationen und Spezifikationen) in einigen Punkten schlechter waren als ihre Vorgängerversionen für Windows 3.1? Durch die Umstellung auf 32 bit-Programmversionen wurden beispielsweise Array-Elemente neu als 24 bit-Wert gespeichert und nicht mehr als 20 bit-Wert wie bis anhin. D.h. dass ein Array-Element mehr Speicher beanspruchte. Da jedoch Array-Definitionen nach wie vor in einem 64 KB-Speichersegment abgelegt wurden, konnte in der neuen Excelversion ein Array weniger Elemente enthalten als in einer älteren Excelversion.

To Top


Excel-Benutzung: Wussten Sie, dass...

Help_Small.gif (956 Byte) [1] ... mit einer Uhrzeit, welche als Text vorliegt (z.B. "12:45:33"), trotzdem gerechnet werden kann, indem man die Funktion WERT() verwendet?
Beispiel:
=WERT("16:48:00")-WERT("12:00:00") gibt 0.2, d.h. die fortlaufende Zahl, die der Zeitdifferenz von 4 Stunden und 48 Minuten entspricht (das ist 1/5 bzw. 20 % eines Tages).

Help_Small.gif (956 Byte) [2] ... eine Zelle, die genau 255 mal das Number-Zeichen (#) anzeigt (bzw. über die gesamte Breite der Zelle), sehr wahrscheinlich ein negatives Datum oder eine negative Uhrzeit enthält?
Beispiel:
Sie können dieses Verhalten mit folgender Formel testen: "=WERT("08:00:00")-WERT("09:00:00")".

Help_Small.gif (956 Byte) [3] ... Sie bei der Eingabe des Argumentes einer Funktion anhand eines zusätzlichen Klammernpaares Excel dazu zwingen können, das Semikolon ';' nicht als Listentrennzeichen zu interpretieren, da gewöhnlich das Semikolon dazu verwendet wird, die verschiedenen Argumente einer Funktion zu trennen?
Beispiel:
Die Verwendung von zusätzlichen Klammern ist unter anderem bei der BEREICHE-Funktion notwendig. Die Formel "=BEREICHE((B2:D4;E5;F6:I9))" gibt den korrekten Wert 3 zurück. Ohne die zusätzlichen Klammern, d.h. mit der Formel "=BEREICHE(B2:D4;E5;F6:I9)", nimmt Excel an, dass nach dem Semikolon ein weiteres Argument folgt und daher die Fehlermeldung "Die eingegebene Formel enthält einen Fehler. [...]" anzeigen, da die BEREICHE-Funktion nur ein einziges Argument besitzt.

Help_Small.gif (956 Byte) [4] ... Sie die Zelladresse mit der Funktion "=ZELLE("Adresse";Bezug)" in eine Zelle eintragen können, wobei Bezug für einen relativen Zellbezug (d.h. ohne Dollarzeichen) steht?
Beispiel:
Die Formel "=ZELLE("Adresse";A1)" in der Zelle A1 ergibt "$A$1". Wird diese Zelle z.B. in der Spalte A auf die Zeilen 2 bis 20 kopiert, steht in den Zellen A2 bis A20 die entsprechende Adresse der Zelle.

Help_Small.gif (956 Byte) [5] ... die Anzahl der verschiedenen Kombinationen einer bestimmten Ausgangslage mit der KOMBINATIONEN-Funktion sehr einfach berechnet werden kann?
Beispiel:
- Aufgabe: Sechs Kursteilnehmer sollen Zweiergruppen bilden. Wieviele Personen-Kombinationsmöglichkeiten gibt es?
- Lösung: Die Formel für die Lösung lautet "=KOMBINATIONEN(6;2)". Die Formel gibt die Zahl 15 zurück, was bedeutet, dass 15 verschiedene Kombinationsmöglichkeiten existieren.

Help_Small.gif (956 Byte) [6] ... das Ergebnis einer Formel als fixer Ausdruck in eine Zelle eingetragen werden kann, indem nach Eingabe der Formel nicht die Eingabe-Taste sondern die Funktionstaste F9 gedrückt wird?
Beispiel:
Geben Sie in eine Zelle "=ZUFALLSZAHL()" ein und drücken anstelle der Eingabe-Taste die Funktionstaste F9. In die Zelle wird dadurch nicht die Formel sondern das Resultat der Formel eingetragen, d.h. die ermittelte Zufallszahl.

Help_Small.gif (956 Byte) [7] ... eine Matrixformel eingegeben wird, indem nach Eingabe der Formel in der Bearbeitungsleiste die Tastenkombination Strg+Umschalt+Eingabe (Ctrl+Shift+Enter) gedrückt wird (siehe auch Beitrag Nr. 24)?

Help_Small.gif (956 Byte) [8] ... es möglich ist, das Zahlenformat einer Zelle abhängig von der Erfüllung einer Bedingung einstellen zu können? Bedingtes oder Berechnetes Benutzerdefiniertes Zahlenformat
Beispiel
:
[=1] 0 "Tag";0 "Tage"
[Rot][=1] 0 "Tag";0 "Tage";0 "Tage";"Noch "@

Help_Small.gif (956 Byte) [9] ... die Tastenkombination Strg+U (oder Strg+<) eine interessante Abkürzung für das Duplizieren einer Zelle sowie das Ausfüllen von Zellbereichen darstellt?
Beispiel für Duplizieren:
Wenn in Zelle A1 die Zahl 5 steht und Sie möchten diesen Wert inklusive Zell-Format in die Zelle A2 kopieren, dann müssen Sie lediglich die Zelle A2 selektieren und anschliessend Strg+< drücken. In Zelle A2 steht nun ebenfalls die Zahl 5.
Beispiel für Ausfüllen:
Wenn in Zelle A1 der Text "Artikel" steht und Sie möchten diesen Text in den Zellbereich A2:A15 füllen, dann müssen Sie den Bereich A1:A15 selektieren und anschliessend Strg+< drücken. Der Zellbereich wird daraufhin mit dem Text "Artikel" ausgefüllt.

Help_Small.gif (956 Byte) [10] ... der angezeigte Text eines Zeichnungsobjektes dynamisch abhängig vom Inhalt einer Zelle gemacht werden kann?
Hinweise:
  - Diese Verknüpfungsmöglichkeit existiert bei allen Zeichnungsobjekten, denen ein Text hinzugefügt werden kann (also auch Autoformen).
  - Es kann nur mit einer einzelnen Zelle verknüpft werden; Zellbereiche dagegen sind nicht zulässig.
  - Anstelle der Zelladresse kann auch der Name einer Zelle verwendet werden.
  - Die Verknüpfung mit einer Zelle eines anderen Tabellenblattes oder einer anderen Arbeitsmappe ist ebenfalls zulässig.
  - Zellformatierungen wie Schriftart, -Grösse und -Schnitt werden bei Anlegen der Verknüpfung auf das Zeichnungsobjekt übernommen.
  - Automatische und manuelle Zeilenumbrüche im Zelltext werden berücksichtigt.
Beispiel:
1. Fügen Sie ein neues Textfeld in ein Tabellenblatt ein.
2. Lassen Sie das Textfeld markiert und klicken Sie in die Bearbeitungsleiste.
3. Selektieren Sie jetzt mit der Maus in eine beliebige Zelle oder geben Sie im Textfeld eine Zelladresse ein (z.B. =$B$5).
4. Drücken Sie nun die Eingabe-Taste.
-> Bei jeder Änderung der auf diese Weise verknüpften Zelle erscheint im Textfeld der aktuelle Inhalt dieser Zelle.

Help_Small.gif (956 Byte) [11] ... während der direkten Zellbearbeitung anhand der Tastenkombination Strg+A in die Bearbeitungsleiste gesprungen werden kann, und zwar unter Beibehaltung der aktuellen Position der Texteingabemarke und Textmarkierung?
Beispiel:
1. Klicken Sie doppelt auf eine Zelle, welche beispielsweise die Formel "=(SUMME(A1:C3)-D1)*2" enthält.
2. Markieren Sie in der Zelle die Zeichenfolge "-D1" der Formel.
3. Drücken Sie jetzt die Tastenkombination Strg+A.
-> Es wird sofort in die Bearbeitungsleiste gesprungen, wobei aktuell markierte Zeichenfolge "-D1" wieder markiert wird und auch die Texteingabemarke wieder - wie bei der direkten Zellbearbeitung - an der gleichen Stelle steht.

Help_Small.gif (956 Byte) [12] ... die Parameter (Argumente) einer Funktion während der Eingabe durch die Tastenkombination Strg+Umschalt+A als Eingabehilfe sowohl in der Zelle als auch in der Bearbeitungsleiste eingeblendet werden können?
Beispiel:
Geben Sie in einer Zelle den Funktionsname "=SUMME" ein und drücken Sie die Tastenkombination Strg+Umschalt+A. Es wird daraufhin die komplette Funktionsdefinition "=SUMME(Zahl1;Zahl2;...)" eingeblendet.

Help_Small.gif (956 Byte) [13] ... ein in die Zwischenablage kopierter Zellbereich (d.h. eine oder mehrere Zellen) als dynamisches Bildobjekt in ein beliebiges Arbeitsblatt einer frei wählbaren Arbeitsmappe eingefügt werden kann (Dynamic Snapshot)?
Beispiel:
Kopieren Sie den Zellbereich B3:E10 in die Zwischenablage, indem Sie den Bereich markieren und die Tastenkombination Strg+C drücken. Drücken Sie nun die Umschalt-Taste und klicken Sie bei gehaltener Umschalt-Taste auf das Menü Bearbeiten. Wählen Sie den Menübefehl "Verknüpfte Grafik einfügen" aus. Sie erhalten ein neues Bildobjekt, welches dynamisch mit dem kopierten Zellbereich verknüpft ist. Sobald sich eine Zelle dieses Bereiches ändert, wird das Bild automatisch aktualisiert.

Help_Small.gif (956 Byte) [14] ... es eine Möglichkeit zur Ermittlung der Textformatierung einer bestimmten Zelle gibt? Mit der Excel-Funktion ZELLE() können Sie herausfinden, ob der Text einer bestimmten Zelle linksbündig, zentriert oder rechtsbündig formatiert ist.
Beispiel:
Geben Sie in der Zelle B1 die Formel "=ZELLE("Präfix";A1)" ein.
'   für linksbündig
^ für zentriert
"  für rechtsbündig

Help_Small.gif (956 Byte) [15] ... neu zu definierende Namen, die Sie im Namensfeld (links in der Bearbeitungsleiste) eingeben, standardmässig für die gesamte Arbeitsmappen gültig sind? Wenn Sie möchten, dass ein neuer Name nur für das aktive Tabellenblatt gültig sein soll, können Sie vor dem Namen den Blattnamen und ein Ausrufezeichen eingeben.
Beispiel:
Für den Zellbereich A2:A10 soll der neue Name "Produkte" definiert werden, wobei der Name nur für das aktive Arbeitsblatt "Tabelle1" gelten soll. Somit muss "Tabelle1!Produkte" im Namensfeld eingegeben werden.

Help_Small.gif (956 Byte) [16] ... der schnellste Weg, das Codefenster mit der Ereignis-Prozedur "Workbook_Open" zu öffnen, über das Programmsymbolmenü des Arbeitsmappen-Fensters führt? Klicken Sie dazu mit der rechten Maustaste auf das kleine Excel-Symbol links der Menüleiste (bei Arbeitsmappen-Fenster im Vollbild-Modus) bzw. links des Arbeitsmappen-Fenstertitels (bei nicht maximiertem Fenster).

Help_Small.gif (956 Byte) [17] ... Sie im Namensfeld (links in der Bearbeitungsleiste) nicht eine einzelne Zelladresse (z.B. B3) oder die Adresse eines Zellbereiches (z.B. A2:C5) eingeben können, sondern auch mehrere nicht zusammenhängende Bereiche und die Schnittmenge von Bereichen (anhand des Vereinigungs- bzw. des Schnittmengenoperators) selektieren können?
Hinweis: Im Namensfeld wird als Vereinigungsoperator nicht wie in Formeln üblich das Komma (,) sondern das Semikolon (;) benutzt. In Formeln wird das Semikolon zum Trennen der Funktionsargumente benutzt (siehe auch Beitrag Nr. 7). Als Schnittmengenoperator wird wie gewohnt das Leerzeichen verwendet.
Beispiel für Vereinigung:
Geben Sie im Namensfeld "A2;B5;D3:F10" ein, damit die Zellen A2, B5 und D3 bis F10 selektiert werden.
Beispiel für Schnittmenge:
Geben Sie im Namensfeld "A1:E10 D8:G14" ein, damit die Zellen D8 bis E10 selektiert werden.

Help_Small.gif (956 Byte) [18] ... mit der Funktionstaste F6 zum nächsten Fenster-Ausschnitt eines geteilten Fensters gewechselt wird, ohne dass dabei die aktuelle Zellmarkierung im jeweiligen Ausschnitt verloren geht?
Beispiel:
1) Markieren Sie die Zelle C5.
2) Führen Sie den Menübefehl "Fenster/Teilen" aus. Sie sehen nun vier Fenster-Ausschnitte, wobei sich die aktive Zelle C5 im rechten unteren Ausschnitt befindet. Dieser Ausschnitt ist somit auch der aktive Fenster-Ausschnitt.
3) Markieren Sie jetzt in diesem Ausschnitt den Zellbereich D7:F10.
4) Drücken Sie die Funktionstaste F6, wodurch im Uhrzeigersinn zum nächsten Fenster-Ausschnitt gewechselt wird. Der Ausschnitt links unten ist nun aktivert und die aktive Zelle ist A5.
5) Drücken und halten Sie jetzt die UMSCHALT-Taste und drücken zwei Mal auf die Pfeil-nach-oben-Taste, damit der Zellbereich A3:A5 selektiert wird.
6) Drücken Sie nun mehrmals auf die F6-Taste und Sie werden erkennen, dass bei jedem Drücken zum nächsten Ausschnitt gewechselt wird und dabei die jeweilige Markierung des aktuellen Fenster-Ausschnitts wieder hergestellt wird,

Help_Small.gif (956 Byte) [19] ... mit der Excel-Funktion ZELLE() unter anderem auch festgestellt werden kann, welches die aktive Zelle, bevor die Neuberechnung durchgeführt wurde, und zwar inklusive Arbeitsblatt- und Arbeitsmappe-Name?

Help_Small.gif (956 Byte) [20] ... die Excel-Funktion ZEIT() eine fortlaufende Zahl als Dezimalbruch zwischen 0 und 0.99999999 zurückgibt, wobei die Zahl der Uhrzeit von 0:00:00 (24:00:00) bis 23:59:59 entspricht?

Help_Small.gif (956 Byte) [21] ... in Microsoft Excel für Windows beim Öffnen einer Datei, die mit einer Macintosh-Version von Excel gespeichert wurde, automatisch das Datumssystem umgestellt wird, d.h. die Einstellung "1904-Datumswerte" im Optionen-Dialogfenster automatisch aktiviert wird?

Help_Small.gif (956 Byte) [22] ... der aktuelle Bereich der aktiven Zelle anstatt über Menü "Bearbeiten/Gehe zu...", Schaltfläche "Inhalte", Option "Aktueller Bereich" ganz einfach mit der Tastenkombination Strg+* (Stern) markiert werden kann?

Help_Small.gif (956 Byte) [23] ... mit der Tastenkombination Alt+Eingabe die zuletzt verwendete Zellformatierung auf den aktuell selektierten Zellbereich angewendet wird?

Help_Small.gif (956 Byte) [24] ... mit der Tastenkombination Strg+Umschalt+Eingabe in Microsoft Excel für Windows eine Matrixformel eingegeben wird? Sehr wahrscheinlich wussten Sie dies bereits. Aber wussten Sie auch, dass in Microsoft Excel für Macintosh dazu die Tastenkombination +Eingabe benutzt wird?

Help_Small.gif (956 Byte) [25] ... anstatt über Menü "Bearbeiten/Gehe zu...", Schaltfläche "Inhalte", Option "Letzte Zelle" ganz einfach mit der Tastenkombination Strg+Ende zur letzten Zelle des benutzten Bereiches gesprungen werden kann?

Help_Small.gif (956 Byte) [26] ... man bei gedrückter Alt-Taste den gerade selektierten Zellbereich auf das Blattregister ziehen kann, um zu einem anderen Blatt zu wechseln? Dadurch können Sie Zellbereiche auch mit Drag & Drop auf andere Blätter verschieben (oder kopieren, wenn Sie zusätzlich die Strg-Taste drücken).

Help_Small.gif (956 Byte) [27] ... sich sehr einfach die Zeilen beziehungsweise Spalten einer bestimmten Gruppierungsebene selektieren lassen, indem man die Umschalt-Taste gedrückt hält und dann auf das gewünschte Gliederungssymbol "[+]" oder "[-]" klickt?

Help_Small.gif (956 Byte) [28] ... mit der Funktionstaste F4 ein Kombinationsfeld (DropDown-Feld) aufgeklappt werden kann, sodass die Auswahlliste angezeigt wird?

Help_Small.gif (956 Byte) [29] ... man in der deutschen Ausgabe von Microsoft Excel ein Arbeitsblatt nicht in "Änderungsprotokoll" umbenennen kann, weil dies ein reservierter und somit gesperrter Name ist, der von Excel für interne Zwecke benutzt wird? In der englischen Excel-Ausgabe ist es nicht möglich, ein Arbeitsblatt mit "History" zu benennen.

Help_Small.gif (956 Byte) [30] ... zur letzten Spalte des benutzten Zellbereiches gesprungen werden kann, indem man zuerst die Ende-Taste und anschliessend die Eingabe-Taste drückt?

To Top


VBA: Wussten Sie, dass...

Help_Small.gif (956 Byte) [1] ... VBA ein Datum intern als numerischen Wert speichert?
Beispiel:
Das morgige Datum erhält man ganz einfach mit der Anweisung "MsgBox Date() + 1".

Help_Small.gif (956 Byte) [2] ... VBA die Windows Ländereinstellungen berücksichtigt, um herauszufinden, wie ein Datum zu interpretieren ist? Es wäre sonst nicht möglich zu sagen, ob mit #1/5/99# der 1. Mai 1999 oder der 5. Januar 1999 gemeint ist.

Help_Small.gif (956 Byte) [3] ... eine Dezimalzahl ein Datum repräsentiert, sobald sie in den Datentyp Date umgewandelt wird? Die Zahl links vom Dezimalpunkt ist dabei das Datum und die Zahl rechts vom Dezimalpunkt die Zeit.
Beispiel:
Die Zahl 238.492063492063 entspricht dem Datum 25. August 1990 (=238) und der Uhrzeit 11:48:34 (=492063492063).

Help_Small.gif (956 Byte) [4] ... das Number-Zeichen '#' gemäss VBA-Hilfe dazu benutzt werden kann, einen beliebigen Ausdruck als Datum zu verwenden?
Beispiel:
Der Ausdruck #Januar 12 02# wird bei der Eingabe im Codefenster des VBA-Editors sofort in #1/12/02# umgewandelt. Die Sache hat aber einen Haken, da die automatische Umwandlung einen Bug besitzt (mehr unter
Bugreport: Das Number-Zeichen für Datumsausdrücke).

Help_Small.gif (956 Byte) [5] ... ein Datum für VBA nichts anderes als eine 8 Byte Gleitkommazahl ist, die einen eindeutigen Punkt auf der Zeitachse darstellt? Die Zeitachse beginnt am 30. Dezember 1899 und endet am 31. Dezember 9999.

Help_Small.gif (956 Byte) [6] ... in VBA die Date-Anweisung und die Date-Funktion zwar beide das aktuelle Datum ausgeben, aber dennoch einen Unterschied besitzen? Mit der Anweisung Date wird in der Regel das Systemdatum eingestellt (kann auch benutzt werden, um es abzufragen). Mit der Funktion Date() wird das Systemdatum abgefragt. Die Funktion Date() gibt einen Variant (mit Unterdatentyp Date) zurück.

Help_Small.gif (956 Byte) [7] ... Beitrag folgt in Kürze... (ActiveSheet.Shapes(1).DrawingObject)

Help_Small.gif (956 Byte) [8] ... man durch Abfragen von ActiveSheet.CodeName den internen Namen des aktiven Arbeitsblattes erhält? Es gibt jedoch eine Ausnahme: Wenn das Änderungsprotokoll-Blatt (es trägt den Namen "Änderungsprotokoll") aktiv ist, besitzt die CodeName-Eigenschaft keinen Wert. Die Abfrage von ActiveSheet.CodeName gibt in diesem Fall nichts zurück.

Help_Small.gif (956 Byte) [9] ... jede Zelle eines Tabellenblattes eine eindeutige Indexnummer in Form einer Ganzzahl zwischen 1 und 16'777'216 besitzt?
Beispiel:
Wenn Sie die Adresse der Zelle Nr. 14'697'534 wissen möchten, können Sie einfach "Cells(14697534).Address" abfragen und erhalten das Ergebnis "$BJ$57413".

Help_Small.gif (956 Byte) [10] ... wenn Sie alle Zellen mehrerer Zeilen eines Arbeitsblattes der Reihe nach (Zeile 1 Spalte A bis IV, Zeile 2 Spalte A bis IV, Zeile 3 Spalte A bis IV usw.) mit Werten füllen möchten, gar nicht zwei verschachtelte For-Next-Schleifen benötigt werden (wie es in vielen VBA-Beispielen zu sehen ist)? Tatsächlich genügt eine einzige Schleife.

Help_Small.gif (956 Byte) [11] ... auch der VBA-Editor wie auch die MS Office-Anwendungen ein sogenanntes Easter Egg verbirgt?
Gehen Sie so im VBA-Editor vor:
  1. Menübefehl Ansicht/Symbolleisten/Anpassen ausführen (Dialogfenster "Anpassen" öffnet sich)
  2. Mit der linken Maustaste auf das Fragezeichen des Hilfe-Menüs klicken (Menü Hilfe wird aufgeklappt)
  3. Mit der rechten Maustaste den Menüeintrag Info anklicken (Kontext-Menü wird eingeblendet)
  4. Im Feld "Name:" den Text "Show VB Credits" eintragen (bisher stand dort "Info")
  5. Eingabe-Taste drücken (Kontext-Menü verschwindet)
  6. Dialogfenster "Anpassen" schliessen
Wenn Sie nun den geänderten Menübefehl "Show VB Credits" anwählen, öffnet sich ein Fenster mit einem animierten Himmel, fliegenden Bauklötzen und einer scrollenden Liste der Produktteam-Mitarbeiter.

Help_Small.gif (956 Byte) [12] ... mit der Anweisung "ActiveSheet.Pictures.Paste(Link:=True).Select" ein vorgängig in der Zwischenablage abgelegter Zellbereich (eine oder mehrere Zellen) als dynamisches Bildobjekt in ein beliebiges Arbeitsblatt einer frei wählbaren Arbeitsmappe eingefügt wird (Dynamic Snapshot)?
Beispiel:
Kopieren Sie den Zellbereich B3:E10 in die Zwischenablage, indem Sie den Bereich markieren und die Tastenkombination Strg+C drücken. Führen Sie jetzt die obige Anweisung aus. Sie erhalten dadurch ein neues Bildobjekt, welches dynamisch mit dem kopierten Zellbereich verknüpft ist. Sobald sich eine Zelle dieses Bereiches ändert, wird das Bild automatisch aktualisiert.

Help_Small.gif (956 Byte) [13] ... Excel 95, Excel 97, Excel 2000, Excel 2002 und Excel 2003 bei dem gleichen Fehler im ungünstigsten Fall unterschiedliche Fehlermeldungen ausgeben?
Hinweis: Wichtig ist, dass Sie einem VBA-Programm die Laufzeitfehler der unterschiedlichen Excel-Versionen korrekt abfangen, sollte das VBA-Programm sowohl unter Excel 97/2000 als auch unter Excel 2002 eingesetzt werden.
Beispiel:
Schreiben Sie die VBA-Programmzeile "ActiveSheet.Cells.Value(2, 3) = ActiveSheet.Cells.Value(4, 5)" in eine Sub-Prozedur und führen Sie diese aus. Folgendes Verhalten tritt bei den jeweiligen Excel-Versionen auf:
  - Excel 95: Kein Fehler (weil diese Programmzeile für Excel 95-VBA korrekt ist)
  - Excel 97: Laufzeitfehler 7 "Out of memory"
  - Excel 2000: Laufzeitfehler 7 "Out of memory"
  - Excel 2002: Laufzeitfehler 450 "Wrong number of arguments or invalid property assignment"
In den Excel-Versionen neuer als Excel 95 müsste die Anweisung korrekt "ActiveSheet.Cells(2, 3).Value = ActiveSheet.Cells(4, 5).Value" heissen.

Help_Small.gif (956 Byte) [14] ... Anführungstriche (") bzw. doppelte Hochkommas in Zeichenketten verwendet werden können, indem man das "-Zeichen einfach doppelt schreibt?
Beispiel:
Sie möchten mit VBA der Zelle B1 eine WENN-Formel zuweisen. Dazu müssten Sie schreiben:
  Range("B1").Formula = "=IF(A1="Ja", 1, 0)"
Diese Anweisung wird aber nicht akzeptiert, da das erste "-Zeichen von "Ja" als Schlusszeichen der Zeichenfolge "=IF(A1=" betrachtet wird. Damit die Formel akzeptiert wird, müssen Sie folgendes eingeben:
  Range("B1").Formula = "=IF(A1=""Ja"", 1, 0)"
Durch das zusätzliche Setzen des Wortes "Ja" in Hochkommas wird VBA mitgeteilt, dass es sich um eine Zeichenfolge innerhalb einer anderen Zeichenfolge handelt.

Help_Small.gif (956 Byte) [15] ... mit der im Excel-Objektmodell ausgeblendeten Funktion "_WSFunction" gerechnet werden kann?
Beispiel:
Die Anweisung "MsgBox Application.[_WSFunction]((10 + 20) / 3 + 50)" liefert das Resultat 60.

Help_Small.gif (956 Byte) [16] ... eine integrierte Excel-Funktion auf ganz unterschiedliche Art und Weise aufgerufen werden kann?
Beispiel:
Alle folgenden Anweisungen liefern das gleiche Ergebnis:
- MsgBox Application.Max(4,6,3)
- MsgBox Parent.Max(4,6,3)
- MsgBox Application.WorksheetFunction.Max(4,6,3)
- MsgBox Application.[_WSFunction](Application.Max(4,6,3))

Help_Small.gif (956 Byte) [17] ... eine Zelle anstatt mit "Range(...)" auch angesprochen werden kann, indem man schlicht die Zelladresse in eckige Klammern einfasst? Beachten Sie bitte, dass bei dieser Variante der in den Klammern stehende Ausdruck (d.h. die Zelladresse) evaluiert wird. Die eckigen Klammern sind nämlich die Kurzschreibweise der Methode Evaluate (siehe Hilfe von Excel-VBA).
Beispiele:
- Range("B5") -> [B5]
- ?Range("C4").Formula -> ?[C4].Formula

Help_Small.gif (956 Byte) [18] ... man ein Arbeitsblatt sozusagen 'verstecken' kann, indem man im Eigenschaftenfenster des VBA-Editors die Eigenschaft Visible des Arbeitsblattes auf xlSheetVeryHidden setzt?

Help_Small.gif (956 Byte) [19] ... mit der eher ungewöhnlichen Anweisung "ActiveCell.Select" die Zellmarkierung auf die aktive Zelle gesetzt wird? Die Anwendung ist insofern ungewöhnlich, weil die aktive Zelle (ActiveCell) im Prinzip ja bereits selektiert ist und somit nicht anhand der Select-Methode nochmals selektiert werden muss. Trotzdem wird die Anweisung in verschiedenen Situationen benötigt, unter anderem wenn ein Objekt (beispielsweise ein Zeichnungsobjekt) markiert ist und dann die Selektion 'zurück' auf die aktive Zelle besetzt werden soll.
Beispiel:
ActiveSheet.Shapes("Rectangle 1").Select
ActiveCell.Select

Help_Small.gif (956 Byte) [20] ... ein Datum, welches als fortlaufende Zahl vorliegt, mit der Format-Funktion in ein Datum im Format TT.MM.JJJJ umgewandelt werden kann?
Beispiel:
Die Anweisung "MsgBox Format$(38713, "dd.mm.yyyy")" gibt das Datum 27.12.2005 aus.

To Top


VBE: Wussten Sie, dass...

[1] ... Dateien mit der Dateinamenerweiterung 'exd' im Temp-Verzeichnis auf Ihrer Festplatte Informationen zu denjenigen ActiveX-Controls enthalten, die Sie irgend wann einmal in einem VBA-Projekt verwendet haben? Sobald Sie ein Zusatz-Steuerelement das erste Mal benutzen, generiert die VBE automatisch ein binäres File mit dem Namen des Controls und der Endung "exd". Wurde diese Datei einmal erstellt, laufen alle späteren Control-Verwendungen in der VBE um einiges schneller ab, da die VBE die benötigten Informationen über das Control bereits kennt. Die exd-Dateien können Sie bedenkenlos löschen, denn beim nächsten Gebrauch eines ActiveX-Controls wird die erforderliche Datei wieder automatisch erstellt.

[2] ... Sie Add-In-Projekte vorzugsweise vor dem Speichern/Schliessen des Projektes explizit kompilieren sollten (Menübefehl Testen/Kompilieren von <Projektname>)? Die Kompilierung des Programmcodes ist unbedingt zu empfehlen, da Add-In-Projekte beim Speichern bzw. Schliessen nicht automatisch kompiliert werden. Durch die Kompilierung und anschliessende Speicherung der Exceldatei wird nebst dem original Programmcode auch der kompilierte Code in der Datei abgelegt (und beim späteren Öffnen der Datei automatisch geladen). Bereits kompilierter Code wird schneller ausgeführt, da bei Aufruf einer Prozedur/Funktion nicht zuerst kompiliert werden muss. Zudem werden durch die Kompilierung allfällige Syntaxfehler im VBA-Code erkannt und gemeldet. Allerdings ist eine Exceldatei, die kompilierten Code enthält, ein bisschen grösser als die gleiche Datei ohne kompilierten Code. Es ist nachvollziehbar, dass eine grössere Datei etwas mehr Zeit zum Öffnen benötigt. Diese Zeitdauer wird jedoch durch die schnellere Codeausführung vollumfänglich kompensiert.

[3] ... die VBE grundsätzlich über zwei Betriebsmodi verfügt, nämlich den "Run Mode" (Ausführungsmodus) und den "Design Mode" (Entwurfsmodus)? Der Run Mode besitzt seinerseits wiederum mehrere Modi: Laufzeitmodus, Haltemodus und Beendetmodus.

[4] ... sämtliche Public-/Global-Variablen zurückgesetzt werden, sobald Sie in den Entwurfsmodus wechseln oder im Direktfenster die Anweisung "Run" eingeben?

[5] ... der VBA-Editor wie auch die MS Office-Anwendungen ein sogenanntes Easter Egg verbirgt?
Gehen Sie so im VBA-Editor vor:
  1. Menübefehl "Ansicht/Symbolleisten/Anpassen" ausführen (Dialogfenster "Anpassen" öffnet sich)
  2. Mit der linken Maustaste auf das Fragezeichen des Hilfe-Menüs klicken (Menü Hilfe wird aufgeklappt)
  3. Mit der rechten Maustaste den Menüeintrag "Info" anklicken (Kontext-Menü wird eingeblendet)
  4. Im Feld "Name:" den Text "Show VB Credits" eintragen (bisher stand dort "Info")
  5. Eingabe-Taste drücken (Kontext-Menü verschwindet)
  6. Dialogfenster "Anpassen" schliessen
Wenn Sie nun den geänderten Menübefehl "Show VB Credits" anwählen, öffnet sich ein Fenster mit einem animierten Himmel, fliegenden Bauklötzen und einer Laufschrift mit den Namen der Produktteam-Mitarbeiter.

[6] ... man den VBA-Editor auch mittels Programmcode schliessen kann, indem man im VBA-Programm die Anweisung "Application.VBE.MainWindow.Visible = False" schreibt? Die Verwendung dieser Anweisung im Direktfenster ist dagegen nicht möglich bzw. führt nicht zum erwarteten Ergebnis. Das VBA-Editor-Fenster wird zwar geschlossen, aber nach Ausführen der Anweisung sofort wieder geöffnet.

[7] ... man die Beschreibung zu einer beliebigen Laufzeitfehlernummer erhält, indem man im Direktfenster die Anweisung "Error" und die Fehlernummer eingibt?
Beispiel:
Wenn sie wissen möchten, wie der Meldungstext der Fehlernummer 70 lautet, dann geben Sie im Direktfenster "Error 70" ein und drücken die Eingabe-Taste. Es erscheint ein Dialogfenster mit dem Text "Laufzeitfehler 70: Zugriff verweigert".

[8] ... sich der VBA-Editor zum Vollbild vergrössern lässt, indem man in die rechte untere Ecke eines maximierten Codefensters doppelklickt (siehe Abbildung)?

Ausschnitt des VBA-Editors

Help_Small.gif (956 Byte) [9] ... das Arbeitsblatt mit der Bezeichnung "Änderungsprotokoll" nicht im Projekt Explorer-Fenster des VBA-Editors angezeigt wird? Das Blatt namens "Änderungsprotokoll" wird von Excel automatisch - aber ausschliesslich für interne Zwecke - angelegt.

Help_Small.gif (956 Byte) [10] ... man ein Modul oder ein Benutzerformular als Datei exportieren kann, indem man das gewünschte Objekt mit Drag-and-Drop aus dem Projekt Explorer-Fenster direkt in einen Ordner im Windows Explorer oder auf den Windows Desktop zieht?

To Top

WB01727_.gif (1537 Byte)

Haben Sie Fragen, Anregungen oder einen Fehler entdeckt?
Mail senden an philipp.von.wartburg@bluewin.ch

Zuletzt aktualisiert am 13.12.2005 / 23:00 Uhr
© 2002-2005 by Philipp von Wartburg, CH-8916 Jonen
Alle Rechte vorbehalten