Kompatibilität von Excel für Windows und Excel für Macintosh Home Home

WB01727_.gif (1537 Byte)

Inhalt dieses Dokumentes
Wenn man eine Arbeitsmappe erstellt, die einem beliebigen Benutzerkreis zur Verfügung gestellt werden soll, so muss man daran denken, dass Microsoft Excel sowohl für Windows als auch für Macintosh existiert. Eine mit Excel für Windows erstellte Mappe muss daher auch in Excel für Macintosh bearbeitbar sein und umgekehrt. Zwischen Excel für Windows und Excel für Macintosh gibt es eine ganze Reihe wichtiger Unterschiede, die man beachten muss. Insbesondere beim Schreiben von VBA-Programmcode muss man viele Spezialitäten und Inkompatibilitäten berücksichtigen, die unter anderem in VBA, im Excel-Objektmodell und im Office-Objektmodell enthalten sind.

Diese Dokumentation stellt sämtliche derzeit bekannten Unterschiede, Inkompatibilitäten, Spezialfälle und potenzielle Probleme von plattformunabhängigen Excel-Arbeitsmappen und VBA-Programmen vor.

Sie erhalten hier ausführliche Beschreibungen, Anleitungen, Empfehlungen, Tipps und Tricks sowie VBA-Codebeispiele. Viele Informationen beziehen ganz allgemein auf VBA und gelten somit auch für VBA-Programme, die mit einem anderen Microsoft Office-Programm als Microsoft Excel entwickelt wurden.

Diese Dokumentation ist auch als PDF-Dokument erhältlich. Mehr dazu siehe hier.


Version: Dokument-Version 4.5
Datum: Zuletzt aktualisiert am 24.01.2006
Autor: Philipp von Wartburg (mailto:philipp_von_wartburg@yahoo.de), Winkel 115, CH-8916 Jonen

Zielpublikum
Microsoft Office-Anwender und -Programmierer, insbesondere von Microsoft Excel, die Arbeitsmappen, Add-Ins, Makros und VBA-Programme sowohl für Excel für Windows als auch für Excel für Macintosh entwickeln.

WB01727_.gif (1537 Byte)

Inhalt

 Vorwort

 Einleitung
    Inhalt dieser Dokumentation
    Zweck dieser Dokumentation
    Zielpublikum
    Quellenverzeichnis
    Weitere nützliche Informationsquellen

 Allgemeines über Unterschiede und Inkompatibilitäten
    Warum ist Kompatibilität wichtig?
    Gründe für Unterschiede und Inkompatibilitäten
    Wo gibt es Unterschiede?
    Auswirkungen von Inkompatibilitäten

 Generelle Empfehlungen

 Keine Unterschiede

 Zusatzprogramme und Komponenten von Microsoft Office

 Grundsätzliche Unterschiede
    Unterschiede zwischen Windows und Macintosh
    Unterschiede zwischen Excel für Windows und Excel für Macintosh
    Unterschiede zwischen VBA für Windows und VBA für Macintosh
    Sonstige Unterschiede

 Unterschiede bei Dateinamen, Dateipfaden und Verzeichnispfaden
    Allgemeines
    Pfade in der Anwendung Microsoft Excel
    Pfade in der Arbeitsmappe
    Pfade im VBA-Programmcode
    Pfade an anderen Stellen

 Unterschiede bei Dateitypen und Dateiformaten

 Unterschiede bei Excel-Tabellenfunktionen

 Unterschiede bei Formular-Steuerelementen

 Unterschiede in der Programmiersprache VBA
    Allgemeines
    Übersicht der Unterschiede

 Unterschiede im Objektmodell von Microsoft Excel
    Allgemeines
    Übersicht der Unterschiede

 Unterschiede im Objektmodell von Microsoft Office
    Allgemeines
    Übersicht der Unterschiede

 Unterschiede im Objektmodell des VBA-Editors
    Allgemeines
    Übersicht der Unterschiede

 Unterschiede im Objektmodell von Microsoft Forms
    Einführung
    Unterschiede bei Benutzerformularen
    Unterschiede bei Steuerelementen

 Unterschiede bei integrierten Konstanten

 Unterschiede bei VBA-Fehlermeldungen

 Wissenswertes über die Kompatibilität von VBA-Projekten
    Einführung
    Projekteigenschaften
    Verweise
    Zusätzliche Steuerelemente
    Empfehlungen

 Änderungen und Erweiterungen in VBA 6.0
    Einführung
    Auswirkung bei Verwendung eines nicht verfügbaren Sprachelementes
    Neue Funktionen
    Geänderte Funktionen
    Weitere Änderungen

 Weitere wichtige Unterschiede

 Spezialthemen

 Abfragen der Ausführungsumgebung
    Betriebssystem herausfinden
    Excelversion herausfinden
    VBA-Editor-Version herausfinden
    VBA-Version herausfinden
    Windowsversion herausfinden
    Version eines anderen Microsoft Office-Programmes herausfinden

 Bedingte Kompilierung
    Einführung

 Compiler-Konstanten und Konstanten für die bedingte Kompilierung
    Einführung
    Compiler-Konstanten
    Konstanten für die bedingte Kompilierung

 Compiler-Konstanten von Microsoft Office
    Compiler-Konstanten von Microsoft Office 97
    Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003
    Compiler-Konstanten von Microsoft Office für Macintosh

 Arbeitsmappen und VBA-Programme plattformunabhängig machen
    Einführung
    Vorbereitung
    Durchzuführende Arbeiten
    Testen
    Tipps für komplexe Arbeitsmappen

 Vorgehens-Checkliste

 Utilities und Hilfsprogramme

 VBA-Codebeispiele für Programmierer

 Tipps und Empfehlungen für Programmierer

 Hintergrundwissen
    Das Microsoft Excel-Dateiformat
    Alles über externe Verknüpfungen
    Die wichtigsten Limitationen in Microsoft Excel

 Links zu weiteren Informationsquellen
    Dokumentationen und Anleitungen
    Bugs und Probleme
    Verschiedene Themen
    Newsgroups

 Anhang
    Begriffserklärungen
    Typografische Dokument-Konventionen
    Stichwortverzeichnis

 Offene Punkte und Pendenzen
    Offene Punkte
    Pendenzen


Vorwort

Auf dieser Seite werde ich Ihnen die Unterschiede zwischen Excel für Windows und Excel für Macintosh vorstellen. Es geht hier weniger um die funktionalen Unterschiede, also beispielsweise ob ein bestimmtes Feature in beiden Excelversionen vorhanden ist. Vielmehr werden diejenigen Unterschiede beschrieben, die zur Inkompatibilität von Arbeitsmappen und VBA-Code führen. Mit anderen Worten: Hier erfahren Sie, was man alles beachten muss, wenn man Arbeitsmappen oder VBA-Programme entwickeln will, die sowohl unter Windows als auch auf Macintosh einwandfrei funktionieren sollen. Das ist nämlich gar nicht so einfach, weil es erstens ziemlich viele Inkompatibilitätsprobleme gibt, und zweitens ganz bestimmte Probleme bereits bei kleinen Arbeitsmappen ohne jeglichen VBA-Code auftreten können.

Des öfteren stellen Excel-Anwender oder Excel-Programmierer in einschlägigen Internet-Newsgroups und -Foren die Frage, ob und inwiefern VBA-Programme, die mit Microsoft Excel für Windows erstellt wurden, mit Microsoft Excel für Macintosh ausgeführt werden können (oder umgekehrt). Diese Frage ist absolut berechtigt, weil es nämlich zwischen VBA von Excel für Windows und VBA von Excel für Macintosh eine ganze Reihe wichtiger Unterschiede gibt. Die meisten davon sind bedingt durch das jeweilige Betriebssystem, insbesondere durch dessen Dateisystem.

Ich sollte noch erwähnen, dass ich selber keinen Mac-Computer und folglich auch kein Microsoft Excel für Macintosh besitze. Dennoch ist mir die Kompatibilitätsproblematik nicht ganz unbekannt, da ich in Unternehmen gearbeitet habe, die gemischte Systemumgebungen einsetzen, also Windows- und Macintosh-Rechner. Gerade in grösseren Unternehmen kann es vorkommen, dass beispielsweise die PR-/Marketing-Abteilung mit Macintosh-Computern arbeitet, der Rest der Firma aber Windows-Arbeitsstationen benutzt.

PDF-Dokument
Diese Dokumentation steht auch als Acrobat PDF-Dokument zur Verfügung. Sie können es auf der Downloadseite kostenlos herunterladen.

download-icon.gif (898 Byte)

Downloadseite

Dokumentationen und Anleitungen

Zum Kapitelanfang Zum Seitenanfang


Einleitung

Inhalt dieser Dokumentation

Diese Dokumentation ist in acht Teile mit jeweils mehreren Kapiteln gegliedert:
Teil 1: Vorwort, Einleitung, Allgemeines und generelle Empfehlungen
Teil 2: Keine Unterschiede
Teil 3: Unterschiede, Inkompatibilitäten und potenzielle Probleme
Teil 4: Arbeitsanleitungen, Checklisten
Teil 5: VBA-Codebeispiele, Tipps, Tricks und Empfehlungen
Teil 6: Spezialthemen und Hintergrundwissen
Teil 7: Tools, Hilfsprogramme und Links
Teil 8: Anhänge

 

26 VBA-Codebeispiele:
VBA-Codebeispiele für Programmierer

10 Tipps und Empfehlungen:
Tipps und Empfehlungen für Programmierer

50 Links zu Webseiten mit weiteren Informationen:
Links zu weiteren Informationsquellen

Zum Seitenanfang


Zweck dieser Dokumentation

- Unterschiede aufzeigen

- Empfehlungen, Tipps und Lösungen anbieten

- VBA-Codebeispiele

- Arbeitsmappen und VBA-Code für beide Plattformen entwickeln, ohne beide Plattformen zu besitzen

- Einheitlicher Programmcode für beide Plattformen (Single Source Code)

Zum Seitenanfang


Zielpublikum

- Microsoft Office/Excel-Anwender und -Entwickler

- Programmierer von Makros, Add-Ins, VBA-Anwendungen

- Support-Mitarbeiter

Zum Seitenanfang


Quellenverzeichnis

Die auf dieser Seite vorgestellten Informationen wurden grösstenteils aus diesen Dokumentationen entnommen:
» Visual Basic-Referenz (VBA 5)
» Visual Basic-Referenz (VBA 6)
» VBA Editor-Referenz (Excel 97)
» VBA Editor-Referenz (Excel 2000)
» Visual Basic Add-In-Modell-Referenz (Office 97)
» Visual Basic Add-In-Modell-Referenz (Office 2000)
» Microsoft Office Visual Basic-Referenz (Office 97)
» Microsoft Forms-Referenz (Office 97)
» Microsoft Forms-Referenz (Office 2000)
» Microsoft Excel Visual Basic-Referenz (Excel 2000)
» Microsoft Excel Visual Basic-Referenz (Excel 2003)
» Microsoft Office Drawing File Format-/Escher Layer-Dokumentation
» Microsoft Excel File Format-Dokumentation von OpenOffice.org (Version 1.37)

Die übrigen in diesem Dokument aufgeführten Informationen stammen aus zuverlässigen Quellen im Internet, unter anderem aus Newsgroups, aus Foren und von 'Excel für Macintosh'-Websites, und zudem auch direkt von Excel für Macintosh-Experten (meist MVPs). Die auf diese Weise zusammengetragenen Informationen wurden von mir geprüft, konsolidiert, überarbeitet und teilweise mit zusätzlichen Beschreibungen ergänzt.

Bitte beachten Sie, dass die von Microsoft verfassten Online-Hilfen und Referenzen von VBA teilweise ziemlich schwerwiegende Fehler enthalten. Auf diese Fehler wird in diesem Dokument eingegangen und die korrekten Informationen vorgestellt.

Zum Seitenanfang


Weitere nützliche Informationsquellen

xlam - Excel and more!
xlam - Excel and more!
www.xlam.ch

The SOSCQ Page
The SOSCQ Page
The SOSCQ Page: VBA-Befehle und -Funktionen
The SOSCQ Page: Excel-Objektmodell
www.xlam.ch/soscq/index.htm

The SOSCQ Page - VBA/VB-Codebeispiele
The SOSCQ Page: Codebeispiele für VBA und VB
www.xlam.ch/vbacode/index.htm

Phil's Office Secrets
Phil's Office Secrets
Phil's Office Secrets: Namenskonventionen, Richtlinien und Empfehlungen
Phil's Office Secrets: Neuerungen und Änderungen in Microsoft Office-Objektmodellen
Phil's Office Secrets: Links zu Updates und Service Packs für Microsoft Office und Excel
www.xlam.ch/pos/index.htm

XLimits
XLimits
XLimits: Excel-Sektion
XLimits: VBA/VB-Sektion
XLimits: Excel-Internas-Sektion
XLimits: Limitationen in Microsoft Excel
XLimits: Limitationen in Excel-VBA und Excel-Objektmodell
www.xlam.ch/xlimits/index.htm

Siehe auch unter Links zu weiteren Informationsquellen und Die wichtigsten Limitationen in Microsoft Excel.

Zum Kapitelanfang Zum Seitenanfang


Allgemeines über Unterschiede und Inkompatibilitäten

Warum ist Kompatibilität wichtig?

- Arbeitsmappe für Benutzer mit Microsoft Excel für Windows und Microsoft Excel für Macintosh bearbeitbar machen.

- Nur eine Arbeitsmappe (bzw. Add-In) für beide Plattformen (Support, Bug-Fixes, Weiterentwicklung etc.).

- Grösserer Markt/mehr potenzielle Kunden.

- Vermeiden von potenziellen Problemen.

Zum Seitenanfang


Gründe für Unterschiede und Inkompatibilitäten

1. Oft entsteht ein Problem wegen einer Unachtsamkeit, beispielsweise wenn ein vom Benutzer eingegebener Dateiname auf ungültige Zeichen überprüft wird.

2. Limitationen in Microsoft Excel

3. Bugs in Microsoft Excel

4. Technische Rahmenbedingungen

Zum Seitenanfang


Wo gibt es Unterschiede?

- Betriebssystem (Dateisystem)

- Office

- Excel (Oberfläche, Features)

- Arbeitsmappen

- VBA

- Office-Objektmodell

- Excel-Objektmodell

- MSForms-Objektmodell (Benutzerformulare, Steuerelemente)

- VBA-Editor-Objektmodell

- Laufzeitfehler

- VBA-Projekt

- Tabellenfunktionen

- Zusatzprogramme

- Dateiformate

 

Windows vs. Macintosh

Excel für Windows vs. Excel für Macintosh

VBA für Windows vs. VBA für Macintosh

VBA von Excel für Windows vs. VBA von Excel für Macintosh

 

Zum Seitenanfang


Auswirkungen von Inkompatibilitäten

Excel für Windows und Excel für Macintosh enthalten das gleiche VBA. Da es keine Implementierungsunterschiede gibt, existiert auch kein Kompatibilitätsproblem zwischen VBA-Code, der mit Excel für Windows geschrieben wurde, und VBA-Code, der mit Excel für Macintosh geschrieben wurde. VBA-Code der einen Plattform lässt sich auf der anderen Plattform kompilieren und ausführen.

Es existieren - etwas allgemein betrachtet - nur fünf Unterschiede, die zur Laufzeit (d.h. während der Codeausführung) zu einem Fehler führen:
- Environ-Funktion (führt auf Macintosh zu einem Laufzeitfehler)
- SendKeys-Funktion (führt auf Macintosh zu einem Laufzeitfehler ?)
- MacID-Funktion (führt unter Windows zu einem Laufzeitfehler)
- MacScript-Funktion (führt unter Windows zu einem Laufzeitfehler)
- CDecl-Schlüsselwort (führt unter Windows zu einem Laufzeitfehler)

Alle anderen Unterschiede werden von VBA bzw. Excel erkannt und behandelt, oder ignoriert oder sie führen zu unterschiedlichen Ergebnissen.

 

Hier drei Beispiele:

1. Unterschied wird erkannt und behandelt
Eine eingebettete Landkarte (MSMap) wird in Microsoft Excel für Windows als bearbeitbares MSMap-Objekt angezeigt. In Microsoft Excel für Macintosh wird sie in Form eines schwarz-weissen Bildes dargestellt, welches nicht bearbeitet werden kann.

2. Unterschied wird ignoriert

3. Unterschied führt zum unterschiedlichem Ergebnis
VBA-Konstante vbNewLine

 

Schwerwiegende Fehler infolge einer Inkompatibilität, wie beispielsweise ein Microsoft Excel-Absturz, sind nicht bekannt.

Zum Kapitelanfang Zum Seitenanfang


Generelle Empfehlungen

Bevor auf die einzelnen Unterschiede zwischen Windows und Macintosh, Excel für Windows und Excel für Macintosh sowie Excel-VBA für Windows und Excel-VBA für Macintosh detailliert eingegangen wird, zuerst ein paar generelle Empfehlungen, die Sie sich unbedingt zu Herzen nehmen sollten. Diese Empfehlungen helfen Ihnen, die Kompatibilitätsproblematik global zu betrachten und Zusammenhänge zu verstehen. Dadurch werden Sie potenzielle Probleme besser und vor allem schneller erkennen und (hoffentlich) vermeiden können.

Hier meine 20 persönlichen Empfehlungen:

 

1) Einfache Dateinamen verwenden

Geben Sie Ihrer Arbeitsmappe einen einfachen Dateinamen. Mit anderen Worten: Verwenden Sie möglichst nur Buchstaben (a-z bzw. A-Z) und Ziffern (0-9). Alle anderen Zeichen wie Interpunktions- und Sonderzeichen sollten Sie unbedingt vermeiden.

Wenn Sie die Arbeitsmappe mit Microsoft Excel für Macintosh speichern, sollten bzw. dürfen Sie die Zeichen
- Anführungszeichen ("),
- Schrägstrich (/),
- Umgekehrter Schrägstrich (\),
- Vertikale Linie (|),
- Kleiner als (<),
- Grösser als (>),
- Fragezeichen (?),
- Stern (*) und
- Eckige Klammer ([ und ])
nicht im Dateiname benutzen, weil diese Zeichen unter Windows bzw. in Microsoft Excel für Windows für Dateinamen verboten sind.

Und auch die Zeichen
- Pound (#),
- Eckige Klammer ([ und ]),
- Ausrufezeichen (!) und
- Apostroph (')
sollten möglichst nicht verwendet werden, da diese von Microsoft Excel für bestimmte Zwecke benutzt werden.

Wenn Sie unbedingt andere Zeichen als Buchstaben und Ziffern verwenden wollen, dann nehmen Sie diese Zeichen:
- Leerzeichen
- Runde Klammer
- Gleichheitszeichen (=)
- Minus-Zeichen/Bindestrich (-)
- Plus-Zeichen (+)
- Unterstrich (_)
- Dollarzeichen ($)
- At-Zeichen (@)
- Komma (,)
- Semikolon (;)

Mehr dazu siehe unter Erlaubte Zeichen in Dateinamen.

2) Arbeitsmappe für beide Plattformen gestalten

Gestalten Sie eine Arbeitsmappe immer so, damit sie sowohl in Microsoft Excel für Windows als auch in Microsoft Excel für Macintosh verwendet werden kann. Dies natürlich unter der Annahme, dass die Arbeitsmappe potenziell auf beiden Plattformen zum Einsatz kommt. Denken Sie daran, dass diese Wahrscheinlichkeit grundsätzlich immer vorhanden ist. Sie ist lediglich mal kleiner und mal grösser.

3) Auf beiden Plattformen testen

Testen Sie Ihre Arbeitsmappe gewissenhaft auf beiden Plattformen (sofern Sie diese Möglichkeit besitzen). Genau so wie sich die Excelversionen für Windows voneinander unterscheiden, gibt es in den Excelversionen für Macintosh ein paar Unterschiede. Wenn die Arbeitsmappe in allen Versionen von Microsoft Excel für Windows fehlerfrei funktioniert, müssen Sie die gleichen Tests auch in allen Excelversionen für Macintosh durchführen.

4) Mögliche Kompatibilitätsprobleme berücksichtigen

Informieren Sie sich über allfällige Kompatibilitätsprobleme, bevor Sie mit der Erstellung der Arbeitsmappe beginnen. Beispielsweise funktionieren eingebettete ActiveX-Steuerelemente auf dem Macintosh grundsätzlich nicht. Wenn Sie also bereits viele Steuerelemente wie Schaltflächen, Optionsschaltflächen, Listenfelder und ähnliches in ein Tabellenblatt eingefügt haben, wird es schwierig, diese Objekte nachträglich durch alternative Steuerelemente zu ersetzen (beispielsweise durch Formular-Steuerelemente, die auf beiden Plattformen einwandfrei funktionieren).

5) Grundsätzliche Plattformunterschiede beachten

Berücksichtigen Sie die grundsätzlichen Unterschiede zwischen Windows und Macintosh. Benutzen Sie in Dokumentationen, Anleitungen, Fehlermeldungen usw. keine Ausdrücke wie unter anderem:
- "Windows" (das Betriebssystem von Macintosh heisst "Mac OS")
- "Explorer" (auf Macintosh gibt es keinen Windows Explorer)
- "Registry Editor" (es gibt keine Registry auf dem Macintosh)
- "WinZIP" (das favorisierte Komprimierungsprogramm auf Macintosh heisst "StuffIt")
- "F1" (die Hilfe wird bei einem Mac mit der HILFE-Taste aufgerufen)
- "Pentium PC" (bei Mac heisst ein Rechner je nach Modell Power Mac G3, G4, G4 Cube, G5, iMac, PowerBook G3, G4, iBook, eMac usw.)

6) Natives VBA verwenden

Wenn Sie der Arbeitsmappe VBA-Code hinzufügen, schreiben Sie den Programmcode wenn immer möglich mit 'reinem' VBA (man könnte auch 'native' VBA sagen). Benutzen Sie nur die Objekte, Methoden, Eigenschaften etc. aus der Excel-Objektbibliothek und - falls notwendig - aus der Office-Bibliothek. Verwenden Sie keine zusätzlichen Objekte wie das "File System Object", den "Windows Scipt Host", die "DS OLE Document Properties Object Library" oder dergleichen, weil all diese Bibliotheken explizit für Windows entwickelt wurden und folgedessen auf Macintosh nicht zur Verfügung stehen.

7) Automation vermeiden

Verwenden Sie im Programmcode möglichst keine Automation. Und wenn doch, dann höchstens mit anderen Microsoft Office-Programmen. Benutzen Sie in diesem Fall unbedingt das so genannte Late Binding-Verfahren. Bei Verwendung von Early Binding muss im VBA-Projekt ein Verweis auf die Objektbibliothek der anderen Anwendung gesetzt werden, was beim Plattformwechsel zu einem Problem führen könnte.

Mehr dazu siehe unter Automatisierung.

8) Projektverweise entfernen

Entfernen Sie vor der Veröffentlichung Ihres VBA-Programmes alle nicht benötigten Verweise im VBA-Projekt (Dialogfenster "Verweise" des VBA-Editors). Dadurch reduzieren Sie die Gefahr, dass Verweise auf windowsspezifische Objekt- und Klassen-Bibliotheken (*.olb, *.tlb, *.dll), ActiveX-Steuerelemente (*.ocx) und andere Systemdateien auf dem Macintosh zu einem Problem führen.

9) Unterschiede zwischen VBA 5 und VBA 6 berücksichtigen

Beachten Sie, dass es nicht nur zwischen VBA von Excel für Windows und VBA von Excel für Macintosh Unterschiede gibt, sondern auch zwischen den einzelnen Versionen von Excel für Windows beziehungsweise Excel für Macintosh, also zum Beispiel zwischen VBA von Excel 97 und VBA von Excel 2000, oder zwischen VBA von Excel 2001 und Excel 2004. Unter anderem gibt es in VBA 5 keine Replace-, Join- und Split-Funktion. Diese wurden erst mit VBA Version 6 eingeführt, d.h. in Excel 2000 für Windows beziehungsweise Excel 2004 für Macintosh.

Mehr dazu siehe unter Änderungen und Erweiterungen in VBA 6.0.

10) Externe Funktionen und Prozeduren vermeiden

Vermeiden Sie in VBA-Programmen die Verwendung von externen Funktionen und Prozeduren, auch als so genannte API-Funktionen bekannt. Unter Windows befinden sich derartige Funktionen/Prozeduren in DLL-Dateien (Dynamic Link Library), unter Macintosh dagegen in so genannten Code Ressourcen. Auch wenn eine bestimmte Funktion sowohl in einer DLL als auch in einer Code Ressource vorhanden ist, sollten Sie von ihrer Verwendung absehen.

11) Standard-Steuerelemente "Microsoft Forms" benutzen

Benutzen Sie auf Benutzerformularen ausschliesslich die Standard-Steuerelemente MSForms (Microsoft Forms Object Library). Binden Sie keine zusätzlichen ActiveX-Steuerelemente ein, wie beispielsweise das RefEdit-, Calendar- und DateTime Picker-Control, oder "exotische" Steuerelemente wie das Animated GIF-Control. Solche Steuerelemente sind so genannte ActiveX-Controls. Diese können nur unter Windows verwendet werden. Auf dem Macintosh stehen sie nicht zur Verfügung.

Mehr dazu siehe unter ActiveX-Controls und Steuerelemente.

12) VBA-Projekt nicht schützen

Wenn Sie nicht 100-prozentig sicher sind, dass das VBA-Programm in jeder Situation fehlerfrei funktioniert, sollten Sie das VBA-Projekt nicht mit einem Kennwort schützen. Sollte beispielsweise ein Dateipfad im Programmcode falsch sein, weil zum Beispiel irrtümlich die Schreibweise von Windows- anstatt diejenige von Macintosh-Pfaden benutzt wurde, so tritt beim Kompilieren des VBA-Codes noch kein Fehler auf. Der Code scheint folglich korrekt zu funktionieren, was jedoch nicht stimmt. Wenn später auf dem Macintosh - wegen dem falschen Pfad - ein Laufzeitfehler auftritt, so kann der Excel-Anwender den Fehler (ausnahmsweise) selber beheben. Bei einem geschützten VBA-Projekt ist das nicht möglich.

Mehr dazu siehe unter Wissenswertes über die Kompatibilität von VBA-Projekten: Empfehlungen.

13) Hardcodierte Informationen vermeiden

Statische, fest im Code einprogrammierte Informationen sind absolut tabu. Das gilt insbesondere für Datei- und Verzeichnispfade. Legen Sie besser eine Information, die je nach Plattform unterschiedlich ist beziehungsweise unterschiedlich sein kann, beispielsweise in einer Zelle in einem separaten Tabellenblatt ab. Zum Beispiel kann der Pfad "C:\Daten" in der Zelle A1 statt direkt im Programmcode stehen. Wann immer Sie den Pfad im Programm benötigen, können Sie ihn aus der Zelle holen. Sie können auch eine Textdatei verwenden, die beim Programmstart bzw. beim Öffnen der Arbeitsmappe eingelesen wird. Man kann die Daten auch in Form von Konstanten im VBA-Code ablegen, wobei diese Lösung nicht optimal ist, weil die Daten statisch definiert sind. Legen Sie die Informationen auf jeden Fall nicht in der Windows Registry ab, da es auf Macintosh keine Registry gibt.

Mehr dazu siehe unter Registrierungsdatenbank.

14) Arbeitsmappe rechnerunabhängig gestalten

Gestalten Sie Ihre Arbeitsmappe beziehungsweise Ihr VBA-Programm nicht nur plattformunabhängig, sondern ganz grundsätzlich rechnerunabhängig (Hardware, Betriebssystemversion, Bildschirmauflösung, Drucker, Laufwerke, Verzeichnisse, Excelversion usw.). Mit anderen Worten: Berücksichtigen Sie nicht nur die Unterschiede zwischen Excel für Windows und Excel für Macintosh beziehungsweise Windows und Macintosh. Beachten Sie auch die Unterschiede in Bezug auf Hardware (CPU-Geschwindigkeit, RAM etc.), Drucker/Druckertreiber, Dateisystem, Verzeichnisstruktur und dergleichen.

15) Pfadschreibweise beachten

Beachten Sie, dass unter anderem Pfade, Dateinamen und Verzeichnisnamen, die beispielsweise als Vorgabe-Einstellungen in eine Zelle eingetragen werden, je nach Plattform unterschiedlich heissen müssen. Ein Beispiel:

Der Excel für Windows-Benutzer kann wählen, in welches Verzeichnis die Exportdatei gespeichert werden soll. Der gewählte Verzeichnisname wird in eine Zelle eingetragen, damit er beim nächsten Öffnen der Mappe wieder vorhanden und beim Export vorgeblendet werden kann. Wenn nun die Mappe mit Excel für Macintosh geöffnet wird und ein Export durchgeführt werden soll, so besitzt der in der Zelle stehende Verzeichnisname die Syntax von Windows-Verzeichnisnamen. Der Name besitzt also die Syntax "<Laufwerk>:\<Verzeichnis>\<Unterverzeichnis>". Auf dem Macintosh dagegen müsste der Name die Syntax "<Festplatte>:<Verzeichnis>:<Unterverzeichnis>" besitzen. Es kommt somit zu einem Fehler.

16) Relative Pfade verwenden

Relative Pfade sind besser geeignet als absolute Pfade. Vor allem wenn die verwiesene Datei im gleichen Verzeichnis liegt wie die aktuelle Datei, wird lediglich der Dateiname angegeben - und nicht der gesamte Dateipfad. Der Vorteil ist dabei, dass keine Probleme infolge unterschiedlicher Pfadschreibweise auftreten können (vergleiche auch den vorangegangenen Punkt 15 "Pfadschreibweise beachten").

17) Defensiv programmieren

Benutzen Sie beim Schreiben Ihres VBA-Codes den defensiven Programmierstil. Das bedeutet vereinfacht ausgedrückt, dass der Programmcode so geschrieben wird, damit Laufzeitfehler gar nicht erst entstehen können. Wenn Sie beispielsweise mit VBA eine Arbeitsmappe öffnen (das wird gewöhnlich mit Workbooks.Open durchgeführt), ist es zwar korrekt, aber trotzdem unschön, wenn das Fehlschlagen der Open-Methode infolge nicht vorhandener Datei in einer Fehlerbehandlungsroutine abgefangen wird. Bedeutend besser und sicherer ist es, zuerst anhand der Dir-Funktion zu überprüfen, ob die zu öffnende Datei überhaupt existiert.

18) Fehlerbehandlungsroutinen einsetzen

In sämtlichen Sub- und Function-Prozeduren sollten Laufzeitfehler konsequent abgefangen und ausgewertet werden. Testen Sie nebst den unter Windows üblich auftretenden Fehlercodes auch sonstige Fehlercodes (d.h. Case Else bzw. Else). Der Grund ist, wil auf dem Macintosh manchmal andere Fehlermeldungen auftreten können als unter Windows.

Hier ein Beispiel: Bekanntlich besitzt die Fehlermeldung "Anwendungs- oder objektdefinierter Fehler" den Fehlercode 1004. Das kann man u.a. überprüfen, indem man im Direktfenster des VBA-Editors "?Error(1004)" oder "Error 1004" eingibt und ausführt. Auf dem Macintosh muss dies jedoch nicht der Fall sein, weil die gleiche Fehlermeldung einen anderen Fehlercode besitzen kann, nämlich die Nummer 32809. Wenn man beispielsweise die Anweisung "MsgBox Sheets(1).Name" ausführt (und es existiert eine aktive Arbeitsmappe mit einem oder mehreren Blättern), so tritt der Laufzeitfehler 32809 "Anwendungs- oder objektdefinierter Fehler" auf, falls sich auf dem ersten Arbeitsblatt ein ActiveX-Control befindet. In der Fehlerbehandlungsroutine der Prozedur sollte man folglich nicht nur den Fehlercode 1004 sondern auch den Code 32809 abfangen und behandeln.

Siehe auch unter Unterschiede bei VBA-Fehlermeldungen.

19) Unterschiedliche Ausführungsgeschwindigkeit beachten

Beachten Sie, dass Microsoft Excel für Macintosh erfahrungsgemäss geringfügig langsamer ist als Excel für Windows (aus was für Gründen auch immer das so ist). Wenn Ihr Programmcode unter Windows schon mehrere Minuten für seine Ausführung benötigt, so wird er auf dem Macintosh vermutlich noch einiges länger brauchen. Schreiben Sie daher den Programmcode möglichst optimiert, damit er auch auf nicht ganz so schnellen Rechnern zügig ausgeführt wird.

20) Einheitliches Datumswertesystem verwenden

Microsoft Excel 97 unterstützt zwei Datumswertesysteme, nämlich das 1900- und das 1904-Datumswertesystem. Für Arbeitsmappen wird je nach Plattform ein anderes Standard-Datumswertesystem verwendet: In Microsoft Excel für Windows das 1900-Datumswertesystem und in Microsoft Excel für Macintosh das 1904-Datumswertesystem.

Siehe auch unter 1900- und 1904-Datumssystem von Microsoft Excel.

Zum Kapitelanfang Zum Seitenanfang


Keine Unterschiede

Bevor auf die Unterschiede zwischen Windows und Macintosh beziehungsweise Excel für Windows und Excel für Macintosh eingegangen wird, hier kurz ein paar Dinge, die auf den beiden Plattformen gleich sind. Sie führen somit nicht zur Inkompatibilität von Arbeitsmappen.

To Top


Arbeitsmappen-Dateiformat
Microsoft Excel für Windows wie auch Microsoft Excel für Macintosh benutzt für seine Dateien das Dateiformat namens BIFF. Seit Excel 97 für Windows beziehungsweise Excel 98 für Macintosh wird das Format mit der Bezeichnung BIFF8 verwendet. Man kann also eine Arbeitsmappe auf beiden Plattformen benutzen, ohne zuerst die Arbeitsmappendatei (Dateinamenerweiterung "xls") konvertieren zu müssen.

Eine ausführliche Dokumentation des Excel-Dateiformates BIFF finden Sie hier:

Weitere Informationen

The SOSCQ Page: Excel-Dateiformat BIFF

To Top


Formular-Steuerelemente
Die Excel-Symbolleiste "Formular" stellt Steuerelemente zur Verfügung, die in ein Arbeitsblatt eingefügt werden können. Diese Formular-Steuerelemente können ohne Einschränkung sowohl in Excel für Windows als auch in Excel für Macintosh benutzt werden. Beachten Sie bitte, dass die Steuerelemente der Symbolleiste "Steuerelement-Toolbox" nur in Excel für Windows verwendet werden können.

To Top


OLE - Object Linking and Embedding
Die Object Linking and Embedding-Technologie (auf deutsch "Objekte verknüpfen und einbetten") funktioniert sowohl in Microsoft Office für Windows als auch in Microsoft Office für Macintosh. Es ist somit möglich, beispielsweise ein Microsoft Word-Dokument als Objekt in ein Tabellenblatt einer Excel-Arbeitsmappe einzufügen. Das Objekt wird gewöhnlich OLE-Objekt genannt, damit es von anderen einfügbaren Objekten wie zum Beispiel Zeichnungselementen, AutoFormen, Grafiken/Bildern usw. unterscheidbar ist.

In Microsoft Excel (und den meisten anderen Microsoft Office-Programmen) stehen drei Varianten zur Auswahl:
1. Einbetten eines neuen Objektes
2. Einbetten eines von einer Datei erstellten Objektes
3. Verknüpfen eines von einer Datei erstellten Objektes

Bei jeder Variante kann das Objekt zudem auch als Symbol in das Dokument eingefügt werden.

Zwecks besserer Verständlichkeit werden die drei Varianten anhand des zuständigen Dialogfensters "Objekt" nachfolgend kurz vorgestellt.

 

 

Einbetten eines neuen Objektes

Ein neues Objekt wird eingebettet, indem Sie den "Objekt"-Dialog öffnen (Menübefehl Einfügen/Objekt), auf der Registerseite "Neu erstellen" den gewünschten Objekttyp in der Liste der verfügbaren Objekttypen auswählen und dann auf OK klicken.

Neues Objekt erstellen und einbetten
Abbildung: Neues Word-Dokument-Objekt erstellen und einbetten

 

Einbetten eines von einer Datei erstellten Objektes

Ein von einer Datei erstelltes Objekt wird eingebettet, indem Sie den "Objekt"-Dialog öffnen (Menübefehl Einfügen/Objekt), auf der Registerseite "Von Datei erstellen" den Dateinamen einer existierenden Datei eintragen und dann auf OK klicken.

Objekt von Datei erstellen und einbetten
Abbildung: Objekt von einer Word-Dokument-Datei erstellen und einbetten

 

Verknüpfen eines von einer Datei erstellten Objektes

Ein von einer Datei erstelltes Objekt wird verknüpft, indem Sie den "Objekt"-Dialog öffnen (Menübefehl Einfügen/Objekt), auf der Registerseite "Von Datei erstellen" den Dateinamen einer existierenden Datei eintragen, die Option "Verknüpfen" aktivieren und dann auf OK klicken. Das Objekt erhält in diesem Fall eine Verknüpfung mit der Quelldatei. Die Verknüpfung wird dadurch im Dialogfenster "Verknüpfungen" (Menübefehl Bearbeiten/Verknüpfungen) angezeigt.

Objekt von Datei erstellen und verknüpfen
Abbildung: Objekt von einer Word-Dokument-Datei erstellen und verknüpfen

 

Bitte beachten: Über den "Objekt"-Dialog (Registerseite "Neu erstellen") lassen sich auch Steuerelemente einfügen, beispielsweise das 'Kalender-Steuerelement'. Derartige Steuerelemente werden als so genannte ActiveX-Controls bezeichnet. Diese Möglichkeit existiert (bzw. funktioniert) jedoch nur in Microsoft Excel für Windows. Auf Macintosh können ActiveX-Controls nicht verwendet werden.

To Top


DDE-Verknüpfungen
Text...

Dynamic Data Exchange (DDE; Dynamischer Datenaustausch) ist ein gängiges Protokoll für den Datenaustausch zwischen Windows-basierten Programmen.

Verknüpfungen-Dialog
Abbildung: Verknüpfungen-Dialog mit DDE-Verknüpfung

To Top


Datenbankabfragen, Web-Queries und externe Datenbereiche
Microsoft Excel unterstützt die Einbindung von externen Daten. Sowohl in Excel für Windows als auch in Excel für Macintosh können dazu Datenbank- und Web-Abfragen benutzt werden. Auch Pivot-Tabellen, die Daten aus einer anderen Arbeitsmappe (so genannte "MS Excel-Datenbank/-Liste") oder einer externen Datenquelle (Datenbank, Textdatei oder dergleichen) beziehen, können eingesetzt werden.

Immer wenn externe Daten dargestellt werden, egal ob durch eine Datenbankabfrage, eine Web-Abfrage oder eine Pivot-Tabelle, spricht man von einem so genannten externen Datenbereich. Solche externen Datenbereiche funktionieren wie gesagt auf beiden Plattformen. Beim Bearbeiten einer unter Windows erstellten Arbeitsmappe in Excel für Macintosh muss man jedoch beachten, dass die Wahrscheinlichkeit hoch ist, dass Datenquelle, Verbindungsinformation und SQL-String nicht mehr stimmen, weil diese drei Merkmale plattformspezifische Inhalte besitzen. Das Gleiche gilt auch für Macintosh-Arbeitsmappen, die mit Excel für Windows bearbeitet werden.

Beispiele:

Wenn eine Pivot-Tabelle Daten aus einer anderen Arbeitsmappe ("MS Excel-Datenbank/-Liste") darstellt, enthält die Eigenschaft SourceData einen externen Bezug.

 

Bei Quelle "Excel":
MsgBox ActiveSheet.PivotTables(1).PivotCache.SourceData

MsgBox ActiveSheet.PivotTables(1).SourceData

[PivoTest.xls]Daten!Z5S1:Z26S5

'\Daten\[Pivot-Test 2.xls]Tabelle2'!Z1S1:Z7S3

Bei Quelle "Datenbank":
MsgBox ActiveSheet.PivotTables(1).PivotCache.Connection

ODBC;DefaultDir=C:\NeueDaten\SOSCQ;Driver={Microsoft Text-Treiber (*.txt; *.csv)};DriverId=27;Extensions=asc,csv,tab,txt;FIL=text;MaxBufferSize=2048;MaxScanRows=25;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;

MsgBox ActiveSheet.PivotTables(1).PivotCache.SQL

SELECT `Komma getrennte Datei2`.Name, `Komma getrennte Datei2`.Vorname, `Komma getrennte Datei2`.Anzahl FROM `Komma getrennte Datei2.csv` `Komma getrennte Datei2` ORDER BY `Komma getrennte Datei2`.Name

 

Beispiel von Connection einer Datenbank-Abfrage:
ODBC;DBQ=C:\Daten;DefaultDir=C:\Daten;Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;Extensions=None,asc,csv,dat,log,tab,txt;FIL=text;MaxBufferSize=2048;MaxScanRows=25;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;

Beispiel von SQL einer Datenbank-Abfrage:
SELECT Textdatei1.Name, Textdatei2.Vorname_Nachname FROM Textdatei1.txt Textdatei1, Textdatei2.txt Textdatei2 WHERE Textdatei1.Name = Textdatei2.Vorname_Nachname

Beispiel von Connection einer Web-Abfrage:
URL;http://webservices.pcquote.com/cgi-bin/exceldow.exe?

 

PivotTables

QueryTables

SourceData

Connection

SQL

 

Pivot-Tabellen-Assistent
Abbildung: Pivot-Tabellen-Assistent

 

To Top


Microsoft Query
Das Utility Microsoft Query existiert auch auf den Macintosh. Microsoft Query X for Mac verwendet ODBC (Open Database Connectivity), damit Sie Daten aus Datenbanken in Microsoft Excel X importieren können. Sie können Microsoft Query X zum Erstellen von neuen Abfragen und zum Aktualisieren von bestehenden Abfragen einsetzen, die mit einer anderen Version von Microsoft Excel, beispielsweise mit Excel 98 für Macintosh, Excel 2001 für Macintosh oder Excel für Windows erstellt wurden.

Weitere Informationen erhalten Sie hier:
http://www.microsoft.com/downloads/details.aspx?FamilyID=e8c2ab08-46e0-4536-bed5-97a997e2436e&displaylang=en

ODBC integration in Microsoft Excel v. X
Do you have an external data range query that you created in another version of Excel that you would like to refresh in Excel X? If so, we have good news for you. Excel X, version 10.1.0, reintroduces Open Database Connectivity (ODBC) integration with Excel. Excel X, version 10.1.0, is included in the latest Office update.

After you install the latest version of Excel X, Microsoft Query X for Mac, and the appropriate ODBC drivers, you can use Query X for Mac to create new queries or refresh existing queries that were created in other versions of Excel, such as Excel 98, Excel 2001, and Excel for Windows.

Informationen zum neuesten Office-Update erhalten Sie hier:
www.microsoft.com/mac/resources/resources.aspx?pid=resourcekits&rk=officex&article=/mac/download/misc/make_office_current.xml

Using Microsoft Office v. X
Weitere Informationen über den Einsatz von ODBC finden Sie hier:
http://www.microsoft.com/mac/otherproducts/officex/using.aspx?pid=usingofficex&type=howto&article=/mac/LIBRARY/feature_articles/officex/xl_ODBC.xml

To Top


Microsoft Formeleditor
Der Microsoft Formeleditor (Microsoft Equation) steht sowohl in Microsoft Office für Windows als auch in Microsoft Office für Macintosh zur Verfügung. Sie können daher beispielsweise in Microsoft Excel für Macintosh ein Formelobjekt in ein Tabellenblatt einer Excel-Arbeitsmappe einfügen und anschliessend die Arbeitsmappe mit Excel für Windows öffnen, ohne dass dabei das Formelobjekt verloren geht.

Zum Kapitelanfang Zum Seitenanfang


Zusatzprogramme und Komponenten von Microsoft Office

Microsoft Office umfasst als Software-Paket mehrere Programme (z.B. Excel, Word und PowerPoint) und Programmkomponenten (zum Beispiel Microsoft Formel-Editor und Microsoft Organisationsdiagramm). Diese können zum Erstellen von Objekten benutzt werden, die man in ein Office-Dokument, beispielsweise in eine Arbeitsmappe einfügen kann. Ein derartiges Objekt wird als OLE-Objekt bezeichnet, weil es die OLE-Technologie verwendet (OLE = Object Linking and Embedding) und in einem Dokument eingebettet bzw. verknüpft ist.

 

Die Zusatzprogramme sind auf einem Windows-Rechner gewöhnlich im Unterordner "Microsoft Shared" des "Programme\Gemeinsame Dateien"-Verzeichnisses abgelegt. Jedes Programm besitzt dabei einen eigenen Ordner:

Programm Ordner
Microsoft Formel-Editor (Equation) Equation
Microsoft Map Datamap
Microsoft Graph MSGraph
Microsoft Organisationsdiagramm Orgchart
Microsoft Clip Gallery Artgalry
Microsoft Word Art Wordart
Microsoft Query MSQuery

 

Die Objekte werden in Microsoft Excel über den Objekt-Dialog erstellt und in ein Arbeitsblatt eingefügt (Menü Einfügen/Objekt):

Liste der Objekttypen im Objekt-Dialog von Microsoft Excel
Abbildung: Liste der verfügbaren Objekttypen im Objekt-Dialog von Microsoft Excel

 

Zum Einfügen von ClipArt- und Organigramm-Objekten stehen separate Menübefehle bereit. Diese befinden sich im Untermenü Grafik:

Einfügen-Menü von Excel
Abbildung: Einfügen-Menü von Excel (Ausschnitt)

 

 

 

Hier eine Aufstellung der wichtigsten Programme, die OLE-Objekte erzeugen können (Liste nicht abschliessend):

Programm Objekt Objekt-Typ Verbindung/Bemerkung Verfügbarkeit
Microsoft Formel-Editor (Equation) Formel Eingebettet =EINBETTEN("Equation";"") Windows: Ja, Macintosh: Ja
Microsoft Map Landkarte (Map) Eingebettet =EINBETTEN("MSMap";"") Windows: Ja, Macintosh: Nein
Microsoft Graph Diagramm Eingebettet =EINBETTEN("MSGraph.Chart";"") Windows: Ja, Macintosh: Ja (1)
Microsoft Organisationsdiagramm Organigramm (Org Chart) Eingebettet =EINBETTEN("OrgChart";"") Windows: Ja, Macintosh: ? (2)
Microsoft Clip Gallery Clip/ClipArt Eingebettet =EINBETTEN("MS_ClipArt_Gallery";"") Windows: Ja, Macintosh: Ja (3)
Microsoft Word Art WordArt Eingebettet =EINBETTEN("MSWordArt";"") Windows: Ja, Macintosh: Ja
Microsoft Word Word-Dokument Eingebettet =EINBETTEN("Word.Document";"") Windows: Ja, Macintosh: Ja
Microsoft Word Word-Dokument Verknüpft =Word.Document.8|'<Datei>'!'''' Windows: Ja, Macintosh: Ja
Microsoft Word Word-Grafik (4) Eingebettet =EINBETTEN("Word.Picture";"") Windows: Ja, Macintosh: Ja
Microsoft PowerPoint PowerPoint-Präsentation Eingebettet =EINBETTEN("PowerPoint.Show";"") Windows: Ja, Macintosh: Ja
Microsoft PowerPoint PowerPoint-Präsentation Verknüpft =PowerPoint.Show.8|'<Datei>'!'''' Windows: Ja, Macintosh: Ja
Microsoft PowerPoint PowerPoint-Folie (5) Eingebettet =EINBETTEN("PowerPoint.Slide";"") Windows: Ja, Macintosh: Ja
Microsoft Query Datenbank- oder Web-Abfrage Externer Datenbereich (via ODBC) Windows: Ja, Macintosh: Ja

Anmerkungen:
1) Auf Macintosh vermutlich verfügbar.
2) Nicht bekannt, ob auf Macintosh verfügbar.
3) Auf Macintosh vermutlich verfügbar.
4) Eine Word-Grafik kann nur eingebettet, jedoch nicht verknüpft werden.
5) Eine PowerPoint-Folie kann nur eingebettet, jedoch nicht verknüpft werden.

 

 

Zum Seitenanfang


Objekte, die eingebettet werden können

» Microsoft Formel-Editor (Microsoft Equation)

Formel

=EINBETTEN("Equation.2";"")

» Microsoft Map

Landkarte

=EINBETTEN("MSMap.8";"")

» Microsoft Graph

Diagramm

=EINBETTEN("MSGraph.Chart.8";"")

» Microsoft Organisationsdiagramm (Microsoft Organization Chart)

Organigramm

=EINBETTEN("OrgChart";"")

» Microsoft ClipArt (Microsoft Clip Gallery)

ClipArt

=EINBETTEN("MS_ClipArt_Gallery";"")

» Microsoft WordArt

WordArt

=EINBETTEN("MSWordArt.2";"")

Zum Seitenanfang


Objekte, die eingefügt werden können

» Microsoft WordArt

WordArt

» Formular-Steuerelement

Formular-Steuerelement

» Steuerelement-Toolbox

Microsoft Forms-Steuerelement

» ActiveX-Control

Weiteres Steuerelement

» AutoForm

AutoForm-Objekt

» Zeichnungselement

Zeichnungsobjekt

» Textfeld

Textfeld-Objekt

Zum Seitenanfang


Andere Objekte

» Microsoft Query

Datenbank-Abfrage

 

Zum Kapitelanfang Zum Seitenanfang


Grundsätzliche Unterschiede

Es existieren mehrere grundsätzliche Unterschiede zwischen Windows und Macintosh, die meistens technisch durch das jeweilige Betriebssystem beziehungsweise Dateisystem bedingt sind.

Zwecks besserer Übersichtlichkeit sind die Unterschiede in vier Gruppen eingeteilt:
 Unterschiede zwischen Windows und Macintosh
 Unterschiede zwischen Excel für Windows und Excel für Macintosh
 Unterschiede zwischen VBA für Windows und VBA für Macintosh
 Sonstige Unterschiede

Zum Seitenanfang


Unterschiede zwischen Windows und Macintosh

Nachfolgend ein paar wichtige Unterschiede zwischen den beiden Plattformen:
- Laufwerksnamen
- Dateipfade
- Erlaubte Zeichen in Dateinamen
- Relative Verzeichnispfade
- Registrierungsdatenbank (Registry) / Initialisierungsdatei einer Anwendung
- System-Bibliotheken / Code Ressourcen
- Grafik-Dateiformate
- ActiveX-Controls
- Sonderzeichen
- Schriftarten

To Top


Laufwerksnamen
Auf einem Macintosh-Computer besitzt die Festplatte die Bezeichnung "HD" (HD steht für "HardDisk"). Unter Windows wird ein einzelner Buchstabe als Laufwerksbezeichnung verwendet, in der Regel "A" und "B" für Diskettenlaufwerke, und "C" bis "Z" für lokale oder verbundene Server-Laufwerke, CD ROM-/DVD-Laufwerke, Wechselplatten, RAM-Disks, Speicherkarten (z.B. USB Memory Sticks) und dergleichen. Wenn der Benutzer beispielsweise eine Datei auf dem Root einer Festplatte speichern möchte, so muss er unter Windows mindestens zwei Zeichen eingeben (z.B. "C:"), auf einem Macintosh dagegen mindestens drei Zeichen (z.B. "HD:").

Beispiel
Wenn beispielsweise die OK-Schaltfläche auf einem Benutzerformular erst dann zugelassen werden soll, wenn der Benutzer eine genügend lange Laufwerksbezeichnung in ein Textfeld eingegeben hat, so muss man im Code die aktuell verwendete Plattform berücksichtigen.

TODO

Private Sub txtDriveLetter_Change()
  If Application.OperatingSystem Like "*Windows*" Then

    'Windows
    If Len(txtDriveLetter.Text) > 1 Then
      cmdOK.Enabled = True
    Else
      cmdOK.Enabled = False
    End If

  Else
    'Macintosh
    If Len(txtDriveLetter.Text) > 2 Then
      cmdOK.Enabled = True
    Else
      cmdOK.Enabled = False
    End If

  End If
End Sub

Informationen über das Abfragen des Betriebssystems finden Sie unter Betriebssystem herausfinden.

To Top


Dateipfade
In Dateipfaden wird je nach Plattform ein anderes Zeichen zum Unterteilen der einzelnen Pfadbestandteile verwendet.

Plattform Merkmal
Windows Die Bestandteile eines Pfades werden durch umgekehrte Rückstriche (\) getrennt.

Beispiel: C:\Dateien\Excel\EineMappe.xls

Macintosh Die Bestandteile eines Pfades werden durch Doppelpunkte (:) getrennt.

Beispiel: HD:Dateien:Excel:EineMappe

Wenn Sie beispielsweise in einem Eingabefeld dem Benutzer einen Pfad vorblenden oder den Dateinamen aus einem Dateipfad extrahieren möchten, so müssen Sie das je nach Plattform korrekte Pfadtrennzeichen benutzen. Bei Microsoft Excel können das zu verwendende Trennzeichen anhand der PathSeparator-Eigenschaft herausfinden (siehe auch unter PathSeparator-Eigenschaft).

Tipp: Dateipfad in Dateiname und Pfadname aufteilen ohne das Pfadtrennzeichen zu kennen
Man kann den Dateinamen aus einem Dateipfad ermitteln, ohne das Pfadtrennzeichen zu kennen. Diese Lösung ist vor allem dann nützlich, wenn der VBA-Code nicht ausschliesslich in Microsoft Excel ausgeführt werden soll. In Microsoft Word existiert die PathSeparator-Eigenschaft ebenfalls. In Microsoft PowerPoint dagegen nicht; und zwar weder in Version 98, 2000, 2002 noch in Version 2003.

Mit Dir kann Pfadname und Dateiname aus einem Dateipfad ermittelt werden. Der folgende Programmcode funktioniert auf beiden Plattformen:

Sub SplitPathAndFile()
  Dim strFull As String
  strFull = Application.GetOpenFilename
  MsgBox "Pfad und Datei: " & strFull
  MsgBox "Datei: " & Dir(strFull)
  MsgBox "Pfad: " & Left(strFull, Len(strFull) - Len(Dir(strFull)) - 1)
End Sub

Siehe auch Codebeispiel 2 "Plattformunabhängiges Pfadtrennzeichen bei Bedarf anfügen".

To Top


Erlaubte Zeichen in Dateinamen
Nicht zu unterschätzen sind die Richtlinien für Dateinamen, insbesondere die erlaubten beziehungsweise verbotenen Zeichen in Dateinamen.

Je nach Plattform sind bestimmte Zeichen in Dateinamen verboten. Sie müssen dies beim (erstmaligen) Speichern einer Arbeitsmappe unbedingt berücksichtigen.

Plattform Merkmal
Windows Anführungszeichen ("), Schrägstrich (/), umgekehrter Schrägstrich (\), Doppelpunkt (:), vertikale Linie (|), Kleiner als (<) und Grösser als (>).
Zudem können auch das Fragezeichen (?) und der Stern (*) nicht verwendet werden, da diese Zeichen in Windows als Platzhalter dienen.
Macintosh Doppelpunkt (:)

Auf dem Macintosh ist im Dateiname lediglich der Doppelpunkt nicht erlaubt.

Zusammenfassung
Wenn Sie die Arbeitsmappe mit Microsoft Excel für Macintosh speichern, sollten bzw. dürfen Sie die Zeichen
- Anführungszeichen ("),
- Schrägstrich (/),
- Umgekehrter Schrägstrich (\),
- Vertikale Linie (|),
- Kleiner als (<),
- Grösser als (>),
- Fragezeichen (?) und
- Stern (*)
nicht im Dateiname benutzen, weil unter Windows diese Zeichen für Dateinamen verboten sind.

Die eckige Klammer ([ und ]) ist zwar unter Windows erlaubt, aber in Microsoft Excel für Windows verboten (vergleiche Fehlermeldung-Abbildung weiter unten).

Diese Zeichen sind ebenfalls zu vermeiden:
- Pound (#), weil dieses Zeichen Probleme hervorruft, wenn es in Hyperlinks verwendet wird.
- Ausrufezeichen (!), weil dieses Zeichen in Verknüpfungsinformationen verwendet wird.
- Apostroph ('), weil dieses Zeichen zu Problemen bei externen Bezügen führen kann.

Wenn Sie unbedingt andere Zeichen als Buchstaben und Ziffern verwenden wollen, dann nehmen Sie diese Zeichen:
- Leerzeichen
- Runde Klammer
- Gleichheitszeichen (=)
- Minus-Zeichen/Bindestrich (-)
- Plus-Zeichen (+)
- Unterstrich (_)
- Dollarzeichen ($)
- At-Zeichen (@)
- Komma (,)
- Semikolon (;)

Diese Fehlermeldung tritt in Microsoft Excel für Windows auf, wenn ein Dateiname beispielsweise ein nicht erlaubtes Zeichen enthält:

Nicht erlaubte Zeichen in Dateinamen (Excel für Windows)
Abbildung: Nicht erlaubte Zeichen in Dateinamen (Microsoft Excel)

Diese Fehlermeldung erscheint im Windows Explorer, wenn eine Datei umbenannt und dabei ein nicht erlaubtes Zeichen verwendet wird:

Nicht erlaubte Zeichen in Dateinamen (Windows)
Abbildung: Nicht erlaubte Zeichen in Dateinamen (Windows)

Beispiel
Da unter Windows/Macintosh beziehungsweise in Microsoft Excel für Windows/Macintosh nicht die gleichen Zeichen erlaubt respektive verboten sind, muss man diese Unterschiede auch im VBA-Programmcode berücksichtigen. Beispielsweise in der Validierungsroutine, die überprüft, ob ein vom Benutzer eingegebene Dateiname grundsätzlich gültig ist. Dieses Beispiel stellt eine Musterlösung vor:

Sub CheckFilename()
  Dim strFile As String

  Dim intCounter As Integer
  strFile = InputBox("Bitte Dateiname eingeben:", "Dateiname")
  If Application.OperatingSystem Like "*Windows*" Then
    'Windows
    For intCounter = 1 To Len(strFile)
      If InStr("?*<>|/\:", Mid$(strFile, intCounter, 1)) > 0 Or InStr(Chr$(34), Mid$(strFile, intCounter, 1)) > 0 Then
        MsgBox "Bitte geben Sie einen gültigen Dateinamen ein." & vbCrLf & vbCrLf & _

          "Dateinamen dürfen keines dieser Zeichen enthalten:" & vbCrLf & "? * / \ : | < > """, vbInformation
        Exit Sub
      End If
    Next intCounter

  Else
    'Macintosh
    If InStr(":", strFile) > 0 Then
      MsgBox "Bitte geben Sie einen gültigen Dateinamen ein." & vbCrLf & vbCrLf & _

        "Dateinamen dürfen keinen Doppelpunkt (:) enthalten.", vbInformation
      Exit Sub
    End If
  End If

End Sub

Siehe auch Codebeispiel 1 "Gültigkeit eines vom Benutzer eingegebenen Dateinamens überprüfen".

Informationen über das Abfragen des Betriebssystems finden Sie unter Betriebssystem herausfinden.

Verwandte Themen
Unterschiede zwischen Windows und Macintosh: Sonderzeichen

To Top


Relative Verzeichnispfade
Zum Wechseln relativer Verzeichnisse werden unter Microsoft Windows und auf dem Macintosh unterschiedliche Symbole verwendet.

Plattform Merkmal
Windows Zum Wechseln des aktuellen Verzeichnisses eine Ebene nach oben werden zwei Punkte (..) verwendet.

Beispiel: ChDir ".."

Macintosh Zum Wechseln des aktuellen Verzeichnisses eine Ebene nach oben werden zwei Doppelpunkte (::) verwendet.

Beispiel: ChDir "::"

Beispiel
Auf diese Weise wird - abhängig von der jeweiligen Plattform - korrekt ein Verzeichnis nach oben gewechselt:

Sub MoveOneDirectoryUp()
  If Application.OperatingSystem Like "*Windows*" Then

    'Windows
    ChDir ".."
  Else

    'Macintosh
    ChDir "::"
  End If
End Sub

Informationen über das Abfragen des Betriebssystems finden Sie unter Betriebssystem herausfinden.

Ausführliche Informationen über relative Pfade und die ChDir-Anweisung finden Sie hier:

Weitere Informationen

The SOSCQ Page: Relative Pfade

The SOSCQ Page: VBA-Befehle und -Funktionen

To Top


Registrierungsdatenbank (Registry) / Initialisierungsdatei einer Anwendung
Auf einem Macintosh-System gibt es keine Registry, wie es bei Windows-Systemen der Fall ist. Dennoch können die Anweisungen und Funktionen GetSetting, GetAllSettings, SaveSetting und DeleteSetting unverändert auf beiden Plattformen eingesetzt werden. Auf dem Macintosh-Rechner werden alle Zugriffe an die Initialisierungsdatei der jeweiligen Anwendung umgeleitet. Unter Windows wird bei den oben erwähnten Befehlen für das Argument Appname der Name der Anwendung angegeben. Auf dem Macintosh ist dies der Name der Initialisierungsdatei im Ordner Preferences aus dem Systemordner.

Hier ein Beispiel, wie die Initialisierungsdatei von Microsoft Word 98 für Macintosh aussieht:
  WD98: What Is Stored in the Word Settings (8) File
  http://support.microsoft.com/?scid=kb;EN-US;180850

To Top


System-Bibliotheken (DLL; Dynamic Link Library) / Code Ressourcen
In Windows gibt es eine Vielzahl DLL-Dateien. Als Programmierer kann man über eine spezielle Schnittstelle (API; Application Programming Interface) auf die in einer DLL-Datei enthaltenen Prozeduren und Funktionen zugreifen. DLLs sind eine windowsspezifische "Erfindung", d.h. dass auf Macintosh-Systemen keine DLLs existieren. Auf der Macintosh-Plattform gibt es als Pendant so genannte Code Ressourcen, auf die man ebenfalls via API zugreifen kann.

To Top


Grafik-Dateiformate
Die beiden Plattformen Windows und Macintosh verwenden unterschiedliche Dateiformate für Grafiken. Während unter Windows das weit verbreitete Format namens BMP zum Einsatz kommt, wird auf dem Macintosh üblicherweise das Dateiformat PICT verwendet.

Grafikformat "Macintosh PICT"
Abbildung: Dateityp-Auswahl mit Format "Macintosh PICT"

Dateien mit dem Grafikformat PICT besitzen unter Windows die Dateinamenerweiterung "pct".

TODO: Grafikfilter, Grafik einfügen, Hintergrundbild

In Bezug auf Benutzerformulare (UserForms in einem VBA-Projekt) müssen Sie beachten, dass das PICT-Format, aber auch andere Grafikformate, zu schwerwiegenden Problemen führen können.

Mehr über diese Problematik erfahren Sie hier:
  MacXL: "Invalid Picture" When Setting Picture Property
  http://support.microsoft.com/?scid=kb;en-us;175918

To Top


ActiveX-Controls
Auf dem Macintosh existieren grundsätzlich keine ActiveX-Controls (auch OCX-Controls genannt). Sie können folglich nicht verwendet werden.

Bei Microsoft Excel befinden sich die ActiveX-Controls, die in ein Arbeitsblatt eingefügt werden können, auf der Symbolleiste "Steuerelement-Toolbox":

Steuerelement-Toolbox
Abbildung: Steuerelement-Toolbox

In Bezug auf Microsoft Excel bedeutet dies somit, dass die Steuerelemente der "Steuerelement-Toolbox" auf keinen Fall in ein Arbeitsblatt einfügt werden dürfen. Ausser, die Arbeitsmappe wird ausschliesslich in Microsoft Excel für Windows benutzt.

Beim VBA-Editor befinden sich die Steuerelemente auf dem Werkzeugsammlung-Fenster. Alle Steuerelemente, die aus der Microsoft Forms Objekt-Bibliothek stammen, können benutzt, sprich auf einem Benutzerformular angeordnet werden. Sie funktionieren sowohl in Microsoft Excel für Windows als auch in Microsoft Excel für Macintosh. Alle andere, zusätzliche Steuerelemente dürfen dagegen grundsätzlich nicht verwendet werden.

Werkzeugsammlung
Abbildung: Werkzeugsammlung

Dieser Artikel enthält Informationen über das Problem beim Verwenden von ActiveX-Controls auf dem Macintosh:
  MacXL: Error When You Paste ActiveX Controls or Run a Macro
  http://support.microsoft.com/?scid=kb;en-us;274222

Verwandte Themen
Unterschiede bei Benutzerformularen und Steuerelementen: Steuerelemente

To Top


Sonderzeichen
Auch in Bezug auf die zur Verfügung stehenden Zeichen/Zeichensätze gibt es Unterschiede, insbesondere bei Sonderzeichen. Betroffen ist sowohl die Anzeige als auch die Behandlung solcher Zeichen in Kennwörtern.

Anzeige von Sonderzeichen auf Arbeitsblättern
Einige Windows-Schriften enthalten spezielle Zeichen wie beispielsweise solche zum Darstellen von Fraktionen (z.B. 1/4, 1/2 und 3/4). In Microsoft Word sind diese Zeichen standardmässig verfügbar, und zwar als normaler Text. Man kann sie jederzeit über den Menübefehl Einfügen/Sonderzeichen in ein Dokument einfügen. Die Abbildung zeigt das Dialogfenster "Sonderzeichen" mit selektiertem Zeichen '¼':

Dialogfenster "Sonderzeichen" (Microsoft Word)
Abbildung: Sonderzeichen einfügen (Microsoft Word)

Die automatische Benutzung von Fraktionen kann man zudem einstellen, indem im AutoKorrektur-Dialog die dafür zuständige Ersetzen-Option "Brüche (1/2) durch Sonderzeichen (½)" aktiviert. Diese Option gibt es übrigens gleich zwei Mal im AutoKorrektur-Dialogfenster, nämlich auf der Registerseite "AutoFormat während der Eingabe" und auf der Seite "AutoFormat". Hier eine Abbildung des Dialogfensteres "AutoKorrektur" von Microsoft Word (Version 97):

Dialogfenster "AutoKorrektur" (Microsoft Word)
Abbildung: AutoKorrektur-Dialog (Microsoft Word)

Auch in Microsoft Excel für Windows kann man die Zeichen 1/2 und 1/4 sehr einfach in eine Zelle, in ein Textfeld oder in ein anderes Textobjekt schreiben, indem man die Tastenkombination Alt+171 (=½) beziehungsweise Alt+172 (=¼) drückt.

Auf dem Macintosh dagegen gibt es diese beiden Zeichen nicht, weil sie grundsätzlich in den Macintosh-Schriften fehlen. Wenn man ein solches Zeichen in ein Word für Windows-Dokument einfügt und das Dokument anschliessend mit Word für Macintosh öffnet, so wird das Zeichen automatisch in einen Unterstrich (_) konvertiert. Das gleiche passiert mit dem Zeichen in einer Excel-Arbeitsmappe, wenn man das Zeichen in Microsoft Excel für Windows benutzt und dann die Arbeitsmappe mit Microsoft Excel für Macintosh öffnet.

Wenn Sie auf beiden Plattformen beispielsweise das Zeichen ½ benötigen und nicht als 1/2 darstellen möchten, so bleibt Ihnen nichts anderes übrig, als mit dem Microsoft Formeleditor (Microsoft Equation) ein Formel-Objekt mit enthaltenem "Diagonal angeordneter Bruch" in das Arbeitsblatt einzubetten. Da es den Formeleditor auch in Microsoft Office für Macintosh gibt, wird das Zeichen auf beiden Systemen korrekt ausgegeben.

Mehr zu diesem Thema siehe hier:
  MacOFF: Fractions Converted to Underscore Characters
  http://support.microsoft.com/?scid=kb;en-us;193979

Behandlung von Sonderzeichen in Kennwörtern
Nicht zu unterschätzen ist, dass bestimmte Sonderzeichen zu Problemen führen können, wenn man sie in einem Kennwort benutzt. Vielleicht haben Sie schon mal diese Fehlermeldung gesehen, sie aber möglicherweise nicht näher beachtet:

Kennwort enthält spezielle Zeichen-Fehlermeldung
Abbildung: Fehler-/Warnmeldung wegen Sonderzeichen im Kennwort

Die Fehlermeldung erscheint, wenn man ein Kennwort festlegt und in diesem Kennwort ganz bestimmte Zeichen verwendet. Betroffen sind alle Kennwörter in Microsoft Excel, also unter anderem das Lese-/Schreibkennwort, das Schreibschutzkennwort sowie das Blattschutzkennwort. Die beiden folgenden Abbildungen zeigen die jeweiligen Dialogfenster.

Speichern-Optionen-Dialog
Abbildung: Speichern-Optionen-Dialog

Blatt schützen-Dialog
Abbildung: Blatt schützen-Dialog

Weitere betroffene Kennwörter sind das Arbeitsmappenschutz- und das Freigabeschutzkennwort.

Sobald man eines oder mehrere der folgenden Zeichen im Kennwort verwendet, tritt die oben vorgestellte Fehlermeldung auf:
- °
- ç
- §
- ¦
- ¬
- ¢
- ´
- ¨
- £
- é
- è
- à

- Das Zeichen ^ ist verwendbar, wenn es nicht in Kombination mit einem Vokal (a, e, i, o, u) benutzt wird.
- Das Zeichen ~ ist verwendbar, wenn es nicht in Kombination mit den Buchstaben n, a und o benutzt wird.

Verwandte Themen
Unterschiede zwischen Windows und Macintosh: Erlaubte Zeichen in Dateinamen
Tabellenfunktion ZEICHEN
Tabellenfunktion CODE

To Top


Schriftarten
Bezüglich Schriftarten gibt es ebenfalls Dinge, die man ganz allgemein berücksichtigen sollte. Denken Sie vor allem daran, dass in Excel für Windows und Excel für Macintosh nicht die gleiche Schriftart als Standardschrift verwendet wird.

Excelversion Standardschrift
Excel für Windows Arial 10 Punkte (nicht-fett, nicht-kursiv)
Excel für Macintosh Geneva 10 Punkte (nicht-fett, nicht-kursiv)

Wenn Sie beispielsweise ein VBA-Programm auf dem Macintosh schreiben, sollten Sie einer Zelle oder einem Objekt mit Text nicht explizit die Schriftart Geneva zuweisen (obwohl es die Standardschriftart von Excel für Macintosh ist). Vermeiden Sie daher Codezeilen wie beispielsweise diese:

ActiveCell.Font.Name = "Geneva"

Das Problem einer derartigen Codezeile ist, dass sie in Microsoft Excel für Windows zwar ohne Fehlermeldung ausgeführt wird. Weil aber auf einem Windows-Computer standardmässig die angegebene Schriftart nicht existiert, verwendet Excel für Windows für die Anzeige automatisch eine andere, ähnliche Schriftart. Im Falle von Geneva ist es gewöhnlich die Schriftart Arial. Die Zelle besitzt jedoch nach wie vor die Schriftart Geneva. Dies hat zur Folge, dass in der Arbeitsmappe eine Schrift verwendet wird, die auf dem Windows-Rechner nicht installiert ist. Das gilt natürlich auch umgekehrt, also für die in Windows benutzten Schriftarten, die auf dem Macintosh nicht existieren.

Bedenken Sie, dass man mit VBA-Programmcode nicht nur bei Zellen eine andere Schriftart einstellen kann. Die meisten Objekte besitzen eine Font-Eigenschaft, die ein Font-Objekt zurückgibt, welches seinerseits eine Name-Eigenschaft zum Abfragen und Setzen der Schriftart bereitstellt. Nebst Range besitzen unter anderem auch Style, FormatCondition, ChartArea, ChartTitle, AxisTitle und Characters eine Font-Eigenschaft. Nur TextEffectFormat stellt eine Ausnahme dar. Bei diesem Objekt heisst die zuständige Eigenschaft FontName.

TODO

ActiveSheet.Shapes.AddTextEffect msoTextEffect3, "Willkommen!", "Verdana", 22, True, False, 50, 100

Um sicherzugehen, dass die gewünschte Schriftart wirklich verfügbar ist, kann man vor der Verwendung der Schriftart zuerst überprüfen, ob sie auf dem eingesetzten Computer vorhanden ist. Anhand einer kleinen selbstgeschriebenen VBA-Funktion lässt sich dies ganz einfach erledigen.

Siehe dazu unter Codebeispiel 12 "Verfügbarkeit einer Schriftart überprüfen".

 

TODO

Je nach Plattform eine andere Standard-Schriftart für Microsoft Excel einstellen:

If Application.OperatingSystem Like "*Macintosh*" Then
  Application.StandardFont = "Geneva"
Else
  Application.StandardFont = "Arial"
End If

Wenn Sie die Schriftart mit der Eigenschaft StandardFont ändern, wird diese Änderung erst dann durchgeführt, wenn Sie Microsoft Excel erneut starten.

 

In Microsoft PowerPoint gibt es übrigens eine Funktionalität zum Ersetzen von Schriftarten. Hier ein Auszug aus der Dokumentation von Microsoft PowerPoint 97 (Originaltext):

Umwandeln von Macintosh-Schriftarten in Windows-Schriftarten
Wenn Sie eine Apple Macintosh-Präsentation in eine Microsoft Windows-Präsentation umgewandelt haben, stehen auf beiden Computern möglicherweise nicht dieselben Schriftarten zur Verfügung. Die folgende Tabelle zeigt Apple Macintosh-Schriftarten und deren Microsoft Windows-Entsprechungen.


Macintosh-Schriftart Windows-Schriftart
Avant Garde Century Gothic
Bookman Bookman Old Style
Helvetica Arial
N Helvetica Narrow Arial Narrow
New Century Schlbk Century Schoolbook
Palatino Book Antiqua
Times Times New Roman
Zapf Chancery Monotype Corsiva
Zapf Dingbats Monotype Sorts

Um eine Macintosh-Schriftart zu ersetzen, klicken Sie im Menü Format auf Schriftarten ersetzen. Klicken Sie in den Feldern Ersetzen und Durch auf die zu entsprechenden Schriftarten. PowerPoint ersetzt die Schriftart, behält jedoch den Macintosh-Schriftartnamen bei.

Anhand der Replace-Methode der Fonts-Auflistung einer Präsentation können Schriftarten auf mit VBA-Code ersetzt werden.

Detaillierte Informationen über Excel-Schriftarten und die maximale Anzahl verschiedene Schriften in Excel erhalten Sie hier:

Weitere Informationen

Limitationen in Excel: Fachartikel "Maximale Anzahl verschiedene Schriften" (Artikel-ID xllimit17)

Zum Seitenanfang


Unterschiede zwischen Excel für Windows und Excel für Macintosh

Nachfolgend ein paar wichtige Unterschiede zwischen den beiden Excel-Ausgaben:
- Tabellenfunktionen
- Dateinamen
- Speichern einer Arbeitsmappe
- Hyperlink-Basis
- 1900- und 1904-Datumssystem
- Tastaturbelegung/Tastenkombinationen
- Landkarten (Data Maps)
- Publish and Subscribe

To Top


Tabellenfunktionen
Alle Tabellenfunktionen von Excel für Windows können auch in Excel für Macintosh (bzw. umgekehrt) benutzt werden. Es gibt keine Funktionen, die ausschliesslich in Excel für Windows oder in Excel für Macintosh verwendet werden können. Allerdings liefern einzelne Tabellenfunktionen je nach Plattform unterschiedliche Ergebnisse. Davon sind insbesondere ein paar Informations-, Text- und Datum-/Zeit-Funktionen betroffen.

Welche Tabellenfunktionen unterschiedliche Resultate liefern, ist im Kapitel Unterschiede bei Excel-Tabellenfunktionen beschrieben.

To Top


Dateinamen
Auf dem Macintosh verwenden Arbeitsmappendateien nicht die unter Windows übliche Dateinamenerweiterung ".xls", sondern gar keine Dateinamenerweiterung (Diese Angabe ist ohne Gewähr!).

To Top


Speichern einer Arbeitsmappe
Die Art und Weise, wie eine Microsoft Excel-Arbeitsmappe gespeichert wird, ist auf den beiden Plattformen Windows und Macintosh unterschiedlich. Hier ein Auszug aus einer Dokumentation von Microsoft (Originaltext):

When you save a file that you changed in some way on a Windows-based computer, Microsoft Excel saves the file with a temporary file name and places this file in the same folder as the original file. This creates a new file. The original file is then deleted and the temporary file is renamed with the original file name.

If this process is somehow interrupted, your file may not be saved properly or you may find one or more temporary files in the folder where you tried to save your file. In addition, you may receive one of several alert or error messages.

When you use Microsoft Excel to save a file that you changed in some way on a Macintosh-based computer, and the program unexpectedly quits, Microsoft Excel saves the file with a temporary file name. Temporary files are placed in an invisible folder called Temporary Items in the root level of the hard disk. When Microsoft Excel unexpectedly quits, this folder becomes visible. When you restart the computer, this folder is moved to the Trash and placed in a folder called "Rescued Items from <hard disk name>." You can then drag the file back to the hard disk to recover it.

To Top


Hyperlink-Basis
Anhand der so genannten Hyperlink-Basis kann man für eine Arbeitsmappe ein Verzeichnis festlegen, welches als Basis für alle relativen Hyperlinks in der Arbeitsmappe verwendet wird. In Microsoft Excel wird die Hyperlink-Basis im Eigenschaften-Dialogfenster der Arbeitsmappe (Menü Datei/Eigenschaften) eingegeben bzw. abgefragt. Diese Einstellung gilt pro Arbeitsmappe.

Dokument-Eigenschaften mit Hyperlink-Basis
Abbildung: Dokument-Eigenschaften mit Hyperlink-Basis

Bitte beachten Sie, dass der als Hyperlink-Basis festgelegte Pfad nicht unbedingt gültig sein muss. Das bedeutet, dass der Pfad nicht vorhanden/verfügbar sein könnte. Es kann sogar sein, dass als Hyperlink-Basis etwas ganz anderes eingegeben wurde, also irgend ein Wort oder Text. Das Problem ist nämlich, dass das Feld "Hyperlink-Basis" ein gewöhnliches Texteingabefeld ist, dessen Inhalt nicht überprüft wird.

Wenn man nun eine Arbeitsmappe mit Microsoft Excel für Windows erstellt und als Hyperlink-Basis zum Beispiel "D:\Daten" einträgt, und dann die Mappe mit Microsoft Excel für Macintosh öffnet, so werden die relativen Hyperlinks in der Arbeitsmappe nicht mehr funktionieren, weil der Macintosh mit der Angabe "D:\Daten" nichts anfangen kann. Wie weiter oben beschrieben wurde, müsste - sofern es das "Daten"-Verzeichnis auf dem Mac-Rechner überhaupt gibt - der Pfad korrekterweise "HD:Daten" lauten. Das gleiche Problem tritt natürlich auch beim umgekehrten Vorgehen auf, also beim Bearbeiten einer mit Excel für Macintosh erstellten Mappe mit Microsoft Excel für Windows.

Die Auswirkung dieses Problems äusserst sich in einer Fehlermeldung, die beim Anklicken eines Hyperlinks erscheint. Beim Öffnen der Arbeitsmappe tritt dagegen kein Fehler auf. Die angezeigte Fehlermeldung ist zu allem Übel noch ziemlich miss- bzw. unverständlich:

Die Adresse dieser Web-Site ist unzulässig
Abbildung: Fehlermeldung "Die Adresse dieser Web-Site ist unzulässig"

Der Text ist insofern 'ungünstig', weil auch dann von "Adresse" und "Web-Site" gesprochen wird, wenn der Hyperlink auf eine Arbeitsmappendatei zeigt, die sogar im gleichen Ordner wie die aktuelle Arbeitsmappe liegt. Zudem ist die vorgeschlagene Überprüfung gar nicht immer so einfach, wie die nachfolgende Abbildung beweist:

Hyperlink bearbeiten (mit Hyperlink-Basis)
Abbildung: Hyperlink bearbeiten (mit Hyperlink-Basis)

Zusammenfassend lässt sich somit sagen, dass eine statische, sprich in den Dokument-Eigenschaften eingetragene Hyperlink-Basis nicht mehr funktioniert, sobald man die Arbeitsmappe auf der anderen Systemplattform bearbeitet. Damit die (relativen) Hyperlinks sowohl unter Windows als auch auf Macintosh funktionieren, muss man die Hyperlink-Basis mit VBA-Programmcode dynamisch festlegen, damit die plattformspezifischen Unterschiede berücksichtigt werden können.

Der Zugriff auf die Hyperlink-Basis erfolgt via BuiltInDocumentProperties-Eigenschaft der Arbeitsmappe, indem man als Element-Index das Schlüsselwort "Hyperlink base" angibt.

Hier wird die Hyperlink-Basis der aktiven Arbeitsmappe abgefragt:

Sub GetHyperlinkBase()
  MsgBox ActiveWorkbook.BuiltInDocumentProperties("Hyperlink base").Value

End Sub

Dieses Beispiel zeigt, wie die Hyperlink-Basis automatisch beim Öffnen der Arbeitsmappe festgelegt wird, wobei dies in Abhängigkeit der aktuell eingesetzten Plattform geschieht:

Private Sub Workbook_Open()
  If Application.OperatingSystem Like "*Windows*" Then

    'Windows
    ThisWorkbook.BuiltInDocumentProperties("Hyperlink base").Value = "C:\Daten"
  Else
    'Macintosh
    ThisWorkbook.BuiltInDocumentProperties("Hyperlink base").Value = "HD:Daten"
  End If

End Sub

Siehe auch Codebeispiel 8 "Hyperlink-Basis abfragen/ändern".

To Top


1900- und 1904-Datumssystem von Microsoft Excel
Microsoft Excel 97 unterstützt zwei Datumswertesysteme: das 1900- und das 1904-Datumswertesystem. In Microsoft Excel 97 für Windows wird standardmässig das 1900-Datumswertesystem verwendet. Um zum 1904-Datumswertesystem zu wechseln, klicken Sie im Menü Extras auf Optionen, klicken Sie auf die Registerkarte Berechnen, und aktivieren Sie dann das Kontrollkästchen 1904-Datumswerte.

Die folgende Tabelle enthält für beide Datumswertesysteme das erste und das letzte Datum sowie die entsprechenden seriellen Datumswerte:

Datumswertesystem Erstes Datum Letztes Datum
1900 1. Januar 1900
Serieller Wert: 1
31. Dezember 9999
Serieller Wert: 2958525
1904 2. Januar 1904
Serieller Wert: 1
31. Dezember 9999
Serieller Wert: 2957063

Bei Microsoft Excel für Windows (und Lotus 1-2-3) werden Tage vom Anfang dieses Jahrhunderts an gezählt; die serielle Datumszahl 1 entspricht dem Datum 1. Januar 1900. Microsoft Excel für den Macintosh verwendet das 1904-Datumswertesystem; die serielle Datumszahl 1 entspricht dem Datum 2. Januar 1904. Um das Datumssystem für Berechnungen zu ändern, klicken Sie im Menü Extras auf Optionen und dann auf die Registerkarte Berechnen. Unter Arbeitsmappe aktivieren Sie das Kontrollkästchen 1904-Datumswerte. Verwenden Sie das 1904-Datumswertesystem für eine Arbeitsmappe, wenn Sie diese zusammen mit Arbeitsmappen nutzen, in denen das 1904-Datumswertesystem eingesetzt wird.

Wenn Sie in Microsoft Excel für Windows eine Datei öffnen, die in Microsoft Excel, Version 2.0 oder höher, für den Macintosh erstellt wurde, erkennt Microsoft Excel das Dateiformat und ändert die Datumswerte automatisch in das 1900-Datumswertesystem. Ebenso wird eine Datei, die mit Microsoft Excel für Windows erstellt wurde, beim Macintosh in das 1904-Datumswertesystem umgewandelt.

 

TODO

- Bei Einsatz des 1900-Datumssystems (Standard in Microsoft Excel für Windows), liefert DATUM(91; 1; 1) den Wert 33239. Dies ist die fortlaufende Zahl, die dem 1. Januar 1991 entspricht.

- Bei Einsatz des 1904-Datumssystems (Standard in Microsoft Excel für den Macintosh), liefert DATUM(91; 1; 1) den Wert 31777. Dies ist die fortlaufende Zahl, die dem 1. Januar 1991 entspricht.

 

Einstellung "1904-Datumswerte" (Optionen-Dialog von Excel)

Wenn aktiviert: Ersetzt das Anfangsdatum 1. Januar 1900, aus dem alle Datumswerte berechnet werden, durch den 2. Januar 1904.

 

 

Siehe auch Codebeispiel 9 "Datumssystem einstellen".

Hinweis
This problem does not occur when Microsoft Excel uses the 1900 Date System; however, Microsoft Excel for Macintosh uses the 1904 Date System by default. Specifically, the problem occurs because Microsoft Excel for Macintosh uses the 1904 Date System for the serial date values that you type in the Minimum and Maximum boxes.

Hier ein paar Artikel aus der Microsoft Knowledge Base zu diesem Thema:
  XL (alle Versionen): 1900- und 1904-Datumssystem im Vergleich
  http://support.microsoft.com/?scid=kb;de;214330
  MacXL: Date Returned in a Macro Is Four Years Too Early
  http://support.microsoft.com/?scid=kb;en-us;274238
  Description of the differences between the 1900 Date System and the 1904 Date System in Excel
  http://support.microsoft.com/?scid=kb;en-us;214330
  XL98: How Microsoft Excel Works with Two-Digit Year Numbers
  http://support.microsoft.com/?scid=kb;EN-US;164406
  XL2001: How Microsoft Excel Works with Two-Digit Year Numbers
  http://support.microsoft.com/?scid=kb;en-us;302768
  MacXL: Chart Axis May Be Four Years Early After You Format Scale
  http://support.microsoft.com/?scid=kb;en-us;274277
  MacXL: Date Values Earlier Than 1904 Appear as Text
  http://support.microsoft.com/?scid=kb;en-us;323218
  XL (all Versions): Days of the week before March 1, 1900 are incorrect in Excel
  http://support.microsoft.com/?scid=kb;en-us;214058

Verwandte Themen
Date-Anweisung
Unterschiede bei Excel-Tabellenfunktionen

To Top


Tastaturbelegung/Tastenkombinationen in Microsoft Excel
Zwischen Excel für Windows und Excel für Macintosh gibt es bezüglich Tastenbefehlen ein paar kleinere Unterschiede. Der wohl wichtigste Unterschied betrifft die Taste zum Aufrufen der Online-Hilfe. In Excel für Windows wird dazu üblicherweise die Funktionstaste F1 benutzt - in Excel für Macintosh dagegen die speziell dafür vorhandene HILFE-Taste. Einem Excel für Macintosh-Anwender darf man also nicht empfehlen, er solle die Taste F1 drücken. Auf dem Macintosh wird mit dieser Taste nämlich die letzte Aktion rückgängig gemacht (entspricht der Tastenkombination Strg+Z in Excel für Windows). In der Macintosh-Ausgabe von Microsoft Excel gibt es eine ähnliche Tastenkombination wie Strg+Z, nämlich COMMAND+Z. Diese macht jedoch die letzte Selektion und nicht den letzten Befehl rückgängig.

Diese Tabelle zeigt die deutschen und englischen Tastenbezeichnungen für Windows und Macintosh:

Windows (deutsch) Windows (englisch) Macintosh (deutsch) Macintosh (englisch)
Strg Ctrl BEFEHL COMMAND
Alt Alt OPTION OPTION
Umschalt Shift Umschalt Shift
F1 F1 HILFE HELP

Eine vollständige Liste sämtlicher Tastenbefehle von Microsoft Excel 2001 für Macintosh finden Sie hier:
  XL2001: Shortcut Keys Available in Excel 2001 for Mac (Part 1)
  http://support.microsoft.com/?scid=kb;en-us;275633
  XL2001: Shortcut Keys Available in Excel 2001 for Mac (Part 2)
  http://support.microsoft.com/?scid=kb;en-us;275634
  XL2001: Shortcut Keys Available in Excel 2001 for Mac (Part 3)
  http://support.microsoft.com/?scid=kb;en-us;275635

To Top


Landkarten (Data Maps)
Mithilfe von Landkarten kann man sehr einfach geografische Daten visualisieren. Eine Landkarte wird anhand des Zusatzprogrammes Microsoft Map erstellt.

Muster einer Landkarte
Abbildung: Muster einer Landkarte (Ausschnitt eines Tabellenblattes)

Bitte beachten Sie, dass Landkarten nur in Microsoft Excel für Windows existieren. Diese können über das Menü Einfügen/Landkarte in ein Arbeitsblatt eingefügt werden. Wenn Sie eine mit Excel für Windows gespeicherte Arbeitsmappe in Excel für Macintosh öffnen, so erscheint die Landkarte als eingebettetes schwarz-weisses Bildobjekt. Wird ein Doppelklick auf das Bild ausgeführt (was unter Windows zum Bearbeiten der Landkarte führt), wird auf dem Macintosh stattdessen eine Fehlermeldung eingeblendet. Interessant ist, dass, obwohl es in Excel für Macintosh keine Landkarten gibt, die eingebettete Landkarte vollständig erhalten bleibt. Man kann somit die Arbeitsmappeappe bearbeiten und speichern. Wird die Mappe anschliessend in Microsoft Excel für Windows geöffnet, liegt die Landkarte wieder als bearbeitbares Objekt vor und ist vollkommen intakt.

Mehr zum Thema Data Maps in Excel erfahren Sie hier:
  MacXL: Data Maps Are Not Supported in Microsoft Excel for Mac
  http://support.microsoft.com/?scid=kb;en-us;274220

To Top


Publish and Subscribe
Die Office-Programme für Macintosh von Microsoft Office Version 2001 besitzen keine Publish and Subscribe-Funktionalität.

Informationen zu diesem Thema erhalten Sie hier:
  OFF2001: Publish and Subscribe Not Available in Office 2001 Programs
  http://support.microsoft.com/?scid=kb;en-us;288951

In älteren Versionen von Microsoft Excel für Macintosh (z.B. Version 4.x) gab es dagegen Publisher und Subscriber (Verleger und Abonnenten).

Zum Seitenanfang


Unterschiede zwischen VBA für Windows und VBA für Macintosh

Nachfolgend ein paar interessante Unterschiede zwischen den beiden VBA-Ausgaben:
- VBA-Version
- Anzahl gleichzeitig geöffnete Dateien
- Unicode-Zeichenfolgen
- Automatisierung

To Top


VBA-Version
Zwar kein 'echter' Unterschied zwischen VBA für Windows und VBA für Macintosh, aber unbedingt zu beachten: Je nach Office-Version ist eine andere Version von VBA in der Office-Anwendung enthalten. Während unter Windows der Wechsel von VBA 5 auf VBA 6 bereits bei Microsoft Office 2000 vollzogen wurde, enthält Microsoft Office für Macintosh noch bis zur Version v.X die VBA-Version 5. Erst Office 2004 für Macintosh verwendet VBA 6.

Hier die Übersicht der in Microsoft Office integrierten VBA-Versionen:

Office-Version VBA-Version
Office 97 (Windows) VBA 5
Office 98 (Macintosh) VBA 5
Office 2000 (Windows) VBA 6
Office 2001 (Macintosh) VBA 5
Office 2002/XP (Windows) VBA 6
Office v.X (Macintosh) VBA 5
Office 2003 (Windows) VBA 6
Office 2004 (Macintosh) VBA 6

Wenn Sie also mit Microsoft Excel für Windows ein VBA-Programm schreiben, welches auch mit Excel für Macintosh fehlerfrei funktionieren soll, so dürfen Sie nur die Sprachelemente von VBA 5 benutzen, weil Excel für Macintosh fast ausschliesslich noch VBA 5 enthält. Nur die neueste Version Excel 2004 enthält VBA 6.

To Top


Anzahl gleichzeitig geöffnete Dateien
Unter Windows können mit einem VBA-Programm bedeutend mehr Dateien gleichzeitig geöffnet sein als auf einem Macintosh-Computer.

Plattform Merkmal
Windows 512 Dateien (Angabe ohne Gewähr)
Macintosh 40 Dateien (Standard-Einstellung; kann geändert werden)

Diese Limitation müssen Sie beachten, wenn Sie beispielsweise viele Dateien für Lese- und/oder Schreibzugriffe anhand der Open-Anweisung von VBA öffnen.

Beispiel
Zum Öffnen einer Datei wird gewöhnlich die Open-Anweisung von VBA verwendet. So wird eine Datei für den Lesezugriff geöffnet:

Open "<Datei>" For Input As #<n>

Auf einem Macintosh-Rechner können Sie die obige Anweisung 40 mal hintereinander ausführen, wenn Sie für "<n>" unterschiedliche Dateinummern angeben und keine der bereits geöffneten Dateien zwischenzeitlich schliessen.

TODO

Sub OpenFiles()
  Dim intCounter As Integer
  For intCounter = 1 To 256
    Open "C:\Daten\Textdatei.txt" For Input As #FreeFile()
  Next intCounter

  Close
End Sub

Verwandte Themen
Fehlermeldung: Zu viele Dateien (Fehler 67)
FreeFile-Funktion

To Top


Unicode-Zeichenfolgen
Visual Basic für den Macintosh unterstützt keine Unicode-Zeichenfolgen. (Quelle: Microsoft Excel Visual Basic-Referenz, Thema "Chr-Funktion")

Definition von Unicode:
ISO-Zeichenstandard (International Standards Organization). Unicode verwendet eine 16-Bit-Codierung (2 Bytes), die 65'536 verschiedene Zeichen erlaubt. Unicode enthält Darstellungen für Satzzeichen, mathematische Symbole und Dingbats und bietet noch ausreichend Platz für künftige Erweiterungen.

Verwandte Themen
AscW-Funktion
ChrW-Funktion

To Top


Automatisierung
Wenn Sie Code zum Automatisieren von anderen Office-Programmen schreiben, sollten Sie auf jeden Fall die so genannte Late Binding-Technik benutzen. Bei Late Binding wird im VBA-Projekt kein Verweis auf die Objektbibliothek der zu automatisierenden Anwendung gesetzt. Alle Objektvariablen werden mit dem Datentyp Object deklariert (zum Beispiel "Dim objSlide As Object"). Die Instanzierung erfolgt mittels CreateObject oder GetObject.

Wenn Sie sich nicht mit Late Binding auskennen oder ganz allgemein Informationen darüber erhalten möchten, werfen Sie einen Blick auf die Seite Automation Theory. Sie finden dort eine detaillierte Beschreibung sämtlicher Automation-Techniken und vieles mehr. Verschiedene Dokumentationen und Anleitungen von Microsoft stehen ausserdem auf der Downloadseite zur Verfügung.

Zum Seitenanfang


Sonstige Unterschiede

Creator Code von Microsoft Office-Programmen
Die Creator-Eigenschaft wurde speziell für den Einsatz in Microsoft Excel für den Macintosh geschaffen. Jede Anwendung auf dem Macintosh besitzt einen Urheber-Code, der aus vier Zeichen besteht. Der Urheber-Code wird oft Creator Code genannt. Der Creator Code für Microsoft Excel lautet "XCEL".

Weitere Informationen erhalten Sie hier:
  The eXpLorer: Die Bedeutung des von Application.Creator zurückgegebenen Wertes
  http://195.186.84.74/explorer/creator.htm

To Top


Senden von Tastenfolgen
Leider ist nicht eindeutig zu erkennen, ob die SendKeys-Anweisung von VBA auf dem Macintosh zur Verfügung steht oder nicht. Der Grund liegt an den widersprüchlichen Beschreibungen in den VBA-Referenzen von Excel 97 und Excel 2000. Während in der Dokumentation von Excel-VBA 97 ganz klar steht, dass SendKeys auf dem Macintosh nicht benutzt werden kann, steht in der Dokumentation von Excel-VBA 2000 das genaue Gegenteil.

Nachstehend zwei Auszüge aus den beiden Referenzen (die wichtigen Textstellen sind dunkelblau und unterstrichen dargestellt):

VBA-Referenz von Microsoft Excel 97:

Thema "Beispiel zur SendKeys-Anweisung"
In diesem Beispiel wird die Shell-Funktion verwendet, um die Rechner-Anwendung von Microsoft Windows auszuführen. Anschliessend werden mit der SendKeys-Anweisung Tastenanschläge an den Rechner gesendet, um Zahlen zu addieren und den Rechner wieder zu beenden. Die SendKeys-Anweisung steht auf dem Macintosh nicht zur Verfügung. (Sie probieren das Beispiel aus, indem Sie es in eine Prozedur einfügen und diese anschliessend ausführen. Da AppActivate den Fokus auf die Rechner-Anwendung setzt, können Sie den Code nicht mit Einzelschritten ausführen.)

Thema "SendKeys-Anweisung"
SendKeys kann keine Tastenanschläge an Anwendungen senden, die nicht unter Microsoft Windows ausgeführt werden können. [...]

VBA-Referenz von Microsoft Excel 2000:

Thema "Beispiel zur SendKeys-Anweisung"
In diesem Beispiel wird die Shell-Funktion verwendet, um die Rechner-Anwendung von Microsoft Windows auszuführen. Anschliessend werden mit der SendKeys-Anweisung Tastenanschläge an den Rechner gesendet, um Zahlen zu addieren und den Rechner wieder zu beenden. (Sie probieren das Beispiel aus, indem Sie es in eine Prozedur einfügen und diese anschliessend ausführen. Da AppActivate den Fokus auf die Rechner-Anwendung setzt, können Sie den Code nicht mit Einzelschritten ausführen.) Verwenden Sie auf dem Macintosh anstelle des Windows-Rechners eine Macintosh-Anwendung, die Tastatureingabe akzeptiert.

Thema "SendKeys-Anweisung"
SendKeys kann keine Tastenanschläge an Anwendungen senden, die nicht unter Microsoft Windows oder auf dem Macintosh ausgeführt werden können. [...]

Auch in der Dokumentation der Microsoft Excel Makro-Funktionen ist angegeben, dass das Senden von Tastenanschlägen nicht möglich ist:

Microsoft Excel Makro-Funktionen Hilfe:

Thema "TASTENF.SENDEN"
TASTENF.SENDEN
Sendet Tastenanschläge an die aktive Anwendung, als wenn sie direkt über die Tastatur eingegeben würden. Verwenden Sie TASTENF.SENDEN, um Tastenanschläge, die Aktionen und Befehle ausführen, an Anwendungen zu senden, die Sie mit den anderen DDE-Funktionen (DDE=Dynamischer Datenaustausch) von Microsoft Excel ablaufen lassen.

Syntax
TASTENF.SENDEN(Taste_Text; Warten_Wahrheitswert)

Hinweis
Diese Funktion steht nur in Microsoft Excel für Windows zur Verfügung.

 

Aufgrund dieser Unklarheit sollten Sie auf die Benutzung der SendKeys-Anweisung möglichst verzichten.

Zum Kapitelanfang Zum Seitenanfang


Unterschiede bei Dateinamen, Dateipfaden und Verzeichnispfaden

Allgemeines

Macintosh- und Windows-Computer verwenden unterschiedliche Bezeichnungen und Schreibweisen für Pfade.

- Laufwerke: Auf einem Macintosh-Computer besitzt die Festplatte die Bezeichnung "HD" ("HD" steht für "HardDisk"). Windows dagegen verwendet einen einzelnen Buchstaben, von "A" bis "Z", als Laufwerksbezeichnung.

- Verzeichnisse: Auf Macintosh wird zum Unterteilen der einzelnen Bestandteile eines Pfades der Doppelpunkt ':' verwendet. Bei Windows dagegen wird der umgekehrte Schrägstrich '\' verwendet (z.B. C:\Programme\Microsoft Office\Vorlagen).

- Dateien: In Dateinamen ist auf dem Macintosh lediglich der Doppelpunkt ':' nicht erlaubt, wogegen Windows eine ganze Reihe spezieller Zeichen verbietet.

 

Dateiname: z.B. MeineMappe.xls

Dateipfad: z.B. C:\Daten\MeineMappe.xls

Verzeichnispfad:

 

Zum Seitenanfang


Pfade in der Anwendung Microsoft Excel

- Standardarbeitsordner in Optionen

- Zusätzlicher Startordner in Optionen

Zum Seitenanfang


Pfade in der Arbeitsmappe

...

Zellen

Zellen können sowohl im Zelltext als auch in der Zellformel Pfade enthalten.

Externe Zellbezüge
='C:\Daten\Excel\[Statistik 2005.xls]Regionen'!$A$1

Werden im Verknüpfungen-Dialog angezeigt.

Externe benutzerdefinierte Funktionen
='C:\Daten\Excel\Funktionen.xls'!GetVersion()

Werden im Verknüpfungen-Dialog angezeigt.

Statische Pfade
C:\Daten
C:\Daten\Excel\Statistik 2005.xls

DDE-Verknüpfungen
=WinWord|'D:\NeueDaten\Statistik.doc'!Umsatz

Werden im Verknüpfungen-Dialog angezeigt.

To Top


Namen

Namen können Bezüge auf Zellen anderer Arbeitsmappen enthalten und auch auf benutzerdefinierte Funktionen zugreifen, die sich in anderen Mappen befinden.

Externe Zellbezüge
='C:\Daten\Excel\[Statistik 2005.xls]Regionen'!$A$1

Werden im Verknüpfungen-Dialog angezeigt.

Externe benutzerdefinierte Funktionen

Namen festlegen
Abbildung: Name mit Pfad in Bezug (Dialog "Namen festlegen")

Werden im Verknüpfungen-Dialog angezeigt.

To Top


Objekt-Makrozuweisungen

(AutoForm, Zeichnungselement, Bild, Textfeld, Formular-Steuerelement, Diagramm, eingebettetes Objekt, WordArt-Objekt, Symbolleisten-Steuerelement etc.)

Werden im Verknüpfungen-Dialog angezeigt.

To Top


Verknüpfte Objekte

z.B. Bild oder Formular-Steuerelement

 

Objekttyp Objekt
Zeichnungsobjekt Rechteck, Ellipse
AutoForm Standardformen, Blockpfeile, Flussdiagramm, Sterne und Banner, Legende
Formular-Steuerelement Bezeichnungsfeld, Gruppenfeld, Schaltfläche
Bild Verknüpfte Grafik (siehe Anmerkung)
Textfeld Textfeld

 

MsgBox ActiveSheet.Shapes("Button 1").DrawingObject.Formula

 

Werden im Verknüpfungen-Dialog angezeigt.

To Top


Verknüpfte OLE-Objekte

z.B. verknüpftes Word-Dokument:

=Word.Document.8|'C:\Daten\Brief.doc'!''''

?ActiveSheet.OLEObjects(6).SourceName
Word.Document.8|D:\NeueDaten\Tools\Cell Format Analyzer\Behandlung von speziellen Zellen.doc!'

?activesheet.shapes("Object 11").drawingobject.sourcename
Word.Document.8|D:\NeueDaten\Tools\Cell Format Analyzer\Behandlung von speziellen Zellen.doc!'

Werden im Verknüpfungen-Dialog angezeigt.

To Top


Hyperlinks

Pfade in Hyperlinks (Zellen, Objekte)

Werden im Verknüpfungen-Dialog nicht angezeigt.

To Top


Konsolidierungen

Konsolidieren-Dialog
Abbildung: Bezüge auf externe Konsolidierungsbereiche (Dialog "Konsolidieren")

Werden im Verknüpfungen-Dialog nicht angezeigt.

To Top


Diagramme

 

Diagramm-Datenquelle
Abbildung: Externer Bezug in einer Diagramm-Datenquelle (Dialog "Datenquelle")

 

Werden im Verknüpfungen-Dialog nicht angezeigt.

To Top


Externe Datenbereiche

 

 

To Top


Listenbereiche und Ausgabeverknüpfungen von Formular-Steuerelementen

Dialog "Steuerelement formatieren"
Abbildung: Dialog "Steuerelement formatieren"

 

Werden im Verknüpfungen-Dialog nicht angezeigt.

Zum Seitenanfang


Pfade im VBA-Programmcode

Es gibt massenhaft Sprachelemente, d.h. Anweisungen, Funktionen, Methoden, Eigenschaften usw., die als Argumente oder Parameter Datei- bzw. Pfadnamen verwenden. Weil Macintosh und Windows unterschiedliche Dateisysteme benutzen, muss bei jedem dieser Sprachelemente der benötigte Pfad in der korrekten, der eingesetzten Plattform entsprechenden Schreibweise angegeben sein. In einem VBA-Programm gibt es folgedessen eine Vielzahl Codezeilen, die zu einem Fehler führen können, wenn der Dateiname bzw. der Pfad falsch geschrieben ist.

Beispiel:

Kopieren einer Arbeitsmappe in einen anderen Ordner.

Windows:

FileCopy "C:\Daten\Personl.xls", "C:\Backup\Personl.xls"

Macintosh:

FileCopy "HD:Daten:Personal Macro Workbook", "HD:Backup:Personal Macro Workbook"

 

Ein paar Sprachelemente existieren erst ab Excel 2000.

Bei einigen Sprachelementen ist auf den ersten Blick nur schwer zu erkennen, weshalb sie einen Zusammenhang mit dem Dateisystem besitzen. Beispielsweise bei der Raise-Methode des ErrObject-Objektes von VBA:

Err.Raise 9000, , "Ausnahmefehler aufgetreten!", "C:\MeinProgramm\Hilfedatei.hlp", 1000

OnTime-Eigenschaft des Application-Objektes von Excel:

Sub SetTimer()
  Dim varTime As Variant
  varTime = Now + TimeValue("0:00:05")
  Application.OnTime varTime, "C:\Daten\DemoMappe.xls!MeineProzedur"
End Sub

 

Nachfolgend finden Sie mehrere Tabellen mit sämtlichen Dateisystem-relevanten Sprachelementen von VBA und den Objektmodellen von Excel, Office, MSForms und VBA-Editor.

Es sind insgesamt 187 verschiedene Sprachelemente. Davon sind 136 Sprachelemente solche von VBA und Excel-VBA.

 

To Top


Anweisungen und Funktionen von VBA

Aufsteigend sortiert nach Element.

Element Typ Bemerkung
ChDir Anweisung -
ChDrive Anweisung -
CurDir Funktion -
Dir Funktion -
FileAttr Funktion -
FileCopy Anweisung -
FileDateTime Funktion -
FileLen Funktion -
GetAttr Funktion -
GetObject Funktion -
HelpFile Eigenschaft Eigenschaft des ErrObject-Objektes
InputBox Funktion -
Kill Anweisung -
MkDir Anweisung -
MsgBox Funktion -
Name Anweisung -
Open Anweisung -
Raise Methode Methode des ErrObject-Objektes
RmDir Anweisung -
SetAttr Anweisung -
Shell Funktion -

 

To Top


Methoden und Eigenschaften des Excel-Objektmodells

Aufsteigend sortiert nach Objekt/Klasse und Element.

 

Objekt/Klasse

Element

Typ

Bemerkung

AddIn

FullName

Eigenschaft

-

AddIn

Name

Eigenschaft

-

AddIn

Path

Eigenschaft

-

AddIns

Add

Methode

-

Application

AltStartupPath

Eigenschaft

-

Application

CheckSpelling

Methode

-

Application

DDEInitiate

Methode

-

Application

DefaultFilePath

Eigenschaft

-

Application

GetOpenFilename

Methode

-

Application

GetSaveAsFilename

Methode

-

Application

Help

Methode

-

Application

InputBox

Methode

-

Application

LibraryPath

Eigenschaft

-

Application

MacroOptions

Methode

-

Application

NetworkTemplatesPath

Eigenschaft

-

Application

OnCalculate

Eigenschaft

Ausgeblendet im Objektmodell

Application

OnData

Eigenschaft

Ausgeblendet im Objektmodell

Application

OnDoubleClick

Eigenschaft

Ausgeblendet im Objektmodell

Application

OnEntry

Eigenschaft

Ausgeblendet im Objektmodell

Application

OnKey

Methode

-

Application

OnRepeat

Methode

-

Application

OnSheetActivate

Eigenschaft

Ausgeblendet im Objektmodell

Application

OnSheetDeactivate

Eigenschaft

Ausgeblendet im Objektmodell

Application

OnTime

Methode

-

Application

OnUndo

Methode

-

Application

OnWindow

Eigenschaft

-

Application

Path

Eigenschaft

-

Application

RegisterXLL

Methode

-

Application

Run

Methode

-

Application

SaveWorkspace

Methode

-

Application

StartupPath

Eigenschaft

-

Application

TemplatesPath

Eigenschaft

-

Chart

CheckSpelling

Methode

-

Chart

Export

Methode

-

Chart

OnDoubleClick

Eigenschaft

Ausgeblendet im Objektmodell

Chart

OnSheetActivate

Eigenschaft

Ausgeblendet im Objektmodell

Chart

OnSheetDeactivate

Eigenschaft

Ausgeblendet im Objektmodell

Chart

PrintOut

Methode

Ab Excel 2000

Chart

SaveAs

Methode

-

Chart

SetBackgroundPicture

Methode

-

ChartFillFormat

TextureName

Eigenschaft

-

ChartFillFormat

UserPicture

Methode

-

ChartFillFormat

UserTextured

Methode

-

Charts

Add

Methode

-

Charts

PrintOut

Methode

Ab Excel 2000

Fill

TextureName

Eigenschaft

-

Fill

UserPicture

Methode

-

Fill

UserTextured

Methode

-

FillFormat

TextureName

Eigenschaft

-

FillFormat

UserPicture

Methode

-

FillFormat

UserTextured

Methode

-

Hyperlink

Address

Eigenschaft

-

Hyperlink

CreateNewDocument

Methode

Ab Excel 2000

Hyperlink

Name

Eigenschaft

-

Hyperlinks

Add

Methode

-

OLEObjects

Add

Methode

-

PivotCache

Connection

Eigenschaft

-

PivotCache

SQL

Eigenschaft

-

PivotTable

PivotTableWizard

Methode

-

PivotTable

SourceData

Eigenschaft

-

PublishObject

FileName

Eigenschaft

-

PublishObjects

Add

Methode

-

QueryTable

Connection

Eigenschaft

-

QueryTable

SQL

Eigenschaft

-

QueryTables

Add

Methode

-

Range

Consolidate

Methode

-

Range

PrintOut

Methode

Ab Excel 2000

RecentFile

Name

Eigenschaft

-

RecentFile

Path

Eigenschaft

-

RecentFiles

Add

Methode

-

Shape

OnAction

Eigenschaft

-

Shapes

AddOLEObject

Methode

-

Shapes

AddPicture

Methode

-

Sheets

Add

Methode

-

SoundNote

Import

Methode

-

Window

Close

Methode

-

Window

OnWindow

Eigenschaft

-

Window

PrintOut

Methode

Ab Excel 2000

Workbook

ChangeLink

Methode

-

Workbook

Close

Methode

-

Workbook

FollowHyperlink

Methode

-

Workbook

FullName

Eigenschaft

-

Workbook

LinkInfo

Methode

-

Workbook

MergeWorkbook

Methode

-

Workbook

Name

Eigenschaft

-

Workbook

OnSave

Eigenschaft

Ausgeblendet im Objektmodell

Workbook

OnSheetActivate

Eigenschaft

Ausgeblendet im Objektmodell

Workbook

OnSheetDeactivate

Eigenschaft

Ausgeblendet im Objektmodell

Workbook

OpenLinks

Methode

-

Workbook

Path

Eigenschaft

-

Workbook

PrintOut

Methode

Ab Excel 2000

Workbook

ProtectSharing

Methode

-

Workbook

SaveAs

Methode

-

Workbook

SaveCopyAs

Methode

-

Workbook

SetLinkOnData

Methode

-

Workbook

UpdateLink

Methode

-

Workbooks

Add

Methode

-

Workbooks

Open

Methode

-

Workbooks

OpenDatabase

Methode

Ab Excel 2002

Workbooks

OpenText

Methode

-

Workbooks

OpenXML

Methode

Ab Excel 2002

Worksheet

ConsolidationSources

Eigenschaft

-

Worksheet

OnCalculate

Eigenschaft

Ausgeblendet im Objektmodell

Worksheet

OnData

Eigenschaft

Ausgeblendet im Objektmodell

Worksheet

OnDoubleClick

Eigenschaft

Ausgeblendet im Objektmodell

Worksheet

OnEntry

Eigenschaft

Ausgeblendet im Objektmodell

Worksheet

OnSheetActivate

Eigenschaft

Ausgeblendet im Objektmodell

Worksheet

OnSheetDeactivate

Eigenschaft

Ausgeblendet im Objektmodell

Worksheet

PasteSpecial

Methode

-

Worksheet

PivotTableWizard

Methode

-

Worksheet

PrintOut

Methode

Ab Excel 2000

Worksheet

SaveAs

Methode

-

Worksheet

SetBackgroundPicture

Methode

-

Worksheets

Add

Methode

-

Worksheets

PrintOut

Methode

Ab Excel 2000

 

To Top


Methoden und Eigenschaften des Office-Objektmodells

 

Aufsteigend sortiert nach Objekt/Klasse und Element.

Objekt/Klasse Element Typ Bemerkung
Assistant FileName Eigenschaft -
CommandBarButton HelpFile Eigenschaft -
CommandBarButton OnAction Eigenschaft -
CommandBarComboBox HelpFile Eigenschaft -
CommandBarComboBox OnAction Eigenschaft -
CommandBarControl HelpFile Eigenschaft -
CommandBarControl OnAction Eigenschaft -
CommandBarPopup HelpFile Eigenschaft -
CommandBarPopup OnAction Eigenschaft -
FileSearch FileName Eigenschaft Nur Windows
FileSearch FoundFiles Eigenschaft Nur Windows. Gibt ein FoundFiles-Objekt zurück.
FileSearch LookIn Eigenschaft Nur Windows
FoundFiles LookIn Eigenschaft Nur Windows
IFind Results Eigenschaft Nur Macintosh. Gibt ein FileFindResults-Objekt (IFoundFiles) zurück.
IFind SearchPath Eigenschaft Nur Macintosh
IFoundFiles Item Eigenschaft Nur Macintosh

 

To Top


Methoden und Eigenschaften des MSForms-Objektmodells

Aufsteigend sortiert nach Objekt/Klasse und Element.

 

Objekt/Klasse Element Typ Bemerkung
CheckBox MouseIcon Eigenschaft -
CheckBox Picture Eigenschaft -
ComboBox MouseIcon Eigenschaft -
CommandButton MouseIcon Eigenschaft -
CommandButton Picture Eigenschaft -
Frame MouseIcon Eigenschaft -
Frame Picture Eigenschaft -
Image MouseIcon Eigenschaft -
Image Picture Eigenschaft -
Label MouseIcon Eigenschaft -
Label Picture Eigenschaft -
ListBox MouseIcon Eigenschaft -
OptionButton MouseIcon Eigenschaft -
OptionButton Picture Eigenschaft -
Page Picture Eigenschaft -
ScrollBar MouseIcon Eigenschaft -
SpinButton MouseIcon Eigenschaft -
TabStrip MouseIcon Eigenschaft -
TextBox MouseIcon Eigenschaft -
ToggleButton MouseIcon Eigenschaft -
ToggleButton Picture Eigenschaft -
UserForm MouseIcon Eigenschaft -
UserForm Picture Eigenschaft -

 

To Top


Methoden und Eigenschaften des VBIDE-Objektmodells

Aufsteigend sortiert nach Objekt/Klasse und Element.

 

Objekt/Klasse Element Typ Bemerkung
CodeModule AddFromFile Methode -
Reference FullPath Eigenschaft -
Reference Name Eigenschaft -
References AddFromFile Methode -
VBComponent Export Methode -
VBComponent InsertFile Methode Ab Excel 2000
VBComponent SaveAs Methode Ab Excel 2000. Kann nur bei Standalone-Projekten verwendet werden.
VBComponents Import Methode -
VBProject BuildFileName Eigenschaft Ab Excel 2000
VBProject FileName Eigenschaft Ab Excel 2000
VBProject HelpFile Eigenschaft -
VBProject SaveAs Methode Ab Excel 2000. Kann nur bei Standalone-Projekten verwendet werden.

 

Zum Seitenanfang


Pfade an anderen Stellen

- Pfad der Hyperlink-Basis in den Dokument-Eigenschaften
Siehe auch unter Hyperlink-Basis

 

To Top


- Pfad der Hilfedatei des VBA-Projektes
Siehe auch unter Projekteigenschaften

 

To Top


- Pfade von Verweisen im VBA-Projekt

 

To Top


- Pfade in Makrozuweisungen von Symbolleisten-Steuerelementen

 

To Top


- Pfade in Hyperlinks von Symbolleisten-Steuerelementen

 

To Top


- Pfade in Benutzerformularen und Steuerelementen

 

Zum Kapitelanfang Zum Seitenanfang


Unterschiede bei Dateitypen und Dateiformaten

Allgemeines

...

Datei mit Format CSV (Macintosh) im Editor
Abbildung: Datei mit Format CSV (Macintosh) im Editor

 

Datei mit Format CSV (OS/2 oder MS-DOS) im Editor
Abbildung: Datei mit Format CSV (OS/2 oder MS-DOS) im Editor

 

 

Dateityp Beschreibung
Text (Tabs getrennt)  
Text (Macintosh)  
Text (OS/2 oder MS-DOS)  
CSV (Komma getrennt)  
CSV (Macintosh)  
CSV (OS/2 oder MS-DOS)  

 

Verwandte Themen
Unterschiede bei integrierten Konstanten
Dateiformate (Konstanten)

Zum Kapitelanfang Zum Seitenanfang


Unterschiede bei Excel-Tabellenfunktionen

Allgemeines

Sämtliche Tabellenfunktionen funktionieren in den neueren Excelversionen, d.h. ab Excel 97 für Windows bzw. Excel 98 für Macintosh, absolut identisch. Es existieren diesbezüglich keinerlei Inkompatibilitäten zwischen den Excelversionen für Windows und Macintosh. Man muss allerdings beachten, dass einzelne Excel-Tabellenfunktionen je nach Plattform unterschiedliche Resultate liefern. Nachfolgend die wichtigsten Unterschiede (Liste nicht abschliessend).

Informationsfunktionen
- INFO
- ZELLE

Textfunktionen
- SÄUBERN
- ZEICHEN
- CODE

Datums- und Zeitfunktionen
- DATUM
- DATWERT
- HEUTE
- JETZT
- JAHR

Matrixfunktionen
- HYPERLINK

Zum Seitenanfang


Tabellenfunktion INFO

Die Tabellenfunktion INFO liefert Informationen zu der aktuellen Betriebssystemumgebung. Sie funktioniert unter Windows und auf Macintosh identisch.

Bei der Tabellenfunktion INFO muss lediglich beachtet werden, dass bei Verwendung des Infotyps "Verzeichnis" (oder "Directory") der Pfad des aktuellen Verzeichnisses zurückgegeben wird, und zwar in der Schreibweise der gerade verwendeten Plattform. In Microsoft Excel für Windows könnte dies beispielsweise "C:\Daten\Excel" sein, während Microsoft Excel für Macintosh "HD:Daten:Excel" zurückgibt.

Die Infotypen "System", "SysVersion" (bzw. "OSVersion") und "Version" liefern das aktuelle Betriebssystem, die Betriebssystemversion sowie die Excelversion. All diese Informationen sind je nach verwendeter Plattform unterschiedlich.

Verwandte Themen
Dateipfade
Abfragen der Ausführungsumgebung

Zum Seitenanfang


Tabellenfunktion ZELLE

Die Tabellenfunktion ZELLE liefert Informationen zu der Formatierung, der Position oder dem Inhalt einer Zelle.

Bei der Tabellenfunktion ZELLE muss bei Verwendung des Infotyps "Dateiname" darauf geachtet werden, dass der zurückgegebene Dateiname, welcher den vollständigen Dateipfad enthält, je nach Plattform die Windows- oder die Macintosh-Schreibweise besitzt.

Mit dem Infotyp "Adresse" wird eine Zelladresse zurückgegeben. Befindet sich die Zelle auf einem anderen Arbeitsblatt, wird zusätzlich zum Blattname immer auch der Dateiname der Arbeitsmappe geliefert.

Verwandte Themen
Dateipfade

Zum Seitenanfang


Tabellenfunktion SÄUBERN

Die Tabellenfunktion SÄUBERN löscht alle nicht druckbaren Zeichen aus einem Text. Verwenden Sie SÄUBERN für Texte, die aus anderen Anwendungsprogrammen importiert wurden und eventuell Zeichen enthalten, die das von Ihnen verwendete Betriebssystem nicht drucken kann. Beispielsweise können Sie SÄUBERN dazu einsetzen, maschinennahen Code zu entfernen, der sich häufig am Anfang und Ende einer Datendatei befindet und nicht gedruckt werden kann.

Auch die Tabellenfunktion SÄUBERN kann somit unterschiedliche Ergebnisse erzeugen, da sie das eingesetzte Betriebssystem berücksichtigt.

Zum Seitenanfang


Tabellenfunktion ZEICHEN

Die Tabellenfunktion ZEICHEN liefert das der Codezahl entsprechende Zeichen. Verwenden Sie ZEICHEN, um Zahlen in einer anderen Kodierung, die Sie aus Dateien erhalten, die auf Rechnern anderen Typs erstellt wurden, in Zeichen umzuwandeln.

Bei Microsoft Excel für Windows gibt die Tabellenfunktion ZEICHEN ein Zeichen des ANSI-Zeichensatzes zurück. Bei Microsoft Excel für Macintosh dagegen liefert ZEICHEN ein Zeichen des Macintosh-Zeichensatzes. Man darf somit nicht davon ausgehen, dass man in beiden Excel-Programmen das gleiche Zeichen erhält.

Systemumgebung Zeichensatz
Windows ANSI
Macintosh Macintosh-Zeichensatz

Beispiel:

=ZEICHEN(189)

Liefert unter Windows das Zeichen "½".

 

Verwandte Themen
Sonderzeichen

Zum Seitenanfang


Tabellenfunktion CODE

Die Tabellenfunktion CODE liefert die Codezahl des ersten Zeichens in einem Text. Die ausgegebene Codezahl entspricht dem Zeichensatz, mit dem der verwendete Rechner arbeitet.

Bei Microsoft Excel für Windows gibt die Tabellenfunktion CODE eine Codezahl des ANSI-Zeichensatzes zurück. Bei Microsoft Excel für Macintosh dagegen liefert CODE eine Codezahl des Macintosh-Zeichensatzes. Man darf somit nicht davon ausgehen, dass man in beiden Excel-Programmen die gleiche Codezahl erhält.

Systemumgebung Zeichensatz
Windows ANSI
Macintosh Macintosh-Zeichensatz

Verwandte Themen
Sonderzeichen

Zum Seitenanfang


Tabellenfunktion DATUM

Die Tabellenfunktion DATUM liefert die fortlaufende Zahl des angegebenen Datums.

Syntax

DATUM(Jahr,Monat,Tag)

Die DATUM-Tabellenfunktion verwendet die folgenden Argumente:

Teil Beschreibung
Jahr Jahr ist in Microsoft Excel für Windows eine ganze Zahl im Bereich von 1900 bis 9999 oder in Microsoft Excel für den Macintosh im Bereich von 1904 bis 9999.
Monat Monat ist eine Zahl, die den Monat des jeweiligen Jahres angibt. Ist Monat grösser als 12, addiert Monat die Zahl der Monate zu dem ersten Monat des angegebenen Jahres hinzu. So liefert beispielsweise DATUM(90;14;2) die fortlaufende Zahl, die dem 2. Februar 1991 entspricht.
Tag Tag ist eine Zahl, die den Tag des jeweiligen Monats angibt. Ist Tag grösser als die Anzahl der Tage des angegebenen Monats, addiert Tag die Zahl der Tage zu dem ersten Tag des angegebenen Monats hinzu. So liefert beispielsweise DATUM(91;1;35) die fortlaufende Zahl, die dem 4. Februar 1991 entspricht.

Beispiele

- Bei Einsatz des 1900-Datumssystems (Standard in Microsoft Excel für Windows), liefert DATUM(91; 1; 1) den Wert 33239. Dies ist die fortlaufende Zahl, die dem 1. Januar 1991 entspricht.

- Bei Einsatz des 1904-Datumssystems (Standard in Microsoft Excel für den Macintosh), liefert DATUM(91; 1; 1) den Wert 31777. Dies ist die fortlaufende Zahl, die dem 1. Januar 1991 entspricht.

Verwandte Themen
1900- und 1904-Datumssystem von Microsoft Excel

Zum Seitenanfang


Tabellenfunktion DATWERT

Die Tabellenfunktion DATWERT wandelt ein als Text vorliegendes Datum in eine fortlaufende Zahl um. Verwenden Sie DATWERT, wenn Sie ein in Textform vorliegendes Datum in eine fortlaufende Zahl umwandeln möchten.

Der bei DATWERT angegebene Datumstext ist ein Text, der ein Tagesdatum in einem der Microsoft Excel-Datumsformate angibt. Wird mit dem standardmässigen Datumssystem von Microsoft Excel für Windows gearbeitet, muss Datumstext ein Datum darstellen, das zwischen dem 1. Januar 1900 und dem 31. Dezember 9999 liegt. Wird mit dem standardmässigen Datumssystem von Microsoft Excel für den Macintosh gearbeitet, muss Datumstext ein Datum darstellen, das zwischen dem 1. Januar 1904 und dem 31. Dezember 9999 liegt. Entspricht Datumstext einem Datum, das ausserhalb dieses Bereichs liegt, liefert DATWERT den Fehlerwert #WERT!.

Verwandte Themen
1900- und 1904-Datumssystem von Microsoft Excel

Zum Seitenanfang


Tabellenfunktion HEUTE

Die Tabellenfunktion HEUTE liefert die fortlaufende Zahl des heutigen Datums. Eine fortlaufende Zahl ist eine Datums- oder Zeitangabe in der Kodierung, die Microsoft Excel für Datums- und Zeitberechnungen verwendet.

Verwandte Themen
1900- und 1904-Datumssystem von Microsoft Excel

Zum Seitenanfang


Tabellenfunktion JETZT

Die Tabellenfunktion JETZT liefert die fortlaufende Zahl des aktuellen Datums und der aktuellen Uhrzeit. Eine fortlaufende Zahl ist eine Datums- oder Zeitangabe in der Kodierung, die Microsoft Excel für Datums- und Zeitberechnungen verwendet.

Verwandte Themen
1900- und 1904-Datumssystem von Microsoft Excel

Zum Seitenanfang


Tabellenfunktion JAHR

Die Tabellenfunktion JAHR wandelt eine fortlaufende Zahl in eine Jahreszahl um. Das Jahr wird als ganze Zahl ausgegeben, die einen Wert von 1900 bis 9999 annehmen kann.

Syntax

JAHR(Zahl)

Die JAHR-Tabellenfunktion verwendet die folgenden Argumente:

Teil Beschreibung
Zahl Zahl ist die Kodierung für Datum und Zeit, die Microsoft Excel für Datums- und Zeitberechnungen verwendet. Sie müssen das Argument Zahl nicht zwingend als Zahl, sondern können es auch als Text angeben, also zum Beispiel "15. April 1993" oder "15.4.93". Ein solcher Text wird automatisch in die entsprechende fortlaufende Zahl umgewandelt.

Hinweis

Microsoft Excel für Windows und Microsoft Excel für den Macintosh verwenden unterschiedliche Standard-Datumssysteme.

Beispiele

Unabhängig vom verwendeten Datumssystem

JAHR("5.7.90") liefert den Wert 1990

1900-Datumssystem (Voreinstellung in Microsoft Excel für Windows)

JAHR(0,007) liefert den Wert 1900

JAHR(29747,007) liefert den Wert 1981

1904-Datumssystem (Voreinstellung in Microsoft Excel für Macintosh)

JAHR(0,007) liefert den Wert 1904

JAHR(29747,007) liefert den Wert 1985

Verwandte Themen
1900- und 1904-Datumssystem von Microsoft Excel

Zum Seitenanfang


Tabellenfunktion HYPERLINK

Die Tabellenfunktion HYPERLINK erstellt eine Verknüpfung oder einen Sprung über die ein auf einem Netzwerk-Server, im Intranet oder im Internet gespeicherte Datei geöffnet wird. Beim Klicken auf die Zelle mit der Funktion HYPERLINK öffnet Microsoft Excel 97 die in Hyperlink_Adresse gespeicherte Datei.

Syntax

HYPERLINK(Hyperlink_Adresse;Freundlicher_Name)

Die HYPERLINK-Tabellenfunktion verwendet die folgenden Argumente:

Teil Beschreibung
Hyperlink_Adresse Erforderlich. Hyperlink_Adresse ist der Pfad- und Dateiname der Datei, die als Text geöffnet werden soll. Hyperlink_Adresse kann ein Bezug zu einer Stelle in einem Dokument, beispielsweise eine bestimmte Zelle oder ein benannter Bereich in einer Microsoft Excel-Tabelle oder -Arbeitsmappe oder zu einer Textmarke in einem Microsoft Word-Dokument sein. Der Pfad kann entweder eine auf einer Festplatte gespeicherte verweisen, oder ein UNC (Universal Naming Convention)-Pfad auf einem Server (in Microsoft Excel 97 für Windows) oder ein URL (Uniform Resource Locator)-Pfad im Internet oder einem Intranet sein.
Freundlicher_Name Optional. Freundlicher_Name ist der Sprungtext oder eine Zahl, die in der Zelle angezeigt wird. Freundlicher_Name wird blau und unterstrichen angezeigt. Wird Freundlicher_Name nicht angegeben, wird in der Zelle die Hyperlink_Adresse als Sprungtext angezeigt.

Hinweise

- Hyperlink_Adresse ist entweder eine in Anführungszeichen eingeschlossene Zeichenfolge oder eine Zelle, welche die Verknüpfung als Textzeichenfolge enthält.
- Freundlicher_Name kann ein Wert, eine Textzeichenfolge, ein Name oder eine Zelle sein, die den Sprungtext oder den Wert enthält.
- Gibt Freundlicher_Name einen Fehlerwert (beispielsweise #WERT!), wird in der Zelle der Fehler anstelle des Sprungtextes angezeigt.
- Wenn der durch Hyperlink_Adresse festgelegte Sprung nicht existiert oder nicht erreichbar ist, entsteht beim Klicken auf die Zelle ein Fehler.
- Um eine Zelle, die HYPERLINK enthält zu markieren, klicken Sie auf eine Zelle daneben, und verwenden Sie eine Pfeiltaste, um sich zu der Zelle zu bewegen.

Beispiele

Im folgenden Beispiel wird ein Tabellenblatt mit dem Namen Budget Bericht.xls geöffnet, das im Internet am Speicherort mit dem Namen www.betrieb.com/bericht befindet und zeigt den Text "Für Bericht hier klicken" an:

HYPERLINK("http://www.betrieb.com/bericht/jahresbericht.xls"; "Für Bericht hier klicken")

Im folgenden Beispiel wird ein Hyperlink zur Zelle F10 auf dem Tabellenblatt mit dem Namen jährlich in der Arbeitsmappe Budget Bericht.xls erstellt, das sich im Internet am Speicherort www.betrieb.com/bericht befindet. In der Zelle im Tabellenblatt, die den Hyperlink enthält, wird der Inhalt der Zelle D1 als Sprungtext angezeigt:

HYPERLINK("[http://www.betrieb.com/bericht/jahresbericht.xls]jährlich!F10"; D1)

Im folgenden Beispiel wird ein Hyperlink zum Bereich mit dem Namen AbteilÜbersicht im Tabellenblatt mit dem Namen Erstes Quartal in der Arbeitsmappe Budget Bericht.xls erstellt, die sich im Internet an dem Speicherort mit dem Namen www.betrieb.com/bericht befindet. Die Zelle im Tabellenblatt, die den Hyperlink enthält, zeigt den Text "Klicken Sie hier, um eine Übersicht über das Erste Quartal der Abteilung zu erhalten" an:

HYPERLINK("[http://www.betrieb.com/bericht/jahresbericht.xls]Erstes Quartal!AbteilÜbersicht"; "Klicken Sie hier, um eine Übersicht über das Erste Quartal der Abteilung zu erhalten")

Um einen Hyperlink zu einer bestimmten Stelle in einem Microsoft Word-Dokument zu erstellen, müssen Sie eine Textmarke verwenden, um die Stelle im Dokument festzulegen, zu der gesprungen werden soll. Im folgenden Beispiel wird ein Hyperlink zu einer Textmarke mit dem Namen QrtlErtrag in dem Dokument mit dem Namen Jahresbericht.doc bei www.betrieb.com erstellt:

HYPERLINK("[http://www.betrieb.com/bericht/jahresbericht.doc]QrtlErtrag"; "Vierteljährlicher Ertragsbericht")

In Microsoft Excel 97 für Windows zeigt beim folgenden Beispiel der Inhalt der Zelle D5 als Sprungtext in der Zelle an und öffnet die Datei mit dem Namen qrtl1.xls, die sich auf einem Server mit dem Namen FINANZ auf der Freigabe Angaben befindet. In diesem Beispiel wird ein UNC-Pfad verwendet:

HYPERLINK("\\FINANZ\Angaben\qrtl1.xls"; D5)

Im folgenden Beispiel wird die Datei qrtl1.xls in Microsoft Excel 97 für Windows geöffnet, die sich in einem Verzeichnis mit dem Namen Finanz auf dem Laufwerk D befindet und der Wert von Zelle H10 angezeigt:

HYPERLINK("D:\FINANZ\qrtl1.xls"; H10)

Verwandte Themen
Dateipfade

Zum Kapitelanfang Zum Seitenanfang


Unterschiede bei Formular-Steuerelementen

Allgemeines

Formular-Steuerelemente stehen sowohl in Microsoft Excel für Windows als auch in Miccrosoft Excel für Macintosh zur Verfügung. Sie sind uneingeschränkt zwischen den verschiedenen Excelversionen kompatibel.

Einige Formular-Steuerelemente können einen so genannten Listenbereich und/oder eine Ausgabeverknüpfung besitzen. Beide Eigenschaften erlauben die Verwendung von Zellbereichen, die sich in einer anderen Arbeitsmappe befinden.

 

 

Steuerung-Eigenschaften eines Formular-Steuerelementes
Abbildung: Steuerung-Eigenschaften eines Formular-Steuerelementes

 

Wenn der Listenbereich beziehungsweise die Ausgabeverknüpfung eines Formular-Steuerelementes einen Bezug auf eine andere Arbeitsmappe enthält, so wird in der Arbeitsmappendatei ein SUPBOOK-Record geschrieben, der den relativen Pfad zur anderen Mappe enthält.

 

Zum Seitenanfang


Formular-Steuerelemente

CheckBox-Steuerelement (Kontrollkästchen)

- Pfad in Ausgabeverknüpfung

 

OptionButton-Steuerelement (Optionsfeld)

- Pfad in Ausgabeverknüpfung

 

DropDown-Steuerelement (Kombinationsfeld)

- Pfad in Listenbereich

- Pfad in Ausgabeverknüpfung

 

ListBox-Steuerelement (Listenfeld)

- Pfad in Listenbereich

- Pfad in Ausgabeverknüpfung

 

ScrollBar-Steuerelement (Bildlaufleiste)

- Pfad in Ausgabeverknüpfung

 

SpinButton-Steuerelement (Drehfeld)

- Pfad in Ausgabeverknüpfung

Zum Kapitelanfang Zum Seitenanfang


Unterschiede in der Programmiersprache VBA

Allgemeines

In diesem Kapitel geht es um diejenigen Sprachelemente von VBA, die auf Macintosh und unter Windows verschieden sind.

nicht auf beiden Plattformen funktionieren,

unterschiedliche Ergebnisse liefern

 

Insbesondere in diesen Bereichen gibt es Unterschiede:
» Laufwerks-, Verzeichnis- und Dateinamen (auf Macintosh werden andere Zeichen verwendet)
» Dateioperationen und Dateizugriffe (Unterschiede bei SetAttr, Dir, Kill, Name usw.)
» Dateisuche (FileFind-Objekt auf Macintosh)
» Systemumgebung (z.B. Environ)
» Registry-Zugriffe (auf Macintosh werden Anwendungs-Initialisierungsdateien verwendet)
» ActiveX-Controls (existieren nur in Windows)
» Grafik-Dateiformate (PICT auf Macintosh)
» API-Funktionen (Macintosh verwendet Code Ressourcen und nicht DLLs)

Gewöhnlich sind existierende Unterschiede und Spezialitäten direkt im jeweiligen Thema in der VBA-Referenz beschrieben. Leider sind sie nur sehr schwierig aufzuspüren, da es keine Übersicht aller Unterschiede zwischen VBA von Windows und Macintosh gibt.

Nachfolgend werden sämtliche derzeit bekannten Unterschiede ausführlich beschrieben. Die Microsoft VBA-Referenz enthält mehrere Fehler, die in den nachstehenden Beschreibungen korrigiert sind.

Zum Seitenanfang


Übersicht der Unterschiede

Element Typ Element von Bibliothek
Shell Funktion VBA VBA
Name Anweisung VBA VBA
Dir Funktion VBA VBA
SetAttr Anweisung VBA VBA
GetAttr Funktion VBA VBA
CurDir Funktion VBA VBA
ChDir Anweisung VBA VBA
ChDrive Anweisung VBA VBA
Kill Anweisung VBA VBA
AppActivate Anweisung VBA VBA
GetObject Funktion VBA VBA
Raise Methode Err-Objekt VBA
FreeFile Funktion VBA VBA
SendKeys Anweisung VBA VBA
StrConv Funktion VBA VBA
AscW Funktion VBA VBA
ChrW Funktion VBA VBA
Timer Funktion VBA VBA
RGB Funktion VBA VBA
Date Anweisung VBA VBA
Declare Anweisung VBA VBA
CDecl Schlüsselwort VBA VBA
MacScript Funktion VBA VBA
MacID Funktion VBA VBA
MsgBox Funktion VBA VBA
InputBox Funktion VBA VBA
Option Compare Anweisung VBA VBA
Environ Funktion VBA VBA
LastDLLError Eigenschaft Err-Objekt VBA

Zum Seitenanfang


Shell-Funktion

Shell führt ein ausführbares Programm aus. Falls erfolgreich, gibt sie einen Wert vom Typ Variant (Double) zurück, der die Task-ID des Programms darstellt. Andernfalls wird Null zurückgegeben.

Syntax

Shell(Pathname[, WindowStyle])

Die Syntax der Shell-Funktion verwendet die folgenden benannten Argumente:

Teil Beschreibung
Pathname Erforderlich. Wert vom Typ Variant (String). Name des auszuführenden Programms sowie alle erforderlichen Argumente oder Befehlszeilen-Optionen. Auch Verzeichnis-, Ordner- oder Laufwerksangaben können enthalten sein. Auf dem Macintosh können Sie mit der MacID-Funktion die Signatur einer Anwendung anstelle ihres Namens angeben.
WindowStyle Optional. Wert vom Typ Variant (Integer), der dem Stil des Fensters entspricht, in dem das Programm ausgeführt werden soll. Wenn WindowStyle nicht angegeben wird, erhält das Programm den Fokus und wird im minimierten Zustand gestartet. Auf dem Macintosh (System 7.0 oder höher) bestimmt WindowStyle lediglich, ob die Anwendung bei der Ausführung den Fokus erhält.

Die Werte des benannten Arguments WindowStyle sind folgendermassen definiert (Shell-Konstanten):

Konstante Wert Beschreibung
vbHide 0 Das Fenster ist ausgeblendet, und das ausgeblendete Fenster erhält den Fokus. Die Konstante vbHide kann auf Macintosh nicht verwendet werden.
vbNormalFocus 1 Das Fenster hat den Fokus, und die ursprüngliche Grösse und Position wird wiederhergestellt.
VbMinimizedFocus 2 Das Fenster wird als Symbol mit Fokus angezeigt.
vbMaximizedFocus 3 Das Fenster wird maximiert mit Fokus angezeigt.
vbNormalNoFocus 4 Die zuletzt verwendete Grösse und Position des Fensters wird wiederhergestellt. Das momentan aktive Fenster bleibt aktiv.
vbMinimizedNoFocus 6 Das Fenster wird als Symbol angezeigt. Das momentan aktive Fenster bleibt aktiv.

Die obigen Shell-Konstanten heissen auf beiden Plattformen gleich, besitzen aber zum Teil unterschiedliche Auswirkungen.

In Bezug auf Anzeige des Anwendungsfenster im Vordergrund oder Hintergrund gibt es Unterschiede. Auf dem Macintosh plazieren vbNormalFocus, vbMinimizedFocus und vbMaximizedFocus die Anwendung im Vordergrund. vbNormalNoFocus und vbMinimizedNoFocus plazieren die Anwendung im Hintergrund.

Bemerkungen

Wenn die Shell-Funktion die angegebene Datei erfolgreich ausführt, liefert sie die Task-ID des gestarteten Programmes zurück. Die Task-ID ist eine Zahl, die das ausgeführte Programm eindeutig kennzeichnet. Wenn die Shell-Funktion das angegebene Programm nicht starten kann, tritt ein Fehler auf.

Auf dem Macintosh können Sie mit der MacID-Funktion die Signatur einer Anwendung anstelle ihres Namens angeben. Im folgenden Beispiel wird die Signatur für Microsoft Word verwendet:

Shell MacID("MSWD")

In diesem Beispiel wird Microsoft Excel gestartet:

Shell MacID("XCEL")

Wenn Sie die MacID-Funktion mit Shell unter Microsoft Windows verwenden, tritt ein Fehler auf.

Weitere Beispiele

Dim Ergebnis As Long

' Unter Windows:
Ergebnis = Shell("C:\Windows\Calc.exe", vbNormalFocus)


' Auf Macintosh:
Ergebnis = Shell("Microsoft Excel")

Ergebnis = Shell(MacID("XCEL"))

Achtung!

In der Visual Basic Online-Hilfe steht, dass auch vbHide die Anwendung in den Hintergrund stellt. Diese Angabe ist jedoch falsch. Korrekt ist, dass vbHide auf einem Macintosh-System nicht verwendet werden kann. Zudem steht in der Online-Hilfe, dass vbNoFocus und vbMinimizeFocus die Anwendung im Hintergrund plazieren. Auch das stimmt nicht ganz, weil die Konstanten vbNormalNoFocus und vbMinimizedNoFocus heissen.

Anmerkung

Die Shell-Funktion startet ein Programm standardmässig asynchron. Daher muss ein mit Shell ausgeführtes Programm noch nicht abgeschlossen sein, wenn die nächsten Anweisungen, die auf die Shell-Funktion folgen, ausgeführt werden.

Tipp: ActivateMicrosoftApp-Methode für Microsoft-Anwendungen einsetzen
Wenn Sie in Ihrem VBA-Programm eine andere Microsoft-Anwendung starten wollen, können Sie anstelle der Shell-Funktion die Methode ActivateMicrosoftApp des Application-Objektes benutzen.

TODO

Verwandte Themen
MacID-Funktion
AppActivate-Anweisung
Unterschiede bei integrierten Konstanten

Detaillierte Informationen über das synchrone und asynchrone Starten von Programmen erhalten Sie hier:

Weitere Informationen

The SOSCQ Page: Starten von Programmen

Zum Seitenanfang


Name-Anweisung

Benennt eine Datei, ein Verzeichnis oder einen Ordner um. Die Name-Anweisung kann auch zum Verschieben einer Datei verwendet werden.

Syntax

Name AlterPfadname As NeuerPfadname

In den folgenden Beispielen wird die Name-Anweisung verwendet, um den Namen einer Datei zu ändern. Im Rahmen dieses Beispiels wird angenommen, dass die Verzeichnisse/Ordner bereits existieren. Auf dem Macintosh ist der Standardlaufwerkname "HD", und die Bestandteile des Pfadnamens sind durch Doppelpunkte statt umgekehrte Schrägstriche voneinander getrennt.

Beispiele

Dim AlterName As String
Dim NeuerName As String
AlterName = "DATEIALT"

NeuerName = "DATEINEU"
Name AlterName As NeuerName


' Unter Windows:
AlterName = "C:\VERZ1\DATEIALT"

NeuerName = "C:\VERZ2\DATEINEU"
Name AlterName As NeuerName


' Auf Macintosh:
AlterName = "HD:ORDNER1:DATEIALT"

NeuerName = "HD:ORDNER2:DATEINEU"
Name AlterName As NeuerName

Verwandte Themen
Unterschiede zwischen Windows und Macintosh: Dateipfade

Zum Seitenanfang


Dir-Funktion (Apple Power Macintosh)

Unter Microsoft Windows unterstützt die Dir-Funktion die Verwendung von Platzhaltern für mehrere Zeichen (*) und für ein einzelnes Zeichen (?), um mehrere Dateien anzugeben. Auf dem Macintosh werden diese Zeichen jedoch als gültige Zeichen von Dateinamen behandelt und können daher nicht als Platzhalter zum Angeben mehrerer Dateien verwendet werden. Da der Macintosh die Platzhalter nicht unterstützt, verwenden Sie den Dateityp, um Gruppen von Dateien zu kennzeichnen. Sie können die MacID-Funktion verwenden, um den Dateityp anstatt des Dateinamens anzugeben. Die folgende Anweisung gibt z.B. den Namen der ersten TEXT-Datei im aktuellen Ordner zurück:

Dir("Pfad2", MacID("TEXT"))

Sie können alle Dateien in einem Ordner durchlaufen, indem Sie eine leere Zeichenfolge angeben:

Dir("")

Wenn Sie die MacID-Funktion zusammen mit der Dir-Funktion in Microsoft Windows verwenden, tritt ein Fehler auf.

Attribut-Werte, die grösser als 256 sind, werden als MacID-Werte angesehen.

Gemäss VBA-Referenz sind die beiden folgenden Konstanten auf dem Macintosh nicht verfügbar:

Konstante Wert Beschreibung
vbSystem 4 Systemdatei
vbVolume 8 Datenträgerbezeichnung

Gemäss VBA-Referenz ist die folgende Konstante nur auf dem Macintosh verfügbar:

Konstante Wert Beschreibung
vbAlias 64 Der angegebene Dateiname ist ein Alias

Wichtiger Hinweis!

Bitte beachten Sie, dass die obigen, der VBA-Referenz entnommenen Informationen unvollständig sind! Korrekt ist, dass auf Macintosh nur diese vier und sonst keine anderen Konstanten für Dir verfügbar sind:
- vbNormal
- vbReadOnly
- vbHidden
- vbAlias

Alle anderen Konstanten sind auf Macintosh nicht erlaubt.

Eine vollständige Liste der Konstanten-Inkompatibilitäten finden Sie unter Unterschiede bei integrierten Konstanten.

Beispiel

' Dateityp mit der MacID-Funktion angeben.
' Die folgende Anweisung gibt die erste Datei mit dem Typ "TEXT"
' zurück, die im angegebenen Verzeichnis oder Ordner gefunden wurde.
Datei1 = Dir("HD:ORDNER1:", MacID("TEXT"))

Verwandte Themen
MacID-Funktion

Zum Seitenanfang


SetAttr-Anweisung und GetAttr-Funktion

Die SetAttr-Anweisung und die GetAttr-Funktion arbeiten unter Windows und Macintosh identisch. Es gibt aber Unterschiede bei den zur Verfügung stehenden Konstanten (sogenannte VbFileAttribute-Konstanten).

Gemäss VBA-Referenz sind die beiden folgenden Konstanten auf dem Macintosh nicht verfügbar:

Konstante Wert Beschreibung
vbSystem 4 Systemdatei
vbVolume 8 Datenträgerbezeichnung

Gemäss VBA-Referenz ist die folgende Konstante ausschliesslich auf dem Macintosh verfügbar:

Konstante Wert Beschreibung
vbAlias 64 Der angegebene Dateiname ist ein Alias

Wichtiger Hinweis!

Bitte beachten Sie, dass die obigen, der VBA-Referenz entnommenen Informationen unvollständig sind! Korrekt ist, dass auf dem Macintosh nur diese vier und sonst keine anderen Konstanten für SetAttr und GetAttr verfügbar sind:
- vbNormal
- vbReadOnly
- vbHidden
- vbAlias

Alle anderen Konstanten sind auf dem Macintosh nicht erlaubt und sollten daher nicht verwendet werden.

Eine vollständige Liste der Konstanten-Inkompatibilitäten finden Sie unter Unterschiede bei integrierten Konstanten.

Zum Seitenanfang


CurDir-Funktion

Gibt einen Wert vom Typ Variant (String) zurück, der den aktuellen Pfad darstellt.

Syntax

CurDir[(Laufwerk)]

Das optionale Argument Laufwerk ist ein Zeichenfolgenausdruck, der ein existierendes Laufwerk angibt. Ist kein Laufwerk angegeben, oder enthält das Laufwerk eine Null-Zeichenfolge (""), so gibt die CurDir-Funktion den Pfad des aktuellen Laufwerks zurück.

Anmerkung

Wenn für Laufwerk ein ungültiges Zeichen angegeben wird, so erscheint der Laufzeitfehler 5 "Unzulässiger Prozeduraufruf oder ungültiges Argument". Als Zeichen sind nur Buchstaben von a bis z beziehungsweise von A bis Z erlaubt.

Wird ein existierendes Laufwerk angegeben, welches aber nicht bereit ist, so wird das Stammverzeichnis des angegebenen Laufwerkes zurückgegeben (z.B. "A:\" beim Diskettenlaufwerk "A:", auch wenn keine Diskette eingelegt ist).

Wenn ein nicht vorhandenes Laufwerk angegeben wird, so tritt der Laufzeitfehler 68 "Gerät nicht verfügbar" auf.

Bemerkungen

Beim Macintosh ignoriert CurDir die Angabe für Laufwerk und gibt einfach den Pfad des aktuellen Laufwerks zurück. Wenn das Programm auf einem Macintosh ausgeführt wird, können Sie für Laufwerk irgend etwas angeben, weil es keinen Einfluss auf den von CurDir zurückgegebenen Pfad hat.

Verwandte Themen
ChDir-Anweisung
ChDrive-Anweisung

Zum Seitenanfang


ChDir-Anweisung

Wechselt das aktuelle Verzeichnis oder den aktuellen Ordner.

Syntax

ChDir Pfad

Das erforderliche Argument Pfad ist ein Zeichenfolgenausdruck, der angibt, welches Verzeichnis oder welcher Ordner zum neuen Standardverzeichnis oder -ordner wird. Pfad kann das Laufwerk beinhalten. Ist kein Laufwerk angegeben, so wechselt die ChDir-Anweisung das Standardverzeichnis oder den Standardordner auf dem aktuellen Laufwerk.

Anmerkung

Als Pfad kann auch ein UNC-Pfad (\\Server\Share...) angegeben werden, was bedeutet, dass ChDir korrekt zwischen UNC-Pfaden wechselt.

Achtung!

Beachten Sie bitte, dass im Gegensatz zu ChDir die Anweisung ChDrive keine UNC-Pfade verarbeiten kann (siehe unter ChDrive-Anweisung).

Bemerkungen

Die ChDir-Anweisung wechselt das Standardverzeichnis, aber nicht das Standardlaufwerk. Ist das Standardlaufwerk zum Beispiel C:, dann wechselt die folgende Anweisung zwar das Standardverzeichnis auf Laufwerk D:, aber C: bleibt das Standardlaufwerk. In diesem Beispiel ist die genau der Fall:

ChDir "D:\TMP"

Auf dem Power Macintosh ändert sich das Standardlaufwerk immer auf das Laufwerk, das in Pfad angegeben wird. Eine vollständige Pfadangabe beginnt mit dem Volumennamen, eine relative Pfadangabe beginnt mit einem Doppelpunkt (:). ChDir löst alle im Pfad angegebenen Aliase auf:

ChDir "MacDrive:Tmp"   ' Auf dem Macintosh (vollständiger Pfad)
ChDir ":Tmp"           ' Auf dem Macintosh (relativer Pfad)

Beim Wechseln relativer Verzeichnisse werden unter Microsoft Windows und auf dem Macintosh unterschiedliche Symbole verwendet:

ChDir ".."    ' Wechselt unter Microsoft Windows ein Verzeichnis nach oben
ChDir "::"    ' Wechselt auf dem Macintosh ein Verzeichnis nach oben

Verwandte Themen
CurDir-Funktion
ChDrive-Anweisung

Zum Seitenanfang


ChDrive-Anweisung

Mit der ChDrive-Anweisung wird das aktuelle Laufwerk gewechselt.

Syntax

ChDrive Laufwerk

Das erforderliche Argument Laufwerk ist ein Zeichenfolgenausdruck, der ein existierendes Laufwerk angibt. Wenn Sie eine Null-Zeichenfolge ("") angeben, ändert sich das aktuelle Laufwerk nicht. Ist das Argument Laufwerk eine Zeichenfolge mit mehreren Zeichen, so verwendet die ChDrive-Anweisung grundsätzlich nur das erste angegebene Zeichen.

Beim Macintosh wechselt ChDrive vom aktuellen Verzeichnis zum Stammverzeichnis des angegebenen Laufwerks.

Achtung!

Beachten Sie bitte, dass ChDrive keine UNC-Pfade bzw. mittels UNC ausgedrückte Laufwerksangaben verarbeitet. Wenn für Laufwerk ein UNC-Pfad bzw. -Laufwerk angegeben wird, erscheint ein Laufzeitfehler. Diesen können Sie verhindern, indem die Anweisung On Error Resume Next verwendet wird, oder indem geprüft wird, ob die ersten beiden Zeichen von Laufwerk umgekehrte Schrägstriche (\) sind.

Anmerkung

Die ChDir-Anweisung dagegen kann UNC-Pfade problemlos verarbeiten (siehe unter ChDir-Anweisung).

Bemerkungen

Immer wenn das angegebene Zeichen bzw. das erste der angegebenen Zeichen kein Buchstabe von a bis z beziehungsweise von A bis Z ist, so erscheint der Laufzeitfehler 5 "Unzulässiger Prozeduraufruf oder ungültiges Argument".

Verwandte Themen
CurDir-Funktion
ChDir-Anweisung

Zum Seitenanfang


Kill-Anweisung

Die Kill-Anweisung löscht eine oder mehrere Datei(en).

Syntax

Kill Pfadname

Das erforderliche Argument Pfadname ist ein Zeichenfolgenausdruck, der eine oder mehrere zu löschende Dateien angibt. Pfadname kann ein Verzeichnis oder einen Ordner sowie ein Laufwerk enthalten.

Anmerkung zu Windows

Unter Microsoft Windows unterstützt die Kill-Anweisung die Verwendung von Platzhaltern für mehrere Zeichen (*) und für ein einzelnes Zeichen (?), um mehrere Dateien anzugeben und zu löschen.

Anmerkung zu Macintosh

Auf dem Macintosh werden die Platzhalterzeichen * und ? als gültige Zeichen von Dateinamen behandelt und können daher nicht als Platzhalter zum Angeben mehrerer Dateien verwendet werden. Da der Macintosh diese Platzhalter nicht unterstützt, müssen Sie stattdessen den Dateityp verwenden, um Gruppen von Dateien zu kennzeichnen. Sie können die MacID-Funktion verwenden, um den Dateityp anstatt des Dateinamens anzugeben. Die folgende Anweisung löscht zum Beispiel alle TEXT-Dateien im aktuellen Ordner:

Kill MacID("TEXT")

Wenn Sie die MacID-Funktion zusammen mit der Kill-Anweisung in Microsoft Windows verwenden, tritt der Laufzeitfehler 13 "Typen unverträglich" auf:

Laufzeitfehler 13
Abbildung: Laufzeitfehler 13

Verwandte Themen
MacID-Funktion
Unterschiede zwischen Windows und Macintosh: Dateipfade

Zum Seitenanfang


AppActivate-Anweisung

Mit AppActivate wird ein Anwendungsfenster aktiviert.

Syntax

AppActivate Title[, Wait]

Die Syntax der AppActivate-Anweisung verwendet die folgenden benannten Argumente:

Teil Beschreibung
Title Erforderlich. Ein Zeichenfolgenausdruck, der den Titel in der Titelleiste des zu aktivierenden Anwendungsfensters angibt. Die von der Shell-Funktion zurückgegebene Task-ID kann anstelle von Title verwendet werden, um eine Anwendung zu aktivieren.
Wait Optional. Ein Wert vom Typ Boolean, der angibt, ob die aufrufende Anwendung den Fokus hat, bevor sie eine andere Anwendung aktiviert. Beim Wert False (Voreinstellung) wird die angegebene Anwendung mit sofortiger Wirkung aktiviert, auch wenn die aufrufende Anwendung nicht den Fokus hat. Beim Wert True wartet die aufrufende Anwendung, bis sie den Fokus erhält, und aktiviert dann die angegebene Anwendung.

Bemerkungen

Die AppActivate-Anweisung setzt den Fokus auf die angegebene Anwendung oder das angegebene Fenster, hat aber keinen Einfluss darauf, ob diese maximiert oder minimiert dargestellt werden. Das aktivierte Anwendungsfenster verliert den Fokus, wenn der Benutzer das Fenster schliesst oder den Fokus auf ein anderes Fenster setzt. Verwenden Sie die Shell-Funktion, wenn Sie eine Anwendung starten und den Fensterstil festlegen möchten.

Welche Anwendung aktiviert werden soll, wird bestimmt, indem Title mit der Zeichenfolge des Titels jeder einzelnen momentan ausgeführten Anwendung verglichen wird. Wenn es keine genaue Übereinstimmung gibt, wird eine beliebige Anwendung, deren Zeichenfolge mit Title beginnt, aktiviert. Wenn mehr als eine Instanz dieser Anwendung mit Title bezeichnet ist, wird eine der Instanzen willkürlich aktiviert.

Beispiele

Dim Ergebnis As Long

' Unter Windows und auf Macintosh:

AppActivate "Microsoft Word"

' Unter Windows:
Ergebnis = Shell("C:\Windows\Calc.exe", vbNormalFocus)
AppActivate Ergebnis

' Auf Macintosh:
Ergebnis = Shell(MacID("XCEL"))
AppActivate Ergebnis

Verwandte Themen
Shell-Funktion
MacID-Funktion

Weiterführende Informationen über das Aktivieren von Anwendungen erhalten Sie hier:

Dokumentation

The eXpLorer: Senden von Tastenbefehlen

Zum Seitenanfang


GetObject-Funktion

Die GetObject-Funktion gibt einen Verweis auf ein ActiveX-Objekt aus einer Datei zurück oder referenziert eine bereits laufende Server-Anwendung.

Syntax

GetObject([Pathname] [, Class])

Die Syntax der GetObject-Funktion verwendet die folgenden benannten Argumente:

Teil Beschreibung
Pathname Optional. Ein Wert vom Typ Variant (String). Der vollständige Pfad und Name der Datei, die das abzurufende Objekt enthält. Wird Pathname nicht angegeben, so ist Class erforderlich.
Class Optional. Ein Wert vom Typ Variant (String). Eine Zeichenfolge, die die Klasse des Objekts darstellt.

Wird eine Datei bei Pathname angegeben, so muss ihr Pfad- und Dateiname entsprechend den Namenskonventionen der aktuellen Plattform angepasst werden.

Verwandte Themen
Unterschiede zwischen Windows und Macintosh: Dateipfade

Zum Seitenanfang


Raise-Methode des Err-Objektes

Die Raise-Methode des Err-Objektes von VBA löst einen Laufzeitfehler aus.

Syntax

Err.Raise Number, [Source], [Description], [HelpFile], [HelpContext]

Die Raise-Methode funktioniert unter Windows und auf Macintosh identisch. Lediglich beim Argument HelpFile müssen Sie daran denken, dass der Pfad- und Dateiname der angegebenen Hilfedatei an die jeweils vorhandene Plattform angepasst werden muss.

Verwandte Themen
Unterschiede zwischen Windows und Macintosh: Dateipfade

Zum Seitenanfang


FreeFile-Funktion

Die FreeFile-Funktion gibt einen Wert vom Typ Integer zurück, der die nächste verfügbare Dateinummer darstellt, die die Open-Anweisung zum Öffnen einer Datei verwenden kann.

Syntax

FreeFile([Bereichsnummer])

Die FreeFile-Funktion funktioniert unter Windows und auf Macintosh genau gleich. Man muss jedoch beachten, dass je nach Konfiguration des Rechners (egal ob PC oder Macintosh) der Aufruf von FreeFile mehr oder weniger schnell zum Laufzeitfehler 67 "Zu viele Dateien" führen kann.

Verwandte Themen
Fehlermeldung: Zu viele Dateien (Fehler 67)

Zum Seitenanfang


SendKeys-Anweisung

SendKeys sendet eine Tastenfolge, die aus einem oder mehreren Tastenanschlägen bestehen kann, an das aktive Fenster, als ob sie über die Tastatur eingegeben worden wäre.

Es ist nicht eindeutig erkennbar, ob die SendKeys-Anweisung auf dem Macintosh verfügbar ist oder nicht.

TODO

Wenn Sie SendKeys auf dem Macintosh ausführen, tritt der Laufzeitfehler 5 "Unzulässiger Prozeduraufruf oder ungültiges Argument" auf.

Verwandte Themen
Senden von Tastenfolgen

Eine umfassende Dokumentation zum Thema "Senden von Tastenbefehlen" finden Sie hier:

Dokumentation

The eXpLorer: Senden von Tastenbefehlen

 

Zum Seitenanfang


StrConv-Funktion (StrConv-Konstanten)

Die StrConv-Funktion wandelt eine Zeichenfolge um. Sie gibt einen Wert vom Typ Variant (String) zurück, der wie angegeben umgewandelt wurde.

Syntax

StrConv(String, Conversion)

Die Einstellungen für das Argument Conversion sind:

Konstante Wert Beschreibung
vbUpperCase 1 Wandelt die Zeichenfolge in Grossbuchstaben um.
vbLowerCase 2 Wandelt die Zeichenfolge in Kleinbuchstaben um.
vbProperCase 3 Wandelt den Anfangsbuchstaben in jedem Wort der Zeichenfolge in einen Grossbuchstaben um.
vbWide 4 Wandelt schmale Zeichen (Einzelbyte) in der Zeichenfolge in breite Zeichen (Doppelbyte) um. Betrifft Gebietsschemata Fernost.
vbNarrow 8 Wandelt breite Zeichen (Doppelbyte) in der Zeichenfolge in schmale Zeichen (Einzelbyte) um. Betrifft Fernost-Gebietsschemata.
vbKatakana 16 Wandelt Hiragana-Zeichen in der Zeichenfolge in Katakana-Zeichen um. Betrifft nur Japan.
vbHiragana 32 Wandelt Katakana-Zeichen in der Zeichenfolge in Hiragana-Zeichen um. Betrifft nur Japan.
vbUnicode 64 Wandelt die Zeichenfolge unter Verwendung der Standard-Zeichenumsetzungstabelle des Systems in Unicode um. Nicht verfügbar auf dem Macintosh.
vbFromUnicode 128 Wandelt die Zeichenfolge unter Verwendung der Standard-Zeichenumsetzungstabelle des Systems aus Unicode um. Nicht verfügbar auf dem Macintosh.

Wie der obigen Tabelle entnommen werden kann, stehen die beiden Konstanten vbUnicode und vbFromUnicode auf dem Macintosh nicht zur Verfügung. Bei Verwendung dieser Konstanten auf Macintosh tritt ein Laufzeitfehler auf.

Eine vollständige Liste der Konstanten-Inkompatibilitäten finden Sie unter Unterschiede bei integrierten Konstanten.

Verwandte Themen
Unicode-Zeichenfolgen

Zum Seitenanfang


AscW-Funktion

Die Asc-Funktion gibt einen Wert vom Typ Integer zurück, der den Zeichencode entsprechend dem ersten Buchstaben in einer Zeichenfolge darstellt. Die AscW-Funktion gibt den Unicode-Zeichencode zurück.

Visual Basic für den Macintosh unterstützt keine Unicode-Zeichenfolgen. Daher kann AscW(n) nicht alle Unicode-Zeichen für n Werte im Bereich von 128 – 65'535 zurückgeben, wie das in der Windows-Umgebung passiert. Statt dessen versucht AscW(n), die Unicode-Werte zu "erraten", für die n grösser als 127 ist. Sie sollten daher AscW nicht in der Macintosh-Umgebung verwenden.

Verwandte Themen
Unicode-Zeichenfolgen

Zum Seitenanfang


ChrW-Funktion

Die Chr-Funktion gibt einen Wert vom Typ String zurück, der das Zeichen enthält, das dem angegebenen Zeichen-Code zugeordnet ist. Die ChrW-Funktion gibt einen Wert vom Typ String zurück, der das Unicode-Zeichen enthält.

Visual Basic für den Macintosh unterstützt keine Unicode-Zeichenfolgen. Deshalb kann ChrW(n) nicht wie in der Windows-Umgebung alle Unicode-Zeichen für n Werte im Bereich von 128 bis 65'535 zurückgeben. Statt dessen versucht ChrW(n), für Unicode-Werte, bei denen n grösser als 127 ist, den Wert zu "erraten". Sie sollten ChrW daher nicht in der Macintosh-Umgebung verwenden.

Anmerkung

In der Referenz von VBA 5 (Office 97 für Windows, Office 98 für Macintosh, Office 2001 für Macintosh und Office v.X für Macintosh) steht nicht exakt das gleiche wie in der Referenz von VBA 6 (ab Office 2000 für Windows bzw. ab Office 2004 für Macintosh). In der VBA 5-Referenz ist angegeben, dass auf Macintosh die ChrW-Funktion das gleiche Zeichen wie die Chr-Funktion zurückgibt. In der VBA 6-Referenz steht jedoch, dass man auf Macintosh die ChrW-Funktion nicht verwenden sollte.

Verwandte Themen
Unicode-Zeichenfolgen

Zum Seitenanfang


Timer-Funktion

Mit der Timer-Funktion erhält man einen Wert vom Typ Single (Gleitkommazahl mit einfacher Genauigkeit) zurück, der die Anzahl der seit Mitternacht vergangenen Sekunden angibt.

Unter Microsoft Windows gibt die Timer-Funktion Bruchteile einer Sekunde zurück (z.B. 48651.43). Die kleinste Einheit ist Hundertstel-Sekunde. Auf dem Macintosh ist die Einheit dagegen eine Sekunde.

Zum Seitenanfang


RGB-Funktion

Die RGB-Funktion gibt einen Wert vom Typ Long zurück, der einen RGB-Farbwert (red, green, blue) darstellt.

Die von dieser Funktion zurückgegebenen RGB-Farbwerte sind nicht mit den vom Macintosh-Betriebssystem zurückgegebenen Werten kompatibel. Sie können im Zusammenhang mit Microsoft-Anwendungen für den Macintosh verwendet werden, sollten aber nicht zum Einsatz kommen, wenn Farbänderungen direkt dem Macintosh-Betriebssystem mitgeteilt werden.

Zum Seitenanfang


SaveSetting-Anweisung

Speichert oder erstellt einen Eintrag einer Anwendung in der Windows-Registrierung oder, auf dem Macintosh, die entsprechenden Informationen in der Initialisierungsdatei der Anwendung.

Anmerkung zum Argument appname

Das Argument appname ist erforderlich und enthält einen Zeichenfolgenausdruck mit dem Namen der Anwendung oder des Projekts, deren/dessen Schlüsseleinstellungen angefordert werden. Auf dem Macintosh ist dies der Name der Initialisierungsdatei im Ordner Preferences aus dem Systemordner.

Zum Seitenanfang


GetSetting-Funktion

Gibt einen Wert einer Schlüsseleinstellung aus dem Eintrag einer Anwendung in der Windows-Registrierung oder, auf dem Macintosh, die entsprechenden Informationen aus der Initialisierungsdatei der Anwendung zurück.

Anmerkung zum Argument appname

Das Argument appname ist erforderlich und enthält einen Zeichenfolgenausdruck mit dem Namen der Anwendung oder des Projekts, deren/dessen Schlüsseleinstellungen angefordert werden. Auf dem Macintosh ist dies der Name der Initialisierungsdatei im Ordner Preferences aus dem Systemordner.

Zum Seitenanfang


GetAllSettings-Funktion

Gibt eine Liste von Schlüsseleinstellungen zusammen mit den zugehörigen Werten (die ursprünglich mit SaveSetting erstellt wurden) für den Eintrag einer Anwendung in der Windows-Registrierung oder, auf dem Macintosh, die entsprechenden Informationen aus der Initialisierungsdatei der Anwendung zurück.

Anmerkung zum Argument appname

Das Argument appname ist erforderlich und enthält einen Zeichenfolgenausdruck mit dem Namen der Anwendung oder des Projekts, deren/dessen Schlüsseleinstellungen angefordert werden. Auf dem Macintosh ist dies der Name der Initialisierungsdatei im Ordner Preferences aus dem Systemordner.

Zum Seitenanfang


DeleteSetting-Anweisung

Löscht einen Abschnitt oder eine Schlüsseleinstellung aus einem Eintrag einer Anwendung in der Windows-Registrierung oder, auf dem Macintosh, die entsprechenden Informationen in der Initialisierungsdatei der Anwendung.

Anmerkung zum Argument appname

Das Argument appname ist erforderlich und enthält einen Zeichenfolgenausdruck mit dem Namen der Anwendung oder des Projekts, deren/dessen Schlüsseleinstellungen angefordert werden. Auf dem Macintosh ist dies der Name der Initialisierungsdatei im Ordner Preferences aus dem Systemordner.

Zum Seitenanfang


Date-Anweisung

Stellt das aktuelle Systemdatum ein.

Syntax

Date = Datum

- Auf Systemen vom Typ Microsoft Windows 95 muss das mit dem Argument Datum angegebene Datum zwischen dem 1. Januar 1980 und dem 31. Dezember 2099 (einschliesslich) liegen.
- Auf Systemen vom Typ Microsoft Windows NT muss das mit dem Argument Datum angegebene Datum zwischen dem 1. Januar 1980 und dem 31. Dezember 2079 (einschliesslich) liegen.
- Beim Macintosh muss Datum ein Tag zwischen dem 1. Januar 1904 und dem 5. Februar 2040 sein.

Verwandte Themen
1900 und 1904 Datumssystem von Microsoft Excel

Zum Seitenanfang


Declare-Anweisung

Die Declare-Anweisung deklariert auf Modulebene Verweise auf externe Prozeduren in einer Dynamic Link Library (DLL) oder Code-Ressource (Macintosh).

Syntax 1

[Public | Private] Declare Sub Name Lib "BibName" [Alias "Aliasname"] [([ArgListe])]

Syntax 2

[Public | Private] Declare Function Name Lib "BibName" [Alias "Aliasname"] [([ArgListe])] [As Typ]

Syntax 3 (Power Macintosh)

[Public | Private ] Declare Function Name [CDecl] Lib "BibName" [Alias "Aliasname" ] [([ArgListe])] [As Typ]

Die Syntax der Declare-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
Public Optional. Deklariert Prozeduren, die allen anderen Prozeduren in allen Modulen zur Verfügung stehen.
Private Optional. Deklariert Prozeduren, die nur innerhalb des Moduls verfügbar sind, in dem sie deklariert wurden.
Sub Optional (entweder Sub oder Function muss auftreten). Die Prozedur gibt keinen Wert zurück.
Function Optional (entweder Sub oder Function muss auftreten). Die Prozedur gibt einen Wert zurück, der in einem Ausdruck verwendet werden kann.
Name Erforderlich. Ein beliebiger gültiger Name für eine Prozedur. Beachten Sie, dass bei den Namen der DLL-Einsprungpunkte zwischen Gross-/Kleinschreibung unterschieden wird.
Lib Erforderlich. Die deklarierte Prozedur ist in einer DLL oder Code-Ressource enthalten. Der Lib-Abschnitt ist bei allen Deklarationen erforderlich.
BibName Erforderlich. Name der DLL oder Code-Ressource, die die deklarierte Prozedur enthält.
Alias Optional. Gibt an, dass die aufgerufene Prozedur in der DLL einen anderen Namen hat. Dies ist sinnvoll, wenn der Name einer externen Prozedur einem Schlüsselwort entspricht. Alias kann auch verwendet werden, wenn eine DLL-Prozedur denselben Namen hat wie eine öffentliche Variable, Konstante oder eine andere Prozedur mit demselben Gültigkeitsbereich. Alias bietet sich darüber hinaus an, wenn bestimmte Zeichen im Namen der DLL-Prozedur aufgrund der Namenskonvention für DLLs nicht zulässig sind.

Auf dem Power Macintosh kann das Schlüsselwort Alias auch verwendet werden, um anzuzeigen, dass die aufgerufene Prozedur sich in einer Macintosh Code-Ressource befindet.

Aliasname Optional. Name der Prozedur in der DLL oder Code-Ressource. Wenn das erste Zeichen nicht das Zeichen # ist, gibt Aliasname den Namen des Einsprungpunktes in der DLL an. Ist das Zeichen # das erste Zeichen, so müssen alle nachfolgenden Zeichen die Ordnungszahl (laufende Nummer) für den Einsprungpunkt in die Prozedur angeben.

Auf dem Power Macintosh kann Aliasname folgendermassen verwendet werden, um den Typ der Code-Ressource anzugeben:

"[Ressourcentyp]$[Ressourcenname]"

Der Ressourcentyp ist eine beliebige zulässige Konstante. Wird sie nicht angegeben, so ist der Standard-Ressourcentyp CODE. Der Ressourcenname ist der Name der Prozedur in der Code-Ressource. Wird Ressourcenname weggelassen, so wird Name als Ressourcenname angenommen.

ArgListe Optional. Variablenliste mit den Argumenten, die beim Aufruf an die Prozedur übergeben werden.
Typ Optional. Datentyp des Rückgabewerts einer Function-Prozedur. Zulässige Typen sind: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zur Zeit nicht unterstützt), Date, String (nur Zeichenfolgen variabler Länge) oder Variant, ein benutzerdefinierter Typ oder ein Objekttyp.
CDecl Auf dem Power Macintosh kann das Schlüsselwort CDecl verwendet werden, um anzuzeigen, dass die Prozedur die Argument-Reihenfolge, Namens- und Aufrufkonventionen der Sprache C verwendet.

Das Argument ArgListe hat die folgende Syntax und die folgenden Teile:

[Optional] [ByVal | ByRef] [ParamArray] VarName[( )] [As Typ]

Teil Beschreibung
Optional Optional. Ein Argument ist nicht erforderlich. Alle im Anschluss an Optional in ArgListe angegebenen Argumente müssen ebenfalls optional sein und mit dem Schlüsselwort Optional deklariert werden. Optional kann nicht verwendet werden, wenn ParamArray verwendet wird.
ByVal Optional. Das Argument wird als Wert übergeben.
ByRef Das Argument wird als Referenz übergeben. ByRef ist die Voreinstellung in Visual Basic.
ParamArray Optional. Wird nur als letztes Argument in ArgListe verwendet und gibt an, dass das letzte Argument ein Datenfeld vom Typ Optional aus Elementen vom Typ Variant ist. Das Schlüsselwort ParamArray erlaubt die Angabe einer variablen Anzahl von Argumenten und darf nicht in Kombination mit den Schlüsselwörtern ByVal, ByRef oder Optional verwendet werden.
VarName Erforderlich. Name der Variablen, die das an die Prozedur zu übergebende Argument darstellt. Der Name muss den Standardkonventionen für Namen von Variablen entsprechen.
( ) Erforderlich für Datenfeldvariablen. Zeigt an, dass VarName ein Datenfeld ist.
Typ Optional. Datentyp des an die Prozedur übergebenen Arguments. Zulässige Typen sind: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zur Zeit nicht unterstützt), Date, String (nur Zeichenfolgen variabler Länge), Object, Variant, ein benutzerdefinierter Typ oder ein Objekttyp.

Bemerkungen

In Function-Prozeduren legt der Datentyp für die Prozedur den Datentyp des Rückgabewerts fest. Mit einem As-Abschnitt im Anschluss an ArgListe können Sie den Rückgabetyp der Funktion festlegen. Innerhalb von ArgListe legen Sie mit einem As-Abschnitt den Datentyp der einzelnen an die Prozedur übergebenen Argumente fest. Neben den Standard-Datentypen können Sie an dieser Stelle auch As Any in ArgListe angeben, um die Typprüfung zu unterdrücken und einen beliebigen Datentyp an die Prozedur zu übergeben.

Ein leeres Klammernpaar steht für eine Sub- oder Function-Prozedur ohne Argumente und weist darauf hin, dass Visual Basic keine Argumente übergeben soll. Im folgenden Beispiel wird "Erster" ohne Argumente deklariert. Wenn Sie beim Aufruf von "Erster" ein Argument verwenden, tritt ein Fehler auf:

Declare Sub Erster Lib "MeineLib" ()

Wenn Sie eine Argumentliste angeben, werden die Anzahl und der Typ der Argumente bei jedem Prozeduraufruf überprüft. Im folgenden Beispiel erwartet "Erster" ein Argument vom Typ Long:

Declare Sub Erster Lib "MeineLib" (X As Long)

Anmerkung

Zeichenfolgen fester Länge sind in der Argumentliste einer Declare-Anweisung nicht zulässig, da nur Zeichenfolgen variabler Länge an eine Prozedur übergeben werden können. Zeichenfolgen fester Länge sind als Prozedurargumente zwar zulässig, werden aber vor der Übergabe in Zeichenfolgen variabler Länge umgewandelt.

Anmerkung

Die Konstante vbNullString wird von Visual Basic für den Aufruf externer Prozeduren verwendet, wenn die externe Prozedur eine Zeichenfolge mit dem Wert Null erfordert. Eine solche Zeichenfolge ist nicht mit einer Null-Zeichenfolge ("") identisch.

Auf dem Power Macintosh unterstützt die Declare-Anweisung Aufrufe von native Code nur in Codefragmenten. Der Aufruf von Code in Code-Ressourcen wird ebenfalls unterstützt, aber nur im 68000-Emulationsmodus.

Bei Verwendung auf dem Power Macintosh ist die Syntax der Declare-Anweisung folgende:

Declare Function MeineFunktion Lib "hd:Systemordner:Systemerweiterungen:MeinCodeFragment" Alias "MeineFunktion" () As Long

Sowohl bei Codefragmenten als auch bei Code-Ressourcen kann ein vollständiger oder teilweiser Pfadname in der Lib-Klausel angegeben werden. Falls die angegebene Lib-Klausel mehrdeutig ist, wird sie folgendermassen aufgelöst:

Damit ist die Erstellung von "Fat"-Codefragmenten möglich, d.h. von Dateien, die sowohl Code-Fragmente als auch 68000-Code-Ressourcen enthalten. Bei Ausführung von Visual Basic for Applications auf einem 68000-Macintosh wird die Code-Ressource verwendet. Bei Ausführung auf einem Power Macintosh wird das native Codefragment verwendet.

Die Macintosh-Toolbox ist auf dem Power Macintosh mit Hilfe einer Deklaration in das Codefragment des Systems zugänglich.

In diesem Beispiel wird die Verwendung der Declare-Anweisung auf Modulebene eines Standardmoduls gezeigt, um einen Verweis auf eine externe Prozedur in einer Dynamic Link Library (DLL) oder Macintosh-Code-Ressource zu deklarieren. Sie können Declare-Anweisungen in Klassenmodulen angeben, wenn die Declare-Anweisungen das Attribut Private haben.

Code für Microsoft Windows (16-Bit):

Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
' Signal1 ist ein Alias für den Prozedurnamen.
Declare Sub MessageBeep Lib "User" Alias "Signal1"(ByVal N As Integer)
' Laufende Nummer in Alias-Abschnitt zum Aufruf von GetWinFlags verwenden.
Declare Function GetWinFlags Lib "Kernel" Alias "#132"() As Long

Code für Microsoft Windows (32-Bit und 16-Bit):

' Geben Sie in 32-Bit Microsoft Windows-Systemen nicht die Bibliothek USER.DLL an, sondern USER32.DLL.
' Mit bedingter Kompilierung können Sie Code schreiben, der sowohl unter Win32 als auch unter Win16 ausgeführt werden kann.

#If Win32 Then
  Declare Sub MessageBeep Lib "User32" (ByVal N As Long)
#Else
  Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
#End If

Code für Macintosh:

Declare Sub MessageAlert Lib "HD1:Warnung1" Alias "Warnung1" (ByVal N As Integer)
' Code-Ressource in Alias-Abschnitt verwenden.
Declare Sub MessageAlert Lib "HD1:Warnung1" Alias "XTST$Warnung1" (ByVal N As Integer)

' Wenn der Typbezeichner der Code-Ressource nur 3 Zeichen hat, müssen Sie ein Leerzeichen an der Stelle stehen lassen,
' an der das letzte Zeichen normalerweise stehen würde.

Declare Sub MessageAlert Lib "HD1:EineWarnung" Alias "COD $EineWarnung" (ByVal N As Integer)

Verwandte Themen
CDecl-Schlüsselwort

Zum Seitenanfang


CDecl-Schlüsselwort

Auf dem Power Macintosh kann in einer Declare-Anweisung das Schlüsselwort CDecl verwendet werden, um anzuzeigen, dass die Prozedur die Argument-Reihenfolge, Namens- und Aufrufkonventionen der Sprache C verwendet.

Syntax der Declare-Anweisung (Power Macintosh)

[Public | Private] Declare Function Name [CDecl] Lib "BibName" [Alias "Aliasname" ] [([ArgListe])] [As Typ]

Das CDecl-Schlüsselwort steht nur auf Macintosh zur Verfügung. Bei Verwendung von CDecl unter Windows tritt der Laufzeitfehler 49 "Falsche DLL-Aufrufkonvention" auf, sobald die externe Funktion aufgerufen wird.

Verwandte Themen
Declare-Anweisung
Laufzeitfehler 49 "Falsche DLL-Aufrufkonvention"

Zum Seitenanfang


MacScript-Funktion

Die MacScript-Funktion führt ein AppleScript-Skript aus und gibt durch das Skript einen Wert zurück, falls vorhanden. Sie ist nur auf dem Macintosh verfügbar.

Syntax

MacScript Skript

Das Argument Skript ist ein Zeichenfolgenausdruck. Der Zeichenfolgenausdruck kann entweder eine Reihe von AppleScript-Befehlen repräsentieren oder den Namen eines AppleScript-Skripts oder eine Skriptdatei angeben.

Anmerkung

Weil die MacScript-Funktion zum Standard-Sprachumfang von VBA gehört, kann der Programmcode auf beiden Plattformen fehlerfrei kompiliert werden (d.h. es tritt kein Kompilierungsfehler auf). Wird aber eine Codezeile mit MacScript unter Windows ausgeführt, tritt der Laufzeitfehler 5 "Ungültiger Prozeduraufruf oder ungültiges Argument" auf, weil die Funktion nicht aufgerufen werden kann. Die Codezeile darf nur dann ausgeführt werden, wenn das Programm auf dem Macintosh läuft.

Ob ein Macintosh- oder Windows-System vorliegt, kann sehr einfach abgefragt werden. Wie das geht, erfahren Sie unter Abfragen der Ausführungsumgebung.

Zum Seitenanfang


MacID-Funktion

Die MacID-Funktion wird auf dem Macintosh verwendet, um eine 4-Zeichen-Konstante in einen Wert umzuwandeln, der von Dir, Kill, Shell und AppActivate verwendet werden kann.

Syntax

MacID(Konstante)

Das erforderliche Argument Konstante besteht aus vier Zeichen, die verwendet werden, um einen Ressourcentyp, Dateityp, eine Anwendungssignatur oder ein Apple-Ereignis anzugeben. Beispiele:

Bemerkungen zu Dir und Kill

MacID wird mit Dir und Kill verwendet, um einen Macintosh-Dateityp anzugeben. Da der Macintosh die Platzhalterzeichen * und ? nicht unterstützt, können Sie eine 4-Zeichen-Konstante verwenden, anstatt Gruppen von Dateien zu kennzeichnen. Die folgende Anweisung gibt z.B. alle Dateien vom Typ TEXT im aktuellen Ordner zurück:

Dir("EinPfad", MacID("TEXT"))

Bemerkungen zu Shell und AppActivate

MacID wird mit Shell und AppActivate verwendet, um eine Anwendung anzugeben, die die eindeutige Signatur dieser Anwendung verwendet.

In diesem Beispiel werden verschiedene Einsatzmöglichkeiten der MacID-Funktion aufgezeigt. Die MacID-Funktion steht unter Microsoft Windows nicht zur Verfügung.

Dim strFilename As String, lngResult As Long
' Die erste Textdatei im Ordner HD:ORDNER1 zurückgeben.
strFilename = Dir("HD:ORDNER1:", MacID("TEXT"))

' Alle Dateien vom Typ "TEXT" im aktuellen Ordner löschen.
Kill MacID("TEXT")

' Microsoft Excel starten.
lngResult = Shell(MacID("XCEL"))

' Microsoft Word aktivieren.
AppActivate MacID("MSWD")

Anmerkung

Weil die MacID-Funktion zum Standard-Sprachumfang von VBA gehört, kann der Programmcode auf beiden Plattformen fehlerfrei kompiliert werden (d.h. es tritt kein Kompilierungsfehler auf). Wird aber eine Codezeile mit MacID unter Windows ausgeführt, tritt in den meisten Fällen der Laufzeitfehler 5 "Ungültiger Prozeduraufruf oder ungültiges Argument" auf, weil die Funktion nicht aufgerufen werden kann. In bestimmten Situationen kann auch ein anderer Laufzeifehler auftreten. Beispielsweise erscheint der Laufzeitfehler 53 "Datei nicht gefunden", wenn die MacID-Funktion zusammen mit Shell verwendet wird. Die Codezeile darf nur dann ausgeführt werden, wenn das Programm auf dem Macintosh läuft.

Ob ein Macintosh- oder Windows-System vorliegt, kann sehr einfach abgefragt werden. Wie das geht, erfahren Sie unter Abfragen der Ausführungsumgebung.

Verwandte Themen
Shell-Funktion
Dir-Funktion
Kill-Anweisung
AppActivate-Anweisung

Zum Seitenanfang


Kennzeichnen von Konstanten mit einem Bibliotheksverweis

TODO

Sie können einen Verweis auf eine Konstante mit folgender Syntax kennzeichnen:

[BibName.][Modulname.]KonstName

Die Syntax für zu qualifizierende Konstanten besteht aus diesen Teilen:

Teil Beschreibung
BibName Optional. Der Name der Klassenbibliothek, die die Konstante definiert. Für die meisten benutzerdefinierten Steuerelemente (nicht verfügbar beim Macintosh) ist dies auch der Klassenname des Steuerelements. Wenn Sie sich nicht mehr an den Klassennamen des Steuerelements erinnern, führen Sie den Mauszeiger über das Steuerelement in der Werkzeugsammlung. Der Klassenname wird in der QuickInfo angezeigt.
Modulname Optional. Der Name des Moduls innerhalb der Klassenbibliothek, die die Konstante definiert hat. Sie können den Namen des Moduls im Objektkatalog finden.
KonstName Der für die Konstante definierte Name in der Klassenbibliothek.

Zum Seitenanfang


VBA-Konstante vbNewLine

Die Konstante vbNewLine existiert auf beiden Plattformen, verhält sich jedoch unterschiedlich, sprich besitzt einen anderen Inhalt.

Plattform Merkmal
Windows Die Konstante vbNewLine enthält die Zeichen Chr(13) + Chr(10). vbNewLine entspricht somit der Konstante vbCrLf.
Macintosh Die Konstante vbNewLine enthält das Zeichen Chr(13). vbNewLine entspricht somit der Konstante vbCr.

Wenn Sie vbNewLine verwenden, müssen Sie daran denken, dass sie unter Windows zwei Zeichen lang ist, auf einem Macintosh-Rechner dagegen nur ein Zeichen.

TODO

Um mögliche Probleme zu vermeiden, sollten ...

 

Eine vollständige Liste der Konstanten-Inkompatibilitäten finden Sie unter Unterschiede bei integrierten Konstanten.

Zum Seitenanfang


MsgBox-Funktion

Die MsgBox-Funktion zeigt eine Meldung in einem Dialogfeld an und wartet darauf, dass der Benutzer auf eine Schaltfläche klickt. Es wird dann einen Wert vom Typ Integer zurückgegeben, der anzeigt, auf welche Schaltfläche der Benutzer geklickt hat.

Syntax

MsgBox(Prompt[, Buttons] [, Title] [, HelpFile, Context])

In der VBA-Referenz von Microsoft steht folgendes (Thema "MsgBox-Funktion", Originaltext):

Wenn sowohl HelpFile als auch Context angeben werden, kann der Benutzer F1 (Windows) oder HILFE (Macintosh) drücken, um das Hilfethema für Context anzuzeigen. Einige Host-Anwendungen, zum Beispiel Microsoft Excel, fügen dem Dialogfeld automatisch die Schaltfläche "Hilfe" hinzu.

Die obige Information stimmt nur für Windows-Systeme! Auf einem Macintosh-Rechner wird keine Schaltfläche "Hilfe" hinzugefügt.

TODO

vbMsgBoxHelpButton (16384)

 

Mehr zum Problem mit der vermissten "Hilfe"-Schaltfläche erfahren Sie hier:
  MacOFF: Help Button Is Missing in VBA Macro Message Box
  http://support.microsoft.com/?scid=kb;en-us;205191

TODO: Dateipfad in HelpFile

Verwandte Themen
InputBox-Funktion
InputBox-Methode (Excel)

Zum Seitenanfang


InputBox-Funktion

Die InputBox-Funktion zeigt eine Eingabeaufforderung in einem Dialogfeld an, wartet auf die Eingabe eines Textes oder auf das Klicken auf eine Schaltfläche und gibt einen Wert vom Typ String zurück, der den Inhalt des Textfeldes angibt.

Syntax

InputBox(Prompt[, Title] [, Default] [, XPos] [, YPos] [, HelpFile, Context])

Es ist nicht klar erkennbar, ob InputBox korrekt funktioniert, oder wie die MsgBox-Funktion einen Bug besitzt.

TODO: Dateipfad in HelpFile

Verwandte Themen
MsgBox-Funktion
InputBox-Methode (Excel)

Zum Seitenanfang


Option Compare-Anweisung

Die Option Compare-Anweisung wird auf Modulebene verwendet, um das Standardverfahren für den Vergleich von Zeichenfolgen festzulegen.

Syntax

Option Compare {Binary | Text | Database}

Die Option Compare-Anweisung legt das Verfahren für den Zeichenfolgenvergleich (Binary, Text oder Database) innerhalb eines Moduls fest. Enthält ein Modul keine Option Compare-Anweisung, so ist Binary das verwendete Standardverfahren.

Auf dem Macintosh wird die Sortierreihenfolge durch den Zeichensatz bestimmt.

Anmerkung

Aufgrund der Beschreibung in der Visual Basic-Referenz ist nicht klar erkennbar, ob auf einem Macintosh-Computer die Option Compare-Anweisung überhaupt eine Auswirkung besitzt. Es wird daher empfohlen, diese Anweisung generell nicht zu verwenden.

Zum Seitenanfang


Environ-Funktion

Die Environ-Funktion gibt die mit einer Betriebssystem-Umgebungsvariablen verbundene Zeichenfolge (String) zurück.

Diese Funktion ist auf dem Macintosh nicht verfügbar. Wird sie auf dem Macintosh verwendet, tritt der Laufzeitfehler 5 "Unzulässiger Prozeduraufruf oder ungültiges Argument" auf.

Zum Seitenanfang


LastDLLError-Eigenschaft des Err-Objektes

Gibt einen Systemfehler-Code zurück, der von einem Aufruf an eine Dynamic Link Library (DLL) erzeugt wurde. Schreibgeschützt.

Auf dem Macintosh gibt LastDLLError immer Null zurück.

Zum Kapitelanfang Zum Seitenanfang


Unterschiede im Objektmodell von Microsoft Excel

Allgemeines

In diesem Kapitel geht es um diejenigen Sprachelemente von VBA, die auf Macintosh und unter Windows verschieden sind.

nicht auf beiden Plattformen funktionieren,

unterschiedliche Ergebnisse liefern

 

Nachfolgend werden sämtliche derzeit bekannten Unterschiede ausführlich beschrieben. Die Microsoft VBA-Referenz enthält mehrere Fehler, die in den nachstehenden Beschreibungen korrigiert sind.

Zum Seitenanfang


Übersicht der Unterschiede

Element Typ Element von Bibliothek
Creator Eigenschaft Diverse Excel-Objekte Excel
GetSaveAsFilename Methode Application-Objekt Excel
GetOpenFilename Methode Application-Objekt Excel
InputBox Methode Application-Objekt Excel
PathSeparator Eigenschaft Application-Objekt Excel
LibraryPath Eigenschaft Application-Objekt Excel
CommandUnderlines Eigenschaft Application-Objekt Excel
ActivateMicrosoftApp Methode Application-Objekt Excel
Connection Eigenschaft PivotCache- und QueryTable-Objekt Excel

Zum Seitenanfang


Creator-Eigenschaft (Verschiedene Excel-Objekte)

Die Creator-Eigenschaft gibt den aus vier Zeichen bestehenden Code für die Anwendung zurück, in der das angegebene Objekt erstellt wurde. Nur Macintosh. Long. Nur-Lese-Zugriff.

Bei Verwendung unter Windows tritt kein Fehler auf. In Excel für Windows wird der Wert 1480803660 zurückgegeben.

Verwandte Themen
Creator Code

Zum Seitenanfang


GetSaveAsFilename-Methode des Application-Objektes (Excel)

Die GetSaveAsFilename-Methode des Application-Objektes zeigt das Standarddialogfeld "Speichern unter" an und bekommt einen Dateinamen vom Benutzer, ohne jedoch irgendwelche Dateien zu speichern.

Syntax

Ausdruck.GetSaveAsFilename([InitialFilename], [FileFilter], [FilterIndex], [Title], [ButtonText])

Das optionale Argument ButtonText existiert nur auf Macintosh. Genauer gesagt besitzt es nur auf dem Macintosh eine Auswirkung. Wenn Sie ButtonText angeben und den Programmcode unter Windows ausführen, wird das Argument ignoriert. Es tritt kein Fehler auf.

Diese Codezeile funktioniert auf beiden Plattformen, ändert aber nur auf dem Macintosh die Beschriftung der Schaltfläche:

strFile = Application.GetSaveAsFilename(Title:="Datei kopieren", ButtonText:="Kopieren")

Da es in diesem Fall kein Inkompatibilitätsproblem gibt, müssen keine plattformspezifischen Anpassungen vorgenommen werden. Man muss lediglich daran denken, dass in der Programm-Dokumentation, beispielsweise in der Hilfe oder der Bedienungsanleitung Ihres Programmes, der korrekte Schaltflächentext angegeben wird. Bei der obigen Codezeile heisst die Schaltfläche in Excel für Macintosh "Kopieren" und in Excel für Windows "Speichern".

Verwandte Themen
GetOpenFilename-Methode des Application-Objektes (Excel)

Zum Seitenanfang


GetOpenFilename-Methode des Application-Objektes (Excel)

Die GetOpenFilename-Methode des Application-Objektes zeigt das Standarddialogfeld "Öffnen" an und bekommt einen Dateinamen vom Benutzer, ohne jedoch irgendwelche Dateien zu öffnen.

Syntax

Ausdruck.GetOpenFilename([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])

Das optionale Argument ButtonText existiert nur auf Macintosh. Genauer gesagt besitzt es nur auf dem Macintosh eine Auswirkung. Wenn Sie ButtonText angeben und den Programmcode unter Windows ausführen, wird das Argument ignoriert. Es tritt kein Fehler auf.

Diese Codezeile funktioniert auf beiden Plattformen, ändert aber nur auf dem Macintosh die Beschriftung der Schaltfläche:

strFile = Application.GetOpenFilename(Title:="Datei importieren", ButtonText:="Importieren")

Da es in diesem Fall kein Inkompatibilitätsproblem gibt, müssen keine plattformspezifischen Anpassungen vorgenommen werden. Man muss lediglich daran denken, dass in der Programm-Dokumentation, beispielsweise in der Hilfe oder der Bedienungsanleitung Ihres Programmes, der korrekte Schaltflächentext angegeben wird. Bei der obigen Codezeile heisst die Schaltfläche in Excel für Macintosh "Importieren" und in Excel für Windows "Öffnen".

Tipp: FindFile-Methode verwenden
Wenn Sie das Standard-Dialogfeld "Öffnen" von Excel anzeigen möchten, können Sie auch die FindFile-Methode des Application-Objektes verwenden. Diese funktioniert auf beiden Plattformen.

Hier ein einfaches Beispiel:

Application.FindFile

Es lässt sich auch feststellen, ob der Benutzer die Abbrechen oder die Öffnen-Schaltfläche geklickt hat. Man muss dazu lediglich abfragen, ob FindFile True oder False zurückgegeben hat:

If Application.FindFile = False Then
  MsgBox "Benutzer hat Abbrechen gedrückt.", vbInformation
Else
  MsgBox "Benutzer hat Öffnen gedrückt und die ausgewählte Datei geöffnet.", vbInformation
End If

Bei FindFile wird die ausgewählte Datei (beziehungsweise die ausgewählten Dateien) automatisch geöffnet. Das Auswahlfeld "Dateityp" wird automatisch gefüllt. Bei der GetOpenFilename-Methode muss man das Auswahlfeld im Programmcode füllen (FileFilter- und FilterIndex-Argument).

Verwandte Themen
GetSaveAsFilename-Methode des Application-Objektes (Excel)

Zum Seitenanfang


InputBox-Methode des Application-Objektes

Die InputBox-Funktion zeigt eine Eingabeaufforderung in einem Dialogfeld an, wartet auf die Eingabe eines Textes oder auf das Klicken auf eine Schaltfläche und gibt einen Wert vom Typ String zurück, der den Inhalt des Textfeldes angibt.

Syntax

InputBox(Prompt[, Title] [, Default] [, XPos] [, YPos] [, HelpFile, Context])

Es ist nicht klar erkennbar, ob InputBox korrekt funktioniert, oder wie die MsgBox-Funktion einen Bug besitzt.

InputBox von Excel
Abbildung: InputBox von Microsoft Excel

 

 

TODO: Dateipfad in HelpFile

Verwandte Themen
MsgBox-Funktion

Zum Seitenanfang


PathSeparator-Eigenschaft des Application-Objektes

Die PathSeparator-Eigenschaft des Application-Objektes von Microsoft Excel enthält das Zeichen, welches zum Trennen der einzelnen Bestandteile eines Pfades verwendet wird. Je nach Betriebssystem gibt PathSeparator ein anderes Zeichen zurück.

Plattform Wert von PathSeparator
Windows Die Abfrage von PathSeparator gibt das Zeichen "\" zurück.
Macintosh Die Abfrage von PathSeparator gibt das Zeichen ":" zurück.

Wenn Sie aus zwei Zeichenfolgen einen Dateipfad zusammensetzen möchten, sollten Sie die PathSeparator-Eigenschaft von Microsoft Excel benutzen.

Die korrekte Lösung sieht so aus:

strFullname = strPath & Application.PathSeparator & strFile

Diese Lösung sollten Sie nicht verwenden, da sie nur auf Windows-Rechnern, nicht aber auf Macintosh funktioniert:

strFullname = strPath & "\" & strFile

Verwandte Themen
Unterschiede zwischen Windows und Macintosh: Dateipfade

Zum Seitenanfang


LibraryPath-Eigenschaft des Application-Objektes

Die LibraryPath-Eigenschaft des Application-Objektes von Microsoft Excel enthält auf dem Macintosh als letztes Zeichen immer ein zusätzliches Pfadtrennzeichen (bei Macintosh ist das Pfadtrennzeichen der Doppelpunkt ':'). In Microsoft Excel für Windows ist dies nicht der Fall.

Plattform Wert von LibraryPath
Windows Die Abfrage von LibraryPath gibt einen Pfad ohne Pfadtrennzeichen (\) am Schluss zurück.

Beispiel: C:\Programme\Microsoft Office\Office\Library

Macintosh Die Abfrage von LibraryPath gibt einen Pfad mit Pfadtrennzeichen (:) am Schluss zurück.

Beispiel: Macintosh HD:Microsoft Office 98:Office:Excel Add-Ins:

Microsoft empfiehlt, einen Pfad immer ohne abschliessendes Pfadtrennzeichen zu schreiben.

Beispiel
Mit diesem VBA-Makro wird das überzählige Zeichen entfernt. Der Code kann sowohl in Excel für Windows als auch in Excel für Macintosh ausgeführt werden.

Sub GetGoodLibraryPath()
  'Store the LibraryPath in a variable.
  xLibraryPath = Application.LibraryPath
  'If the LibraryPath ends in a colon...
  If Right(xLibraryPath, 1) = ":" Then
    '...remove the colon from the end of the path.
    xLibraryPath = Left(xLibraryPath, Len(xLibraryPath) - 1)
  End If
  'Display the corrected LibraryPath.
  MsgBox "The application's LibraryPath is " & xLibraryPath
End Sub

LibraryPath Includes Trailing Separator on Macintosh
http://support.microsoft.com/?scid=kb;en-us;176803

Verwandte Themen
PathSeparator-Eigenschaft
Unterschiede zwischen Windows und Macintosh: Dateipfade

Zum Seitenanfang


CommandUnderlines-Eigenschaft des Application-Objektes

Beschreibung folgt in Kürze...

Zum Seitenanfang


ActivateMicrosoftApp-Methode des Application-Objektes

...

Die ActivateMicrosoftApp-Methode aktiviert eine Microsoft-Anwendung. Falls die Anwendung bereits ausgeführt wird, aktiviert diese Methode das betreffende Anwendungsfenster. Wird die Anwendung noch nicht ausgeführt, startet die Methode eine neue Instanz der Anwendung.

Syntax

Application.ActivateMicrosoftApp(Index)

Folgende Konstanten können für Index verwendet werden:

XlMSApplication-Konstanten
  xlMicrosoftAccess (4)
  xlMicrosoftFoxPro (5)
  xlMicrosoftMail (3)
  xlMicrosoftPowerPoint (2)
  xlMicrosoftProject (6)
  xlMicrosoftSchedulePlus (7)
  xlMicrosoftWord (1)

Wenn die als Argument angegebene Office-Anwendung nicht auf dem Rechner installiert ist, erscheint der Laufzeitfehler 1004 mit einem entsprechenden Fehlermeldungstext (Beispiel 'FoxPro für Windows'):

Laufzeitfehler 1004 bei nicht vorhandener Anwendung
Abbildung: Laufzeitfehler 1004 bei nicht vorhandener Anwendung

TODO: Parameter True und False

 

Zum Seitenanfang


Connection-Eigenschaft

Die Connection-Eigenschaft existiert beim PivotCache- und beim QueryTable-Objekt und enthält die Verbindungsinformation zu der benutzten Datenquelle.

Bei einer QueryTable vom Typ "Web-Abfrage" enthält Connection die URL der verwendeten Web-Datenquelle.

Bei einer QueryTable vom Typ "Datenbankabfrage" enthält Connection die URL der verwendeten Web-Datenquelle.

 

?ActiveSheet.QueryTables(1).Connection
URL;http://webservices.pcquote.com/cgi-bin/excel.exe

 

Zum Kapitelanfang Zum Seitenanfang


Unterschiede im Objektmodell von Microsoft Office

Allgemeines

In diesem Kapitel geht es um diejenigen Sprachelemente von VBA, die auf Macintosh und unter Windows verschieden sind.

nicht auf beiden Plattformen funktionieren,

unterschiedliche Ergebnisse liefern

 

Nachfolgend werden sämtliche derzeit bekannten Unterschiede ausführlich beschrieben. Die Microsoft VBA-Referenz enthält mehrere Fehler, die in den nachstehenden Beschreibungen korrigiert sind.

Zum Seitenanfang


Übersicht der Unterschiede

Element Typ Element von Bibliothek
Creator Eigenschaft Diverse Office-Objekte Office
FileFind Objekt Office Office
FileSearch Objekt Office Office
Add Methode CommandBars-Auflistung Office
FileName Eigenschaft Assistant-Objekt Office

Zum Seitenanfang


Creator-Eigenschaft (Verschiedene Office-Objekte)

Die Creator-Eigenschaft gibt den aus vier Zeichen bestehenden Code für die Anwendung zurück, in der das angegebene Objekt erstellt wurde. Nur Macintosh. Long. Nur-Lese-Zugriff.

Bei Verwendung unter Windows tritt kein Fehler auf. In Excel für Windows wird der Wert 1480803660 zurückgegeben.

Verwandte Themen
Creator Code

Zum Seitenanfang


FileFind-Objekt (nur Macintosh)

Das FileFind-Objekt stellt die Funktionen des Dialogfeldes "Dateien finden" dar und existiert ausschliesslich für Macintosh. Das Objekt befindet sich in der Objektbibliothek von Microsoft Office und wird durch die Klasse IFind repräsentiert. Unter Windows wird anstelle des FileFind-Objektes das FileSearch-Objekt verwendet.

Anmerkung
Verwechseln Sie FileFind nicht mit FindFile. FindFile ist eine Methode des Application-Objektes von Microsoft Excel und dient zum Anzeigen des Öffnen-Dialoges.

Das FileFind-Objekt

Das FileFind-Objekt besitzt folgende Methoden und Eigenschaften, die nachfolgend kurz vorgestellt werden:
- FileFindResults
- Results
- Execute
- View
- FileType
- Author
- DateCreatedFrom
- DateCreatedTo
- DateSavedFrom
- DateSavedTo
- Keywords
- ListBy
- Load
- Save
- Delete
- Show
- MatchCase
- Options

FileFindResults-Objekt des FileFind-Objektes

Stellt die Liste der von einer Dateisuche zurückgegebenen Dateien dar.

Results-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt das FileFindResults-Objekt zurück. Nur-Lese-Zugriff.

Execute-Methode des FileFind-Objektes

Nur Macintosh. Beginnt die Suche nach den angegebenen Dateien und aktualisiert die FindFileResults-Auflistung.

View-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt das Format zurück, in dem Informationen zu den gefundenen Dateien im Dialogfeld angezeigt werden, oder legt das Format fest. Dies kann eine der folgenden msoFileFindView-Konstanten sein: msoFileFindViewFileInfo, msoFileFindViewPreview oder msoFileFindViewSummary. Variant. Nur-Lese-Zugriff.

Achtung!
In der Microsoft Office 8.0-Bibliothek (Office 97) heissen die Konstanten msoViewFileInfo, msoViewPreview und msoViewSummary.

FileType-Eigenschaft des FileFind-Objektes

Gibt den Dateityp zurück, nach dem gesucht werden soll, oder legt ihn fest. Der Wert kann auf eine Zahl festgelegt werden, die von der MacID-Funktion zurückgegeben wird. Nur Macintosh. Long Schreib-Lese-Zugriff.

Anmerkungen
Verwenden Sie die in der folgenden Tabelle aufgelisteten Argumente mit der MacID-Funktion, um den entsprechenden Macintosh-Dateityp zurückzugeben:

Author-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt eine Zeichenkette (bis zu 80 Zeichen) zurück, die den in den Eigenschaften des zu suchenden Dokuments aufgeführten Autor darstellt, oder legt eine Zeichenkette fest. String. Schreib-Lese-Zugriff.

DateCreatedFrom-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt das Datum zurück, an dem das zu suchende Dokument erstellt wurde, oder legt das Datum fest. Dieses Datum gilt als untere Grenze für die Suche. Variant. Schreib-Lese-Zugriff.

Anmerkungen

Sie können die DateCreatedTo-Eigenschaft verwenden, um eine obere Grenze für die Dateisuche festzulegen, oder diese Eigenschaft auslassen, um eine unbegrenzte Suche durchzuführen.

DateCreatedTo-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt das Datum zurück, an dem die zu suchende Datei erstellt wurde, oder legt das Datum fest. Dieses Datum gilt als obere Grenze für die Dateisuche. Variant. Schreib-Lese-Zugriff.

DateSavedFrom-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt das Datum zurück, an dem die zu suchende Datei zuletzt gespeichert wurde, oder legt das Datum fest. Dieses Datum gilt als untere Grenze für die Dateisuche. Variant. Schreib-Lese-Zugriff.

Anmerkungen
Sie können die DateSavedTo-Eigenschaft verwenden, um eine obere Grenze für die Dateisuche festzulegen, oder diese Eigenschaft auslassen, um eine unbegrenzte Suche durchzuführen.

DateSavedTo-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt das Datum zurück, an dem die zu suchende Datei zuletzt gespeichert wurde, oder legt das Datum fest. Dieses Datum gilt als obere Grenze für die Dateisuche. Variant. Schreib-Lese-Zugriff.

Keywords-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt eine Zeichenkette (bis zu 80 Zeichen) zurück, die in den Eigenschaften des zu suchenden Dokuments aufgelistete Schlüsselwörter darstellt, oder legt eine Zeichenkette fest. String. Schreib-Lese-Zugriff.

ListBy-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt die Art zurück, wie die gefundenen Dateien im Ergebnisdialogfeld angezeigt werden, oder legt die Art fest. Dies kann eine der folgenden msoFileFindListBy-Konstanten sein: msoFileFindListByName (listet die gefundenen Dateien nach dem Systemdateinamen auf) oder msoFileFindListByTitle (listet die gefundenen Dateien nach der Titel-Eigenschaft auf). Schreib-Lese-Zugriff.

Achtung!
In der Microsoft Office 8.0-Bibliothek (Office 97) heissen die Konstanten msoListByName und msoListByTitle.

Load-Methode des FileFind-Objektes

Nur Macintosh. Lädt die angegebene Abfrage für die Dateisuche in den Speicher.

Syntax

Ausdruck.Load(bstrQueryName)

Ausdruck Erforderlich. Ein Ausdruck, der ein FileFind-Objekt zurückgibt.

bstrQueryName String erforderlich. Eine Zeichenkette mit höchstens 31 Zeichen, die den Namen der gespeicherten Suchkriterien bestimmt, die geladen werden sollen.

Anmerkungen

Verwenden Sie die Execute-Methode, um eine geladene Abfrage auszuführen.

Save-Methode des FileFind-Objektes

...

Delete-Methode des FileFind-Objektes

...

Show-Methode des FileFind-Objektes

...

MatchCase-Eigenschaft des FileFind-Objektes

Nur Macintosh. True, wenn in der Dateisuche Gross- und Kleinschreibung unterschieden wird. Boolean. Schreib-Lese-Zugriff.

Options-Eigenschaft des FileFind-Objektes

Nur Macintosh. Gibt die Art zurück, wie die aktuelle Gruppe von gefundenen Dateien gegenüber der Liste von zuvor gefundenen Dateien angezeigt wird, oder legt die Art fest. Dies kann eine der folgenden msoFileFindOptions-Konstanten sein: msoFileFindOptionsNew, msoFileFindOptionsAdd oder msoFileFindOptionsWithin. Variant. Schreib-Lese-Zugriff.

Achtung!
In der Microsoft Office 8.0-Bibliothek (Office 97) heissen die Konstanten msoOptionsNew, msoOptionsAdd und msoOptionsWithin.

Zum Seitenanfang


FileSearch-Objekt (nur Windows)

Das FileSearch-Objekt gibt ein Objekt zur Verwendung von Dateisuchen zurück. Es ist ausschliesslich in Microsoft Windows verfügbar. Auf Macintosh wird anstelle des FileSearch-Objektes das FileFind-Objekt verwendet.

Anmerkung
Verwechseln Sie FileFind nicht mit FindFile. FindFile ist eine Methode des Application-Objektes von Microsoft Excel und dient zum Anzeigen des Öffnen-Dialoges.

Zum Seitenanfang


Add-Methode der CommandBars-Auflistung (Office-Objekt)

Erstellt eine neue Befehlsleiste und fügt sie der Auflistung der Befehlsleisten hinzu. Gibt ein CommandBar-Objekt zurück.

Syntax

Ausdruck.Add(Name, Position, MenuBar, Temporary)

Argument Position:
Variant. Die Position der neuen Befehlsleiste. Dies kann eine der folgenden MsoBarPosition-Konstanten sein:

Konstante Beschreibung
msoBarLeft Gibt die linke Koordinate der neuen Befehlsleiste an.
msoBarTop Gibt die obere Koordinate der neuen Befehlsleiste an.
msoBarRight Gibt die rechte Koordinate der neuen Befehlsleiste an.
msoBarBottom Gibt die untere Koordinate der neuen Befehlsleiste an.
msoBarFloating Gibt an, dass die neue Befehlsleiste nicht verankert ist.
msoBarPopup Gibt an, dass die neue Befehlsleiste ein Kontextmenü ist.
msoBarMenuBar Gibt an, dass die neue Befehlsleiste die Systemmenüleiste auf dem Macintosh ersetzt.

Die Konstante msoBarMenuBar kann nur auf dem Macintosh benutzt werden. Bei Verwendung unter Windows tritt zwar kein Fehler auf, und die neue Befehlsleiste wird angelegt. Diese ist aber eine Art Menüleiste, die nicht angezeigt werden kann (sie ist unsichtbar).

Eine vollständige Liste der Konstanten-Inkompatibilitäten finden Sie unter Unterschiede bei integrierten Konstanten.

Zum Seitenanfang


FileName-Eigenschaft des Assistant-Objektes

Assistant-Objekt: Gibt den Namen der Datei des aktiven Office-Assistenten zurück oder legt ihn fest. String. Schreib-Lese-Zugriff.

In Windows lautet die Dateinamenerweiterung für Assistenten-Dateien '.act'.

Die Dateien der Assistenten liegen im Ordner "[..]\Programme\Microsoft Office\Office\Assistnt" bei Windows 95, im Ordner "[..]\Windows\MsApps\Assistnt" bei Windows NT und im Ordner "[..]:Microsoft Office:Office:Assistenten" auf dem Macintosh.

Application.Assistant.FileName = "CLIPPIT.ACT"

Zum Kapitelanfang Zum Seitenanfang


Unterschiede im Objektmodell des VBA-Editors

Allgemeines

Der VBA-Editor besitzt nur wenige Unterschiede in seinem Objektmodell.

Objekte, Eigenschaften und Methoden zur Steuerung verknüpfter Fenster, verknüpfter Fensterrahmen und verankerter Fenster sind sowohl für Windows als auch für den Macintosh enthalten. Beim Macintosh allerdings nur aus Gründen der Kompatibilität mit Code, der für Windows geschrieben ist. Diese Sprachelemente sind somit zwar kompatibel, rufen jedoch Laufzeitfehler hervor, wenn sie auf einem Macintosh ausgeführt werden.

Nachfolgend werden alle Unterschiede vorgestellt.

Zum Seitenanfang


Übersicht der Unterschiede

Element Typ Element von Bibliothek
LinkedWindows Objekt VBIDE VBIDE
Window Objekt Windows-Auflistung VBIDE
Windows Objekt VBIDE VBIDE

Zum Seitenanfang


LinkedWindows-Objekt

Im Objektmodell von Microsoft Excel besitzt das Application-Objekt eine Eigenschaft namens VBE, die ein VBE-Objekt zurückgibt. Dieses stammt aus der VBIDE-Objektbibliothek ("Microsoft Visual Basic for Applications Extensibility"). Das VBE-Objekt wiederum besitzt unter anderem ein Window-Objekt und eine Windows-Auflistung. Diese sind für die Fenster des VBA-Editors zuständig.

Objekte, Eigenschaften und Methoden zur Steuerung verknüpfter Fenster, verknüpfter Fensterrahmen und verankerter Fenster sind sowohl für Windows als auch für den Macintosh enthalten. Beim Macintosh allerdings nur aus Gründen der Kompatibilität mit Code, der für Windows geschrieben ist. Diese Sprachelemente sind somit zwar kompatibel, rufen jedoch Laufzeitfehler hervor, wenn sie auf einem Macintosh ausgeführt werden.

Betroffen sind folgende Elemente:

- LinkedWindows-Auflistung

- LinkedWindows-Eigenschaft

- LinkedWindowsFrame-Eigenschaft

- Add-Methode

- Item-Methode

- Remove-Methode

- Close-Methode

- Height-Eigenschaft

- Width-Eigenschaft

- Count-Eigenschaft

 

Verwandte Themen
Window-Objekt
Windows-Objekt

Zum Seitenanfang


Window-Objekt

Im Objektmodell von Microsoft Excel besitzt das Application-Objekt eine Eigenschaft namens VBE, die ein VBE-Objekt zurückgibt. Dieses stammt aus der VBIDE-Objektbibliothek ("Microsoft Visual Basic for Applications Extensibility"). Das VBE-Objekt wiederum besitzt unter anderem ein Window-Objekt und eine Windows-Auflistung. Diese sind für die Fenster des VBA-Editors zuständig.

Objekte, Eigenschaften und Methoden zur Steuerung verknüpfter Fenster, verknüpfter Fensterrahmen und verankerter Fenster sind sowohl für Windows als auch für den Macintosh enthalten. Beim Macintosh allerdings nur aus Gründen der Kompatibilität mit Code, der für Windows geschrieben ist. Diese Sprachelemente sind somit zwar kompatibel, rufen jedoch Laufzeitfehler hervor, wenn sie auf einem Macintosh ausgeführt werden.

Betroffen sind folgende Elemente:

- LinkedWindows-Auflistung

- LinkedWindows-Eigenschaft

- LinkedWindowsFrame-Eigenschaft

- Add-Methode

- Item-Methode

- Remove-Methode

- Close-Methode

- Height-Eigenschaft

- Width-Eigenschaft

- Count-Eigenschaft

 

Verwandte Themen
LinkedWindows-Objekt
Windows-Objekt

Zum Seitenanfang


Windows-Objekt

Im Objektmodell von Microsoft Excel besitzt das Application-Objekt eine Eigenschaft namens VBE, die ein VBE-Objekt zurückgibt. Dieses stammt aus der VBIDE-Objektbibliothek ("Microsoft Visual Basic for Applications Extensibility"). Das VBE-Objekt wiederum besitzt unter anderem ein Window-Objekt und eine Windows-Auflistung. Diese sind für die Fenster des VBA-Editors zuständig.

Objekte, Eigenschaften und Methoden zur Steuerung verknüpfter Fenster, verknüpfter Fensterrahmen und verankerter Fenster sind sowohl für Windows als auch für den Macintosh enthalten. Beim Macintosh allerdings nur aus Gründen der Kompatibilität mit Code, der für Windows geschrieben ist. Diese Sprachelemente sind somit zwar kompatibel, rufen jedoch Laufzeitfehler hervor, wenn sie auf einem Macintosh ausgeführt werden.

Betroffen sind folgende Elemente:

- LinkedWindows-Auflistung

- LinkedWindows-Eigenschaft

- LinkedWindowsFrame-Eigenschaft

- Add-Methode

- Item-Methode

- Remove-Methode

- Close-Methode

- Height-Eigenschaft

- Width-Eigenschaft

- Count-Eigenschaft

 

Verwandte Themen
LinkedWindows-Objekt
Window-Objekt

Zum Kapitelanfang Zum Seitenanfang


Unterschiede im Objektmodell von Microsoft Forms

Einführung

In diesem Kapitel geht es um die Kompatibilität von Benutzerformularen (UserForms) und den auf Formularen verwendbaren Steuerelementen (Controls).

 

Werkzeugsammlung
Abbildung: Werkzeugsammlung

 

Ausgewählte MS Forms-Steuerelemente (Weitere Steuerelemente)
Abbildung: Ausgewählte MS Forms-Steuerelemente (Weitere Steuerelemente)

 

Andere verfügbare Steuerelemente (Weitere Steuerelemente)
Abbildung: Andere verfügbare Steuerelemente (Weitere Steuerelemente)

 

Steuerelement-Toolbox
Abbildung: Steuerelement-Toolbox

 

Unterschiede zwischen Windows und Macintosh: ActiveX-Controls

 

Zum Seitenanfang


Unterschiede bei Benutzerformularen

I.

Element Typ Element von Bibliothek
WhatsThisMode Methode UserForm-Objekt MSForms
WhatsThisHelp Eigenschaft UserForm-Objekt MSForms
WhatsThisButton Eigenschaft UserForm-Objekt MSForms
Picture Eigenschaft UserForm-Objekt MSForms
MouseIcon Eigenschaft UserForm-Objekt MSForms
Error Ereignis UserForm-Objekt MSForms

 

Zum Seitenanfang


WhatsThisMode-Methode des UserForm-Objektes

Die WhatsThisMode-Methode ändert den Mauszeiger in einen Direkthilfe-Zeiger und bereitet die Anwendung so vor, dass die Hilfe für das ausgewählte Objekt angezeigt wird.

Diese Methode existiert zwar für den Macintosh, verfügt jedoch nicht über die Zeigerfunktionalität.

Verwandte Themen
WhatsThisHelp-Eigenschaft
WhatsThisButton-Eigenschaft

Zum Seitenanfang


WhatsThisHelp-Eigenschaft des UserForm-Objektes

Die WhatsThisHelp-Eigenschaft gibt einen Wert vom Typ Boolean zurück, der bestimmt, ob für die kontextbezogene Hilfe das von der Windows 95-Hilfe bereitgestellte Popup-Fenster oder das Hilfe-Hauptfenster verwendet wird. Diese Eigenschaft ist zur Laufzeit schreibgeschützt.

Diese Eigenschaft wird beim Macintosh nicht unterstützt.

Verwandte Themen
WhatsThisButton-Eigenschaft
WhatsThisMode-Methode

Zum Seitenanfang


WhatsThisButton-Eigenschaft des UserForm-Objektes

Die WhatsThisButton-Eigenschaft gibt einen Wert vom Typ Boolean zurück, der bestimmt, ob in der Titelleiste eines UserForm-Objekts die Direkthilfe-Schaltfläche angezeigt wird. Diese Eigenschaft ist zur Laufzeit schreibgeschützt.

Benutzerformular mit Direkthilfe-Schaltfläche
Abbildung: Benutzerformular mit Direkthilfe-Schaltfläche

Diese Eigenschaft wird beim Macintosh nicht unterstützt.

Verwandte Themen
WhatsThisHelp-Eigenschaft
WhatsThisMode-Methode

Zum Seitenanfang


Unterschiede bei Steuerelementen

 

 

Steuerelement (deutsch) Steuerelement (englisch) Eigenschaft
Bezeichnungsfeld Label Picture
Textfeld TextBox  
Kombinationsfeld ComboBox RowSource
Listenfeld ListBox RowSource
Kontrollkästchen CheckBox Picture
Optionsfeld OptionButton Picture
Umschaltfeld ToggleButton Picture
Rahmen Frame Picture
Befehlsschaltfläche CommandButton Picture
Register TabStrip  
Multiseiten MultiPage Picture von Page-Objekt
Bildlaufleiste ScrollBar  
Drehfeld SpinButton  
Anzeige Image Picture

 

 

 

Element Typ Element von Bibliothek
RowSource Eigenschaft ListBox-/ComboBox-Objekt MSForms
Picture Eigenschaft Diverse Control-Objekte MSForms
MouseIcon Eigenschaft Alle Control-Objekte MSForms
Error Ereignis Alle Control-Objekte MSForms

 

Zum Seitenanfang


RowSource-Eigenschaft des ListBox- und ComboBox-Steuerelementes

Die RowSource-Eigenschaft gibt die Quelle an, die eine Liste für ein Kombinationsfeld-Steuerelement (ComboBox) oder ein Listenfeld-Steuerelement (ListBox) zur Verfügung stellt.

Syntax

Objekt.RowSource [= String]

Die RowSource-Eigenschaft akzeptiert Bereiche von Tabellenblättern von Microsoft Excel.

Anmerkung

Auf einem Benutzerformular können sowohl unter Windows als auch auf Macintosh ListBox- und ComboBox-Steuerelemente benutzt werden. Die RowSource-Eigenschaft jedoch steht auf Macintosh-Systemen nicht zur Verfügung. Wenn diese Eigenschaft trotzdem verwendet wird, erscheint der Laufzeitfehler 380 mit diesem Meldungstext:

"Could not set the RowSource property. Invalid property value."

Laufzeitfehler 380
Abbildung: Laufzeitfehler 380

ListBox-Eigenschaften mit RowSource
Abbildung: ListBox-Eigenschaften mit RowSource

 

Wenn die Arbeitsmappe mit der enthaltenen UserForm potenziell auf einem Macintosh-System zum Einsatz kommen könnte, dürfen Sie RowSource nicht verwenden.  und stattdessen die ListBox bzw. ComboBox mittels VBA-Code mit Werten füllen.

Hier ein Beispiel:

Private Sub UserForm_Initialize()
  ListBox1.List = Worksheets("Tabelle1").Range("A1:A5").Value
End Sub

Hier ein anderes Beispiel:

Private Sub UserForm_Initialize()
  ListBox1.List = ThisWorkbook.Worksheets("Mitarbeiter").Range("Namensliste").Value
End Sub

 

Weitere Informationen erhalten Sie hier:
  MacXL: Run-Time Error When You Set RowSource Property (98/2001)
  http://support.microsoft.com/?scid=kb;en-us;175795

Zum Kapitelanfang Zum Seitenanfang


Unterschiede bei integrierten Konstanten

Es gibt Konstanten, die nur für Windows oder nur für Macintosh gelten. Verschiedene Konstanten besitzen auch unterschiedliche Auswirkungen. Zudem gibt es eine Konstante, die je nach Plattform einen anderen Inhalt besitzt.

Konstante Wert Auflistung Kategorie Bibliothek Plattform
vbNewLine Chr(13)+Chr(10)
bzw. Chr(13)
Constants Verschiedene Konstanten VBA Windows und Macintosh (unterschiedlicher Wert)
Mehr dazu siehe hier.
vbHide 0 VbAppWinStyle Shell-Konstanten VBA Nur Windows
vbNormalFocus 1 VbAppWinStyle Shell-Konstanten VBA Windows und Macintosh (unterschiedliche Auswirkung)
Mehr dazu siehe hier.
vbMinimizedFocus 2 VbAppWinStyle Shell-Konstanten VBA Windows und Macintosh (unterschiedliche Auswirkung)
Mehr dazu siehe hier.
vbMaximizedFocus 3 VbAppWinStyle Shell-Konstanten VBA Windows und Macintosh (unterschiedliche Auswirkung)
Mehr dazu siehe hier.
vbNormalNoFocus 4 VbAppWinStyle Shell-Konstanten VBA Windows und Macintosh (unterschiedliche Auswirkung)
Mehr dazu siehe hier.
vbMinimizedNoFocus 6 VbAppWinStyle Shell-Konstanten VBA Windows und Macintosh (unterschiedliche Auswirkung)
Mehr dazu siehe hier.
vbSystem 4 VbFileAttribute Dir-, GetAttr- und SetAttr-Konstanten VBA Nur Windows
vbArchive 32 VbFileAttribute Dir-, GetAttr- und SetAttr-Konstanten VBA Nur Windows
vbDirectory 16 VbFileAttribute Dir-, GetAttr- und SetAttr-Konstanten VBA Nur Windows
vbVolume 8 VbFileAttribute Dir-, GetAttr- und SetAttr-Konstanten VBA Nur Windows
vbAlias 64 VbFileAttribute Dir-, GetAttr- und SetAttr-Konstanten VBA Nur Macintosh
vbUnicode 64 VbStrConv StrConv-Konstanten VBA Nur Windows
vbFromUnicode 128 VbStrConv StrConv-Konstanten VBA Nur Windows
msoBarMenuBar 6 MsoBarPosition Office Office Nur Macintosh

In Bezug auf Anzeige des Anwendungsfenster im Vordergrund oder Hintergrund gibt es Unterschiede. Auf dem Macintosh plazieren vbNormalFocus, vbMinimizedFocus und vbMaximizedFocus die Anwendung im Vordergrund. vbNormalNoFocus und vbMinimizedFocus plazieren die Anwendung im Hintergrund.

 

Unklare Konstanten

Konstante Wert Auflistung Kategorie Bibliothek Plattform
vbAppWindows 2 VbQueryClose QueryClose-Konstanten VBA Nur Windows?
vbAppTaskManager 3 VbQueryClose QueryClose-Konstanten VBA Nur Windows?
vbFormFeed Chr(12) Constants Verschiedene Konstanten VBA Nur Windows?
vbVerticalTab Chr(11) Constants Verschiedene Konstanten VBA Nur Windows?

 

XlFileFormat-Konstanten

FileFormat-Konstante Bemerkung
xlAddIn -
xlCSV -
xlCSVMac Sollte nicht unter Windows verwendet werden.
xlCSVMSDOS Sollte nicht auf Macintosh verwendet werden.
xlCSVWindows Sollte nicht auf Macintosh verwendet werden.
xlCurrentPlatformText Sollte statt xlTextMac und xlTextWindows verwendet werden.
xlDBF2 -
xlDBF3 -
xlDBF4 -
xlDIF -
xlExcel2 -
xlExcel2FarEast -
xlExcel3 -
xlExcel4 -
xlExcel4Workbook -
xlExcel5 -
xlExcel7 -
xlExcel9795 Auch in VBA für Macintosh vorhanden?
xlHTML In Excel 97 nicht vorhanden. Macintosh?
xlIntlAddIn -
xlIntlMacro -
xlSYLK -
xlTemplate -
xlTextMac Sollte nicht unter Windows verwendet werden.
xlTextMSDOS Sollte nicht auf Macintosh verwendet werden.
xlTextPrinter  
xlTextWindows Sollte nicht auf Macintosh verwendet werden.
xlUnicodeText In Excel 97 nicht vorhanden. Macintosh?
Macht auf Macintosh keinen Sinn, weil kein Unicode.
xlWebArchive Nur in Excel 2003 vorhanden. Macintosh?
xlWJ2WD1 -
xlWJ3 -
xlWJ3FJ3 -
xlWK1 -
xlWK1ALL -
xlWK1FMT -
xlWK3 -
xlWK3FM3 -
xlWK4 -
xlWKS -
xlWorkbookNormal -
xlWorks2FarEast -
xlWQ1 -
xlXMLSpreadsheet Nur in Excel 2003 vorhanden. Macintosh?

Zum Kapitelanfang Zum Seitenanfang


Unterschiede bei VBA-Fehlermeldungen

Fehlermeldungen wegen inkompatiblen VBA-Sprachelementen:

- MacID-Funktion

- MacScript-Funktion

- Environ-Funktion

- CDecl-Schlüsselwort

- SendKeys-Anweisung (?)

 

Fehler beim Kompilieren: Sub oder Function nicht definiert

 

Auswirkung bei Verwendung eines nicht verfügbaren Sprachelementes

 

 

Es existieren ein paar Fehlermeldungen, die ausschliesslich auf einem Macintosh-System auftreten können. Oder sie können auf Windows und Macintosh auftreten, jedoch unterschiedliche Ursachen besitzen, und folglich anders behoben werden müssen.

Diese Laufzeitfehler besitzen je nach Plattform ein paar Unterschiede:
- Laufzeitfehler 35
- Laufzeitfehler 49
- Laufzeitfehler 53
- Laufzeitfehler 67
- Laufzeitfehler 447
- Laufzeitfehler 454
- Laufzeitfehler 455

Zum Seitenanfang


Fehlermeldung: Sub, Function oder Property nicht definiert (Fehler 35)

Laufzeitfehler 35
Abbildung: Laufzeitfehler 35

Eine Sub-, Function- oder Property-Prozedur muss definiert sein, um aufgerufen werden zu können. Dieser Fehler hat die folgenden Ursachen und Lösungen:

        So fügen Sie einen Verweis hinzu:
        1. Öffnen Sie das Dialogfeld Verweise.
        2. Bestimmen Sie den Namen des Projekts, das die gewünschte Prozedur enthält.
        Wenn der Projektname nicht im Dialogfeld "Verweise" angezeigt wird, können Sie nach dem Prozedurnamen suchen,
        indem Sie auf die Schaltfläche Suchen klicken.
        3. Aktivieren Sie das Kontrollkästchen links neben dem Projektnamen.
        4. Klicken Sie auf OK.

Siehe auch unter:
Declare-Anweisung

Zum Seitenanfang


Fehlermeldung: Falsche DLL-Aufrufkonvention (Fehler 49)

Laufzeitfehler 49
Abbildung: Laufzeitfehler 49

Argumente, die an eine Routine in einer Dynamic Link Library (DLL) oder in einer Macintosh Code-Ressource übergeben werden, müssen mit den von der Routine erwarteten Argumenten genau übereinstimmen. Aufrufkonventionen legen die Anzahl, den Typ und die Reihenfolge der Argumente fest. Für diesen Fehler gibt es die folgenden Ursachen und Lösungen:

Siehe auch unter:
Declare-Anweisung
CDecl-Schlüsselwort

Zum Seitenanfang


Fehlermeldung: Datei nicht gefunden (Fehler 53)

LFZ-Fehler-53.gif (2473 Byte)

 

Abbildung: Laufzeitfehler 53

Die Datei wurde an der angegebenen Stelle nicht gefunden. Dieser Fehler hat die folgenden Ursachen und Lösungen:

Siehe auch unter:
Declare-Anweisung
Erlaubte Zeichen in Dateinamen

Zum Seitenanfang


Fehlermeldung: Zu viele Dateien (Fehler 67)

LFZ-Fehler-67.gif (2437 Byte)

 

Abbildung: Laufzeitfehler 67

Die Anzahl der Datenträgerdateien, die gleichzeitig geöffnet sein können, ist begrenzt. Dieser Fehler hat die folgenden Ursachen und Lösungen:

Siehe auch unter:
Anzahl gleichzeitig geöffnete Dateien
FreeFile-Funktion

Zum Seitenanfang


Fehlermeldung: Objekt unterstützt die aktuelle Ländereinstellung nicht (Fehler 447)

LFZ-Fehler-447.gif (2879 Byte)

 

Abbildung: Laufzeitfehler 447

Nicht alle Objekte unterstützen alle Einstellungen für das Gebietsschema. Dieser Fehler hat die folgenden Ursachen und Lösungen:

Siehe auch unter:
Declare-Anweisung

Zum Seitenanfang


Fehlermeldung: Code-Ressource nicht gefunden (Fehler 454)

LFZ-Fehler-454.gif (2620 Byte)

 

Abbildung: Laufzeitfehler 454

Dieser Fehler kann nur auf dem Macintosh auftreten. Für diesen Fehler gibt es die folgende Ursache und Lösung:

Siehe auch unter:
Declare-Anweisung

Zum Seitenanfang


Fehlermeldung: Fehler durch gesperrte Code-Ressource (Fehler 455)

LFZ-Fehler-455.gif (2714 Byte)

 

Abbildung: Laufzeitfehler 455

Dieser Fehler kann nur auf dem Macintosh auftreten. Wenn Sie auf eine Code-Ressource zugreifen, müssen Sie diese sperren. Für diesen Fehler gibt es die folgende Ursache und Lösung:

Siehe auch unter:
Declare-Anweisung

Zum Kapitelanfang Zum Seitenanfang


Änderungen und Erweiterungen in VBA 6.0

Einführung

Visual Basic für Applikationen Version 6, das in Microsoft Office für Windows ab Version 2000 und in Microsoft Office für Macintosh ab Version 2004 integriert ist, besitzt gegenüber der Vorgängerversion VBA 5 ein paar wichtige Änderungen und Neuerungen. Diese werden in den nachfolgenden drei Abschnitten vorgestellt.

 Neue Funktionen
 Geänderte Funktionen
 Weitere Änderungen

Beachten Sie bitte, dass Office 97 für Windows, Office 98 für Macintosh, Office 2001 für Macintosh und Office v.X für Macintosh die VBA-Version 5 enthalten. Alle anderen Office-Versionen enthalten die neue VBA-Version 6. Hier eine Versionsübersicht:

Office-Version VBA-Version
Office 97 (Windows) VBA 5
Office 98 (Macintosh) VBA 5
Office 2000 (Windows) VBA 6
Office 2001 (Macintosh) VBA 5
Office 2002/XP (Windows) VBA 6
Office v.X (Macintosh) VBA 5
Office 2003 (Windows) VBA 6
Office 2004 (Macintosh) VBA 6

 

Vermeiden von VBA 6-Sprachelementen

Bei "Nein" funktioniert das VBA-Programm nicht, sofern Sprachelemente von VBA 6 benutzt wurden.

Funktioniert mit...

Excel für Windows Excel für Macintosh
Entwickelt mit... 97 2000 2002 2003 98 2001 v.X 2004
Excel 97 für Windows - Ja Ja Ja Ja Ja Ja Ja
Excel 2000 für Windows Nein - Ja Ja Nein Nein Nein Ja
Excel 2002 für Windows Nein Ja - Ja Nein Nein Nein Ja
Excel 2003 für Windows Nein Ja Ja - Nein Nein Nein Ja
Excel 98 für Macintosh Ja Ja Ja Ja - Ja Ja Ja
Excel 2001 für Macintosh Ja Ja Ja Ja Ja - Ja Ja
Excel v.X für Macintosh Ja Ja Ja Ja Ja Ja - Ja
Excel 2004 für Macintosh Nein Ja Ja Ja Nein Nein Nein -

Lesebeispiel:

Ein mit Excel 2003 für Windows entwickeltes VBA-Programm kann mit Excel 2000, Excel 2002 und Excel 2004 problemlos ausgeführt werden, weil diese drei Excelversionen, genau wie Excel 2003, die VBA-Version 6 enthalten. Bei Excel 97, Excel 98, Excel 2001 und Excel v.X. dagegen treten Probleme auf, weil diese Excelversionen das ältere VBA 5 enthalten.

 

 

Weitere Informationen von Microsoft über die neuen Spachfeatures erhalten Sie hier:
  What's New in Language Features
  http://msdn.microsoft.com/library/en-us/vbcon98/html/vbmscWhatsNewInLanguageFeaturesVB98.asp

Zum Seitenanfang


Auswirkung bei Verwendung eines nicht verfügbaren Sprachelementes

Immer wenn ein VBA-Programm ein Sprachelement von VBA 6 verwendet, und dann der Code in einem Microsoft Office-Programm ausgeführt wird, welches VBA 5 enthält, tritt ein Kompilierungsfehler auf. Der Fehler erscheint gewöhnlich beim Öffnen der Arbeitsmappe (beziehungsweise des Add-Ins).

Der Text der Fehlermeldung ist davon abhängig, ob das VBA-Projekt mit einem Kennwort geschützt ist oder nicht.

 

Ungeschütztes VBA-Projekt

Wenn das VBA-Projekt nicht geschützt ist, tritt der Fehler "Fehler beim Kompilieren: Sub oder Function nicht definiert" auf.

Fehler beim Kompilieren
Abbildung: Fehler beim Kompilieren

 

Geschütztes VBA-Projekt

Wenn das VBA-Projekt mit einem Kennwort geschützt ist, tritt der Fehler "Kompilierungsfehler in verborgenem Modul: [...]" auf. Im Meldungstext steht jeweils, welches Modul die fehlerhafte Codezeile enthält.

Kompilierungsfehler in verborgenem Modul 'Diese Arbeitsmappe'
Abbildung: Kompilierungsfehler in verborgenem Modul 'Diese Arbeitsmappe'

Kompilierungsfehler in verborgenem Modul '<Modulname>'
Abbildung: Kompilierungsfehler in verborgenem Modul '<Modulname>'

 

Bitte beachten Sie,

Ausserhalb-einer-Prozedur-ungueltig.gif (2679 Byte)

 

Abbildung: Fehler beim Kompilieren

 

 

Zum Seitenanfang


Neue Funktionen

Die VBA-Version 6 enthält im Vergleich zu VBA 5 insgesamt 13 neue Funktionen. Es handelt sich mehrheitlich um wenig spektakuläre Erweiterungen. Lediglich die beiden Funktionen Replace und Split gebühren einer gewissen Aufmerksamkeit. Die anderen neuen Funktionen können ohne grossen Aufwand mit den alten VBA 5-Anweisungen und -Funktionen nachprogrammiert werden. Zudem werden sie in der Praxis erfahrungsgemäss nur selten verwendet.

Folgende Funktionen sind neu (alphabetisch sortierte Liste):
- Filter
- FormatCurrency
- FormatDateTime
- FormatNumber
- FormatPercent
- InStrRev
- Join
- MonthName
- Replace
- Round
- Split
- StrReverse
- WeekdayName

To Top


Filter
Gibt ein nullbasiertes Datenfeld zurück, das eine Untermenge eines Zeichenfolgen-Datenfeldes basierend auf festgelegten Filterkriterien enthält.

Beschreibung auf der Microsoft-Webseite: Filter

Alternative:
Kombination von Mid-Funktion und InStr-Funktion

To Top


FormatCurrency
Gibt unter Verwendung der in der Systemsteuerung definierten Währung einen als Währungswert formatierten Ausdruck zurück.

Beschreibung auf der Microsoft-Webseite: FormatCurrency

Alternative:
Format-Funktion

To Top


FormatDateTime
Gibt einen als Datum oder Uhrzeit formatierten Ausdruck zurück.

Beschreibung auf der Microsoft-Webseite: FormatDateTime

Alternative:
Format-Funktion

To Top


FormatNumber
Gibt einen als Zahl formatierten Ausdruck zurück.

Beschreibung auf der Microsoft-Webseite: FormatNumber

Alternative:
Format-Funktion

To Top


FormatPercent
Gibt einen als Prozentsatz formatierten Wert (mit 100 multipliziert) gefolgt von dem %-Zeichen zurück.

Beschreibung auf der Microsoft-Webseite: FormatPercent

Alternative:
Format-Funktion

To Top


InStrRev
Gibt die Position eines Vorkommnisses einer Zeichenfolge in einer anderen Zeichenfolge vom Ende der Zeichenfolge gesehen an.

Beschreibung auf der Microsoft-Webseite: InStrRev

Alternative:
Umgekehrte For-Next-Schleife mit Mid-Funktion

To Top


Join
Gibt eine Zeichenfolge zurück, die sich aus der Kombination einer Reihe von untergeordneten Zeichenfolgen, die in einem Datenfeld enthalten sind, ergibt.

Beschreibung auf der Microsoft-Webseite: Join

Alternative:
For-Next-Schleife mit &-Operator (Zeichenfolgen verketten)

To Top


MonthName
Gibt eine Zeichenfolge zurück, die den festgelegten Monat angibt.

Beschreibung auf der Microsoft-Webseite: MonthName

Alternativen:

MsgBox Format$(Date, "mmmm")    'Gibt den langen Monat aus (z.B. "September")

MsgBox Format$(Date, "mmm")    'Gibt den kurzen Monat aus (z.B. "Sep")

To Top


Replace
Gibt eine Zeichenfolge zurück, in der eine festgelegte, untergeordnete Zeichenfolge mit einer festgelegten Häufigkeit durch eine andere untergeordnete Zeichenfolge ersetzt wurde.

Beschreibung auf der Microsoft-Webseite: Replace

Alternative 1:
Mid-Anweisung

Alternative 2:
Application.WorksheetFunction.Replace (ERSETZEN-Tabellenfunktion)

Alternative 3:

Public Function Replace(sIn As String, sOld As String, sNew As String) As String
  If sIn = "" Then
    Exit Function
  End If
  If sOld = "" Then
    Exit Function
  End If
  Dim colBefore As Collection
  Set colBefore = New Collection
  Dim nPos As Long
  Dim nPosLast As Long
  Dim nLen As Long
  Dim vItem As Variant
  nPosLast = 1
  nPos = InStr(nPosLast, sIn, sOld)
  Do While nPos <> 0
    colBefore.Add Mid(sIn, nPosLast, (nPos) - nPosLast)
    nPosLast = nPos + Len(sOld)
    nPos = InStr(nPosLast, sIn, sOld)
  Loop
  Replace = Space(Len(sIn) + ((Len(sNew) - Len(sOld)) * colBefore.Count))
  nPos = 1
  For Each vItem In colBefore
    nLen = Len(vItem)
    If nLen > 0 Then
      Mid(Replace, nPos, nLen) = vItem
      nPos = nPos + nLen
    End If
    If sNew <> "" Then
      Mid(Replace, nPos, Len(sNew)) = sNew
      nPos = nPos + Len(sNew)
    End If
  Next
  If nPosLast <= Len(sIn) Then
    Mid(Replace, nPos) = Mid(sIn, nPosLast)
  End If
  Set colBefore = Nothing
End Function

Quelle: Scott Seligman, Scott's Sample Code (http://www.scottandmichelle.net/scott/code/index2.mv?codenum=051)

To Top


Round
Gibt eine Zahl zurück, die auf eine festgelegte Anzahl an Dezimalpunkten gerundet wurde.

Beschreibung auf der Microsoft-Webseite: Round

Alternative:
Application.WorksheetFunction.Round (RUNDEN-Tabellenfunktion)

To Top


Split
Gibt ein nullbasiertes, eindimensionales Datenfeld zurück, das eine festgelegte Anzahl an untergeordneten Zeichenfolgen enthält.

Beschreibung auf der Microsoft-Webseite: Split

Alternative 1:
Dieser Programmcode ist in ein Klassenmodul einzufügen:

Private mCol As Collection

Public Sub SplitInto(sIn As String, Optional sDelim As String = ",")
  Dim sPart As String
  Dim iPos As Long
  Dim iLoc As Long
  iLoc = 0
  iPos = 1
  Do
    iLoc = InStr(iPos, sIn, sDelim)
    If iLoc > 0 Then
      sPart = Mid(sIn, iPos, iLoc - iPos)
      iPos = iLoc + Len(sDelim)
    Else
      sPart = Mid(sIn, iPos)
      iPos = 0
    End If
    mCol.Add sPart
  Loop Until iPos = 0
End Sub

Public Function Add(sValue As String) As String
  mCol.Add sValue
  Add = sValue
End Function

Public Property Get Item(nIndex As Long) As String
  Item = mCol(nIndex)
End Property

Public Property Get Count() As Long
  Count = mCol.Count
End Property

Public Sub Remove(nIndex As Long)
  mCol.Remove nIndex
End Sub

Public Property Get NewEnum() As IUnknown 'Procedure ID is -4
  Set NewEnum = mCol.[_NewEnum]
End Property

Private Sub Class_Initialize()
  Set mCol = New Collection
End Sub

Private Sub Class_Terminate()
  Set mCol = Nothing
End Sub

Aufruf-Beispiel (Prozedur in ein Codemodul einfügen):

Sub SplitDemo()
  Dim vLine
  Dim sclLines As New StringCollection
  sclLines.SplitInto Clipboard.GetText, vbNewLine

  For Each vLine In sclLines
    Debug.Print "[" & vLine & "]"
  Next

End Sub

Quelle: Scott Seligman, Scott's Sample Code (http://www.scottandmichelle.net/scott/code/index2.mv?codenum=048)

Alternative 2:
Dieser Programmcode ist in ein Codemodul einzufügen:

Public Function Split(Expression As String, Optional Delimiter, Optional Limit As Long = -1, _
    Optional Compare As Long = vbBinaryCompare) As Variant
  Dim i As Integer
  Dim n As Integer
  Dim aStr() As String
  ReDim aStr(0)
  aStr(0) = Expression
  If IsMissing(Delimiter) Then Delimiter = " "
  If Len(Expression) = 0 Then GoTo ExitHandler
  If Compare < 0 Or Compare > 1 Then GoTo ExitHandler
  Do
    n = UBound(aStr)
    i = InStr(1, aStr(n), Delimiter, Compare)
    If i = 0 Then Exit Do
    If Limit > -1 And n = Limit Then Exit Do
    ReDim Preserve aStr(0 To n + 1)
    aStr(n + 1) = aStr(n)
    aStr(n) = Left(aStr(n), i - 1)
    aStr(n + 1) = Mid(aStr(n + 1), i + 1)
  Loop
ExitHandler:
  Split = aStr()
End Function

Quelle: xlSupport.com (http://www.xlsupport.com)

To Top


StrReverse
Gibt eine Zeichenfolge zurück, in der die Reihenfolge der Zeichen einer bestimmten Zeichenfolge umgekehrt wurde.

Beschreibung auf der Microsoft-Webseite: StrReverse

Alternative:
Dieser Programmcode ist in ein Codemodul einzufügen:

Public Function StrReverse(sIn As String) As String
  Dim i As Long
  StrReverse = Space(Len(sIn))
  For i = 1 To Len(sIn)
    Mid(StrReverse, Len(sIn) - (i - 1), 1) = Mid(sIn, i, 1)
  Next i
End Function

Aufruf-Beispiel (Prozedur in ein Codemodul einfügen):

Sub StrReverseDemo()
  MsgBox StrReverse("Microsoft Excel 2004 for Macintosh")
End Sub

Quelle: Scott Seligman, Scott's Sample Code (http://www.scottandmichelle.net/scott/code/index2.mv?codenum=050)

To Top


WeekdayName
Gibt eine Zeichenfolge zurück, die den festgelegten Wochentag angibt.

Beschreibung auf der Microsoft-Webseite: WeekdayName

Alternativen:

MsgBox Format$(Date, "dddd")    'Gibt den langen Wochentag aus (z.B. "Mittwoch")

MsgBox Format$(Date, "ddd")    'Gibt den kurzen Wochentag aus (z.B. "Mi")

Zum Seitenanfang


Geänderte Funktionen

CreateObject
CreateObject now lets you specify a machine name as an optional argument, which allows you to create objects on remote machines.

Beschreibung von Microsoft:
  CreateObject Function Enhancements
 
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctcreateobject.asp

To Top


StrConv
New LCID argument enables you to specify a LocaleID for a string different than the system's LocaleID.

Beschreibung von Microsoft:
  StrConv Function Enhancement
 
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctstrconv.asp

Zum Seitenanfang


Weitere Änderungen

In der VBA-Version 6 gibt es ein paar weitere Änderungen, die auf die meisten VBA-Programme kaum einen Einfluss haben. In VBA-Programmen, die von einem fortgeschrittenen Programmierer geschrieben wurden, kann es jedoch sein, dass die Sprachelemente CallByName, Enum und AddressOf verwendet wurden.

Diese weiteren Änderungen existieren in VBA 6:
- Benutzerdefinierte Typen in öffentlichen Methoden
- Funktionen können Datenfelder zurückgeben
- Dynamische Datenfelder können zugewiesen werden
- Neue Anweisung CallByName
- Neue Anweisung Enum
- Neuer Operator AddressOf
- Erweiterung des File System Object-Objektes
- Neues Objekt Dictionary
- Neue Methode DisableCustomize

To Top


Benutzerdefinierte Typen in öffentlichen Methoden
User-defined types can be arguments or return types of public properties and methods.

Beschreibung von Microsoft:
  Type Statement
  http://msdn.microsoft.com/library/en-us/vbenlr98/html/vastmType.asp

To Top


Funktionen können Datenfelder zurückgeben
Functions and properties procedures will be able to return arrays.

Beschreibung von Microsoft:
  Advanced Features of Arrays
  http://msdn.microsoft.com/library/en-us/vbcon98/html/vbconAdvancedFeaturesOfArrays.asp

To Top


Dynamische Datenfelder können zugewiesen werden
Variable-sized arrays can now appear on the left side of an assignment. Fixed-sized arrays cannot appear on the left side of an assignment, although they can appear on the right.

Beschreibung von Microsoft:
  Resizable Arrays Can Be Assigned
  http://msdn.microsoft.com/library/en-us/vbcon98/html/vbconadvancedfeaturesofarrays.asp

To Top


Neue Anweisung CallByName
Allows access to a property or method by specifying a string containing the name of the property or method, rather than by coding the name explicitly.

Beschreibung von Microsoft:
  CallByName
 
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vafctcallbynamefunction.asp

To Top


Neue Anweisung Enum

Beschreibung von Microsoft:
  Enum Statement
 
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vastmEnum.asp

Hinweis: Gemäss der Übersicht What's New in Language Features von Microsoft ist Enum keine neue Anweisung in VBA 6. Diese Information stimmt zwar, ist aber verwirrend, weil man so annimmt, dass Enum folglich bereits in VBA 5.0 (also unter anderem in Microsoft Office 97) vorhanden war. Das ist jedoch nicht der Fall. Dieses Sprachelement wurde zwischen VBA 5.0 und VBA 6.0 eingeführt.

To Top


Neuer Operator AddressOf

Beschreibung von Microsoft:
  AddressOf Operator
 
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vaoprAddressOf.asp

Hinweis: Gemäss der Übersicht What's New in Language Features von Microsoft ist AddressOf kein neuer Operator in VBA 6. Diese Information stimmt zwar, ist aber verwirrend, weil man so annimmt, dass AddressOf folglich bereits in VBA 5.0 (also unter anderem in Microsoft Office 97) vorhanden war. Das ist jedoch nicht der Fall. Dieses Sprachelement wurde zwischen VBA 5.0 und VBA 6.0 eingeführt.

To Top


Erweiterung des File System Object-Objektes
Offers a streamlined set of routines to traverse the file system and create text files and directories.

Beschreibung von Microsoft:
  File System Objects
 
http://msdn.microsoft.com/library/en-us/vbcon98/html/vbconthefilesystemobjects.asp

To Top


Neues Objekt Dictionary
The Dictionary object overcomes some of the Collection object's limitations and is easier to use because it generates fewer run-time errors for common operations and is more flexible.

Beschreibung von Microsoft:
  Dictionary Object
 
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vaobjdictionary.asp

To Top


Neue Methode DisableCustomize (CommandBars-Auflistung, Office-Objektmodell)
Im Objektmodell von Microsoft Office wurde das CommandBars-Auflistungsobjekt mit der neuen Methode DisableCustomize ausgestattet.

Wenn der Programmcode in einer VBA 5-Umgebung, also in Microsoft Office 97 für Windows oder in Microsoft Office für Macintosh älter als Version 2004 ausgeführt werden soll, darf DisableCustomize nicht verwendet werden.

 

#If Vba6 Then
  Application.CommandBars.DisableCustomize = True
#End If

Zum Seitenanfang


Weitere wichtige Unterschiede

Abgesehen von den funktionalen Unterschieden sollten Sie auch darauf achten, dass in Dokumentationen, Benutzer-Anleitungen, Hinweis- und Fehlermeldungen usw. korrekte Bezeichnungen verwenden. Hier zwei Beispiele, was damit gemeint ist:

1. Beispielsweise wird auf einem Macintosh-System die Hilfe mit der HILFE-Taste und nicht wie bei Windows mit F1 aufgerufen. Wenn Sie also zum Beispiel in der Statusleiste die Information "Drücken Sie F1 für Hilfe" anzeigen, so kann ein Macintosh-Anwender mit diesem Hinweis nichts anfangen, weil die Tastatur seines Computers zwar eine Taste F1 besitzt, diese jedoch die Rückgängig-Funktion aufruft.

2. Wenn Sie in der Benutzerdokumentation schreiben, man solle mit dem Menübefehl Datei/Öffnen das "Öffnen"-Dialogfenster aufrufen, so stimmt diese Angabe bei Microsoft Excel v.X für Macintosh nicht, weil in dieser Excelversion das Menü nicht mit "Datei" sondern mit "Excel" beschriftet ist.

Nachfolgend ein paar interessante und wichtige Unterschiede zwischen Excel für Windows und Excel für Macintosh:
- Excel-Hilfe aufrufen
- VBA-Editor öffnen
- Makroausführung unterbrechen/In den Haltemodus wechseln
- System unterbrechen
- Kopieren und Einfügen
- Menü "Datei" von Excel
- Persönliche Makro-Arbeitsmappe
- Excel-Startordner
- Funktionen für Standard OLE-Objekte

Zum Seitenanfang


Excel-Hilfe aufrufen

Windows: F1
Macintosh: HILFE

Anmerkung
Bitte beachten Sie, dass auf dem Macintosh mit der Taste F1 der Rückgängig-Befehl ausgeführt wird!

Zum Seitenanfang


VBA-Editor öffnen

Windows: ALT+F11
Macintosh: OPTION+F11

Zum Seitenanfang


Makroausführung unterbrechen/In den Haltemodus wechseln

Windows: Strg+Pause (Ctrl+Break) bzw. Esc in Microsoft Excel
Macintosh: BEFEHL+Punkt (COMMAND+PERIOD)

Zum Seitenanfang


System unterbrechen

Windows: Strg+Alt+Entf (Ctrl+Alt+Delete)
Macintosh: COMMAND+OPTION+ESC (bzw. Force Quit)

Zum Seitenanfang


Kopieren und Einfügen

Windows: Strg+C für Kopieren; Strg+V für Einfügen
Macintosh: COMMAND+C für Kopieren, COMMAND+V für Einfügen (oft auch als CMD+C bzw. CMD+V angegeben)

Zum Seitenanfang


Menü "Datei" von Excel

Windows: Das Menü "Datei" ist in allen Excelversionen mit "Datei" bezeichnet
Macintosh: Das Menü "Datei" ist in Excel 98 und Excel 2001 mit "Datei", in Excel v. X jedoch mit "Excel" bezeichnet.

Anmerkung
Die unterschiedliche Beschriftung des Menüs muss übrigens auch im Programmcode berücksichtigt werden. Beispielsweise führt in Excel v.X der Zugriff auf das Control "Datei" der Arbeitsblatt-Menüleiste ("Worksheet Menu Bar") zum Laufzeitfehler 5 "Unzulässiger Prozeduraufruf oder ungültiges Argument", weil dieses Control nicht existiert (d.h. genauer gesagt einen anderen Namen besitzt). Die Codezeile

MsgBox Application.CommandBars(1).Controls("Datei").Enabled

funktioniert somit nicht.

Wenn stattdessen der Zugriff anhand der FindControl-Methode erfolgt, kann kein Fehler auftreten. Die Codezeile

MsgBox Application.CommandBars.FindControl(Id:=30002).Enabled

funktioniert daher in jedem Fall, egal auf welcher Plattform und in welcher Excelversion.

Zum Seitenanfang


Persönliche Makro-Arbeitsmappe

Windows: Dateiname "Personl.xls", Ordner "XlStart"
Macintosh: Dateiname "Personal Macro Workbook", Ordner "<Microsoft Office folder>:Office:Startup:Excel:Personal Macro Workbook"

Anmerkung
Die persönliche Makro-Arbeitsmappe befindet sich gewöhnlich im oben angegebenen Ordner. Sie kann allerdings auch in einem anderen Ordner liegen (z.B. im zusätzlichen Startordner von Microsoft Excel).

Zum Seitenanfang


Excel-Startordner

Windows: [Path to Office folder]\Office\Xlstart
Macintosh:
- Excel X: "Macintosh HD/[Path to Office folder]/Microsoft Office X/Office/Startup/Excel"
- Excel 2001: "Macintosh HD:[Path to Office folder]:Microsoft Office 2001:Office:Startup:Excel"

"Macintosh HD" ist die Macintosh-Festplatte und "[Path to Office folder]" der Pfad zum Programmverzeichnis von Microsoft Office.

Zum Seitenanfang


Zeichen in Dateinamen

Je nach Plattform sind bestimmte Zeichen in Dateinamen verboten.

Windows: Anführungszeichen ("), Apostroph ('), Schrägstrich (/), umgekehrter Schrägstrich (\), Doppelpunkt (:) und vertikale Linie (|)
Macintosh: Doppelpunkt (:)

Mehr dazu siehe unter Erlaubte Zeichen in Dateinamen und Codebeispiel: Gültigkeit eines vom Benutzer eingegebenen Dateinamens überprüfen.

Zum Seitenanfang


Matrixformel eingeben

Windows: Strg+Umschalt+Eingabe
Macintosh: +Eingabe

Zum Seitenanfang


Platzhalterzeichen * und ? (in Datei- und Pfadnamen)

Windows: Der Platzhalter * steht für mehrere Zeichen, ? steht für ein einzelnes Zeichen
Macintosh: Platzhalterzeichen haben keine Bedeutung und werden als gewöhnliche Zeichen behandelt

Anmerkung
Die beiden Platzhalterzeichen besitzen auf dem Macintosh nur in Bezug auf Datei-/Pfadnamen keine Bedeutung. Für andere Dinge kann man sie ohne Einschränkung einsetzen, unter anderem zum Vergleichen von Zeichenfolgen, wie es diese Codezeile als Beispiel zeigt:

If strName Like "Mei*" Then

Zum Seitenanfang


Excel-Versionen

Bei der Angabe einer Excelversion muss man darauf achten, dass man die korrekte Bezeichnung verwenden. Diese neueren Versionen existieren von Microsoft Excel:

Windows:
- Excel 97, Version 8
- Excel 2000, Version 9
- Excel 2002 (auch Excel XP genannt), Version 10
- Excel 2003, Version 11

Macintosh:
- Excel 98, Version 8
- Excel 2001, Version 9
- Excel X (auch Excel v.X genannt), Version 10
- Excel 2004, Version 11

Zum Seitenanfang


Dateiformate (Konstanten von XlFileFormat)

Die beiden Dateiformate CSV und Text besitzen je nach Plattform unterschiedliche Konstanten.

Windows: xlCSVWindows, xlTextWindows
Macintosh: xlCSVMac, xlTextMac

Tipp: Konstante xlCurrentPlatformText einsetzen
Mit der Konstante xlCurrentPlatformText wird automatisch das gemäss der gerade vorliegenden Plattform erforderliche Textformat benutzt. Man muss somit nicht die gerade verwendete Plattform kennen und entsprechend entweder xlTextWindows oder xlTextMac verwenden.

Eine vollständige Liste der Konstanten-Inkompatibilitäten finden Sie unter Unterschiede bei integrierten Konstanten.

Zum Seitenanfang


Funktionen für Standard OLE-Objekte (StdFuctions von OLE Automation-Bibliothek, Datei StdOLE2.tlb)

In der Typen-Bibliothek "OLE Automation" (Datei StdOLE2.tlb) gibt es eine Funktion zum Laden einer Bilddatei (LoadPicture) und eine Prozedur zum Speichern eines Bildes (SavePicture). Sowohl LoadPicture als auch SavePicture stehen auf beiden Plattformen zur Verfügung und funktionieren identisch. Weil eine Dateioperation durchgeführt wird (Lesen bzw. Schreiben von Daten), muss jeweils ein Dateiname bzw. Dateipfad angegeben werden (Argument FileName). Hierbei ist zu Beachten, dass je nach Plattform die entsprechende Schreibweise für Pfade verwendet werden muss.

Modul StdFunctions:
- Funktion LoadPicture
- Prozedur SavePicture

Argument FileName

Zum Kapitelanfang Zum Seitenanfang


Spezialthemen

In diesem Kapitel "Spezialthemen" wird all jenes unter die Lupe genommen, was bei plattformunabhängigen Arbeitsmappen einen Einfluss hat oder haben könnte. Es handelt sich um Dinge, ...

 

 Kennwörter und Verschlüsselung
 Digitale Signaturen von VBA-Projekten
 UNC-Pfade in externen Verknüpfungen
 Office Web Components
 XL-Viewer
 Excel-Startparameter
 COM Add-Ins
 Excel 4-Makros
 Angebundene Symbolleisten
 Integrierte Dialoge
 Mail-System/E-Mail versenden
 Drucker/Druckeranschluss

Zum Seitenanfang


Kennwörter und Verschlüsselung

Sonderzeichen in Kennwörtern

 

Kennwort enthält spezielle Zeichen-Fehlermeldung
Abbildung: Fehlermeldung wegen speziellen Zeichen

 

 

[46]    XL97: Incorrect Password Error When Opening a Excel 2002 Workbook in Excel 97 or Excel 2000
Error Message "The password you supplied is not correct. Verify that the CAPS LOCK key is off and be sure to use the correct capitalization."
http://support.microsoft.com/?kbid=294414
Diese Fehlermeldung erscheint, wenn die Arbeitsmappe in Excel 2002 mit einer von Excel 97 nicht erkennbaren Verschlüsselung gespeichert wurde.

 

Zum Seitenanfang


Digitale Signaturen von VBA-Projekten

 

 

Zum Seitenanfang


UNC-Pfade in externen Verknüpfungen

Kapitel 2.8 "URL Encoding"

 

 

Zum Seitenanfang


Office Web Components

 

 

Zum Seitenanfang


XL-Viewer

 

 

Zum Seitenanfang


Excel-Startparameter

 

 

Zum Seitenanfang


COM Add-Ins

 

 

Zum Seitenanfang


Excel 4-Makros

 

TON.ABSPIELEN

VERZEICHNIS

 

 

Zum Seitenanfang


Angebundene Symbolleisten

Dateipfade werden von Microsoft Excel immer in Form von relativen Pfaden gespeichert. Bis auf eine einzige Ausnahme: Pfade von Dateien in Makrozuweisungen.

Zuweisen eines Makros
Abbildung: Zuweisen eines Makros

 

Zum Seitenanfang


Integrierte Dialoge

(Dialogs-Auflistung)

Application.Dialogs(xlDialogOpen).Show

z.B. xlDialogOpen, xlDialogSaveAs, xlDialogSaveWorkbook, xlDialogSaveWorkspace, xlDialogFileDelete, xlDialogFindFile, xlDialogMailLogon

 

- Welche Dialoge sind auf einer Plattform nicht verfügbar?

- Was ist mit unterschiedlichen Argumenten (Reihenfolge oder nicht vorhanden, weil das Dialogfenster anders aussieht)?

 

Zum Seitenanfang


Mail-System/E-Mail versenden

Macintosh verwendet dazu ein spezielles Objekt

(MailSystem-Eigenschaft des Application-Objektes mit xlPowerTalk-Konstante)

 

Zum Seitenanfang


Drucker/Druckeranschluss

Drucker- und Port-Bezeichnung.

Application.ActivePrinter

Die Bezeichnung des Drucker-Ports wird durch das Betriebssystem bestimmt.

?Application.ActivePrinter
HP LaserJet 4M Plus auf LPT1:

 

Namen zeichenorientierter Geräte in Dateinamen unzulässig (Fehler 320)

Sie können in Visual Basic keiner Datei denselben Namen geben wie einem zeichenorientierten Treiber. Dieser Fehler hat folgende Ursache und Lösung:

Sie haben versucht, einen Dateinamen wie z.B. AUX, CON, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, LPT4, PRN oder NUL zu verwenden.

Geben Sie der Datei einen anderen Namen.

 

 

Zum Kapitelanfang Zum Seitenanfang


Abfragen der Ausführungsumgebung

Sobald die Arbeitsmappe beziehungsweise das VBA-Programm etwas enthält, was nicht auf beiden Plattformen funktioniert oder zu unterschiedlichen Ergebnissen führt, muss man die aktuell verwendete Ausführungsumgebung abfragen.

Betriebssystem herausfinden
- In Microsoft Excel
- In einem anderen Microsoft Office-Programm
- Während der Code-Kompilierung

Excelversion herausfinden
- Haupt- und Unterversion
- Buildnummer
- Version der Programmdatei

VBA-Editor-Version herausfinden
- Programmversion

VBA-Version herausfinden
- Sprachversion

Windowsversion herausfinden
- Hauptversion, Unterversion und Buildnummer

Version eines anderen Microsoft Office-Programmes herausfinden
- Versions- und Buildnummer von Microsoft Word
- Versions- und Buildnummer von Microsoft PowerPoint

Zum Seitenanfang


Betriebssystem herausfinden

Betriebssystem in Microsoft Excel abfragen

Damit Sie ein VBA-Programm so schreiben können, damit es sowohl auf einem Windows- als auch auf einem Macintosh-Rechner funktioniert wird, müssen Sie wissen, unter welchem Betriebssystem Ihr Programm gerade ausgeführt wird. Mit anderen Worten muss im Programmcode herausgefunden werden, ob ein Windows- oder ein Macintosh-Rechner benutzt wird. Die Abfrage wird vorzugsweise mit der OperatingSystem-Eigenschaft des Application-Objektes vorgenommen.

Auf einem Macintosh-Rechner enthält die Eigenschaft OperatingSystem immer eine Zeichenfolge, die mit dem Wort "Macintosh" beginnt (z.B. "Macintosh 7.00"). Unter Windows enthält die Eigenschaft eine Zeichenfolge, die das Wort "Windows" enthält. Beispielsweise lautet sie bei Windows NT "Windows (32-bit) NT 4.00"; bei Windows 98 lautet sie "Windows (32-bit) 4.10". Damit man den Namen des Betriebssystems ohne Versionsnummer erhält, muss man die Zeichenfolge also noch auswerten. Dazu existieren drei Möglichkeiten, die nachfolgend vorgestellt werden.

To Top

Lösungsvariante mit der InStr-Funktion
Hier die von Microsoft empfohlene Lösung mit der InStr-Funktion:

Dim strOpSys As String
strOpSys = Application.OperatingSystem
If InStr(strOpSys, "Windows") > 0 Then
  'Windows
Else
  'Macintosh
End If

To Top

Lösungsvariante mit dem Like-Vergleichsoperator
In einem Microsoft Knowledge Base-Artikel ist auch diese Variante mit dem Like-Operator vorgestellt:

If Application.OperatingSystem Like "*Macintosh*" Then
  'Macintosh
Else
  'Windows
End If

To Top

Lösungsvariante mit der Evaluate-Methode und der INFO-Tabellenfunktion
Es gibt eine weitere Lösung anhand der INFO-Tabellenfunktion. Die Tabellenfunktion wird wie gewohnt als Formel in eine Zelle eingetragen:

=INFO("System")

Durch den angegebenen Infotyp "System" gibt die obige Formel auf einem Windows-Rechner "PCDOS" und auf einem Macintosh-Rechner "MAC" zurück.

Man kann die Funktion anhand der Evaluate-Methode auch direkt im VBA-Code auswerten:

If LCase(Evaluate("INFO(""System"")")) = "pcdos" Then
  'Windows
Else
  'Macintosh
End If

Die Umwandlung in Kleinbuchstaben mittels LCase erfolgt hier nur sicherheitshalber. In der Excel-Referenz (Online-Hilfe) steht, dass der Rückgabewert der Funktion die Kleinschrift verwendet, d.h. "pcdos" beziehungsweise "mac". Wenn man die INFO-Funktion jedoch in eine Zelle eingibt, so wird das Ergebnis in Grossschrift angezeigt, also "PCDOS" bzw. "MAC". Theorie und Praxis stimmen somit nicht überein, weshalb man eine explizite Schriftkonvertierung durchführen sollte.

Man könnte anstelle von "System" auch den Infotyp "SysVersion" (oder "OSVersion") verwenden. Dann erhält man die gleiche Zeichenfolge wie bei der Eigenschaft OperatingSystem. Der Nachteil ist allerdings, dass man diese Zeichenfolge wie bereits weiter oben beschrieben mittels InStr oder Like noch auswerten muss. Beim Infotyp "System" ist das nicht notwendig.

To Top

Lösungsvariante mit einer benutzerdefinierten Excel-Funktion
Wenn man das 'tatsächliche' Betriebssystem in einer Zelle ausgeben möchte, aber nicht die INFO-Tabellenfunktion verwenden will, muss man eine kleine benutzerdefinierte Excel-Funktion schreiben.

Die nachfolgende Funktion ermittelt anhand der bedingten Kompilierung die aktuelle Plattform. Der Programmcode muss in ein Codemodul eingegeben werden.

Public Function OS() As String
  #If Win32 Then
    OS = "Windows"
  #Else
    OS = "Macintosh"
  #End If
End Function

Achtung:

Die Zellformel lautet somit wie folgt:

=OS()

Je nach Plattform ist das Resultat der Formel entweder "Windows" oder "Macintosh".

Siehe auch unter Bedingte Kompilierung.
Siehe auch unter Compiler-Konstanten.
Siehe auch unter Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003.

To Top

Betriebssystem in einem anderen Microsoft Office-Programm abfragen

Microsoft Word
Wenn Sie Programmcode schreiben, der in einem anderen Microsoft Office-Programmen ausgeführt werden soll, müssen Sie die Unterschiede der jeweiligen Objektmodelle beachten. In Microsoft Word beispielsweise ist OperatingSystem eine Eigenschaft des System-Objektes und nicht des Application-Objektes:

If Application.System.OperatingSystem Like "*Windows*" Then
 
'Windows
Else

  'Macintosh
End If

Man kann System auch ohne vorangestelltes Application-Objekt schreiben:

If System.OperatingSystem Like "*Windows*" Then
 
'Windows
Else

  'Macintosh
End If

Bitte beachten Sie, dass in Microsoft Word die OperatingSystem-Eigenschaft nicht den gleichen Inhalt wie in Microsoft Excel besitzt. Die beiden obigen Codebeispiele geben bei Windows 98 nur "Windows" und bei Windows NT 4 nur "Windows NT" aus.

To Top

Microsoft PowerPoint
Bei Microsoft PowerPoint ist OperatingSystem wie bei Excel eine Eigenschaft des Application-Objektes. Diese Code :

If Application.OperatingSystem Like "*Windows*" Then
 
'Windows
Else

  'Macintosh
End If

Anmerkung
Vielleicht werden Sie denken, dass die Lösung mittels Like nicht funktioniert, weil auf dem Macintosh keine Platzhalterzeichen ('*' und '?') verwendet werden können. Die beiden Platzhalter können in diesem Fall auf Macintosh verwendet werden. Sie funktionieren nur nicht im Zusammenhang mit Datei- und Verzeichnisnamen. Mehr dazu siehe unter Dir-Funktion.

To Top

Betriebssystem während der Code-Kompilierung abfragen

Man kann das vorliegende Betriebssystem auch ganz ohne Benutzung einer Objekt-Eigenschaft (sprich OperatingSystem, siehe weiter oben) herausfinden. Dies wird durch die Verwendung der bedingten Kompilierung bzw. den Compiler-Konstanten ermöglicht. Genau genommen ist dies sogar die beste Lösung, da man die Spezialitäten der verschiedenen Office-Objektmodelle nicht zu berücksichtigen braucht - falls der Programmcode in verschiedenen Microsoft Office-Programmen zum Einsatz kommt.

Compiler-Konstante Win32
Mit der Compiler-Konstante Win32 kann festgestellt werden, ob der VBA-Code auf einem Windows-Rechner ausgeführt wird. Wenn Win32 gleich True ist, läuft das Programm unter Windows. Das folgende Beispiel gibt in diesem Fall die Meldung "Windows" aus:

#If Win32 Then
  MsgBox "Windows"
#Else
  MsgBox "Macintosh"
#End If

Compiler-Konstante Mac
Man kann auch anhand der integrierten Compiler-Konstante Mac überprüfen, ob das Programm auf einem Macintosh läuft. Wenn Mac gleich True ist, wird ein Macintosh verwendet und daher im nachstehenden Beispiel die Meldung "Macintosh" angezeigt:

#If Mac Then
  MsgBox "Macintosh"
#Else
  MsgBox "Windows"
#End If

Wichtig: Sie sollten grundsätzlich die Lösungsvariante mit der Compiler-Konstante Win32 benutzen. Also auch dann, wenn Sie Ihr Programm mit Excel für Macintosh beziehungsweise auf einem Macintosh entwickeln. Weil die Konstante Mac erst in VBA 6 zur Verfügung steht, kann der Code in älteren Versionen als Microsoft Office v.X für Macintosh zu einem falschen Ergebnis führen. Die Konstante Win32 dagegen funktioniert dagegen in allen Versionen von Excel für Macintosh und Excel für Windows.

TODO

Siehe auch unter Bedingte Kompilierung.
Siehe auch unter Compiler-Konstanten.
Siehe auch unter Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003.

Zum Seitenanfang


Excelversion herausfinden

Produktversion: 97

Excelversion: 97 SR-1

File Version (Dateiversion): 8.0a

Programmdatei-Version: 8.0.1.4307

Application.Version: 8.0a

Application.Build: 4307

 

Haupt- und Unterversion abfragen (Major/Minor)

Lösungsvariante mit der Version-Eigenschaft
Text...

TODO

Auch die Information der bei der Programmausführung vorliegenden Excelversion ist nützlich. Die Versionsnummer wird vorzugsweise anhand der Version-Eigenschaft des Application-Objektes ermittelt:

MsgBox Application.Version

Beachtet werden muss, dass nicht "97", "2000" oder dergleichen ausgegeben wird, sondern die interne Versionsnummer von Microsoft Excel. Bei Excel 97 lautet diese 8.0, bei Excel 2000 9.0, bei Excel 2002/XP 10.0 und bei Excel 2003 11.0. Bei Excel v.X für Macintosh lautet die Versionsnummer 10.0 oder, bei installiertem Office-Update, 10.1 (Anmerkung des Autors: Die exakten Versionsnummern von Excel für Macintosh kenne ich leider nicht). Dazu kommt, dass die Versionsinformation nicht zwingend nummerisch sein muss (weil die Version-Eigenschaft vom Typ String ist). Beispielsweise wird bei Excel 97 mit installiertem Service Release 1 als Version die Zeichenfolge "8.0a" angezeigt. Zum Herausfinden der Excel-Hauptversion kann der nachfolgende Programmcode verwendet werden, der die Val-Funktion von VBA zuhilfe nimmt:

If Val(Application.Version) = 8 Then
  'Microsoft Excel 97
Else
  'Microsoft Excel 2000 oder neuer
End If

Siehe auch unter Alle Updates und Service Packs von Office und Excel.

To Top

Lösungsvariante mit der Evaluate-Methode und der INFO-Tabellenfunktion
Den in Version hinterlegten Wert können Sie auch anhand der Excel-Tabellenfunktion INFO mit Infotyp "Version" herausfinden. In einer Tabellenblattzelle würde die Formel wie folgt aussehen:

=INFO("Version")

Bei Microsoft Excel 97 mit SR-1 steht in der Zelle als Ergebnis "8.0a" (vergleiche Beschreibung weiter oben).

Auch mit VBA-Code kann die Tabellenfunktion aufgerufen werden, indem man die Evaluate-Methode einsetzt. Die entsprechende Abfrage sieht dann so aus:

MsgBox Evaluate("INFO(""Version"")")

To Top

Buildnummer abfragen (Build bzw. Revision)

Die Buildnummer der vorliegenden Excelversion können Sie anhand der Build-Eigenschaft des Application-Objektes ermitteln:

MsgBox Application.Build

Für die Buildnummer gibt es keine entsprechende Excel-Tabellenfunktion.

Man kann eine benutzerdefinierte Funktion für Excel schreiben:

TODO

Public Function BUILDNUMMER() As Long
  BUILDNUMMER = Application.Build
End Function

TODO

=BUILDNUMMER()

To Top

Version der Programmdatei "Excel.exe" abfragen

TODO

Dateiversion von Excel.exe
Abbildung: Versionsigenschaften mit Dateiversion von Excel.exe

 

GetFileVersion-Methode des FileSystemObject-Objektes aus der File System Object-Bibliothek.

Der vollständige Pfad der Datei "Excel.exe" muss bekannt sein.

MsgBox CreateObject("Scripting.FileSystemObject").GetFileVersion("C:\Programme\Microsoft Office\Office\Excel.exe")

Die obige Programmzeile gibt zum Beispiel "8.0.1.4307" bei Microsoft Excel 97 mit SR-1 aus.

Zum Seitenanfang


VBA-Editor-Version herausfinden

Programmversion abfragen

Gibt einen String zurück. Beim VBA-Editor von Microsoft Office 97 wird "5.00" angezeigt.

TODO

MsgBox Application.VBE.Version

Zum Abfragen der VBA-Editor-Version gibt es keine Excel-Tabellenfunktion.

Man kann jedoch zu diesem Zweck eine benutzerdefinierte Excel-Funktion schreiben:

TODO

Public Function VBEVERSION() As String
  VBEVERSION = Application.VBE.Version
End Function

TODO

=VBEVERSION()

Zum Seitenanfang


VBA-Version herausfinden

Sprachversion abfragen

Anhand der Compiler-Konstante Vba6 kann man überprüfen, ob das Programm in einer VBA 6- oder einer VBA 5-Umgebung ausgeführt wird.

TODO

#If Vba6 Then
  MsgBox "VBA 6"
#Else
  MsgBox "VBA 5"
#End If

Anmerkung
Obwohl die Compiler-Konstante Vba6 in VBA 5 nicht existiert, funktioniert der obige Programmcode auch mit VBA 5 problemlos.

TODO

Siehe auch unter Bedingte Kompilierung.
Siehe auch unter Compiler-Konstanten.
Siehe auch unter Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003.

Zum Seitenanfang


Windowsversion herausfinden

Hauptversion, Unterversion und Buildnummer abfragen (Major/Minor/Build)

In bestimmten Situationen ist es erforderlich zu wissen, welche Version von Windows gerade verwendet wird. Beispielsweise um Herauszufinden, ob ein bestimmtes Service Pack installiert ist, welches Voraussetzung für die Benutzung Ihres Programmes ist.

Mit dem folgenden Programmcode können Sie die Windowsversion abfragen. Es wird die Hauptversions-, Unterversions- und Buildnummer ausgegeben.

'Deklarationsbereich
Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformId As Long
  szCSDVersion As String * 128
End Type
Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _

   (ByRef lpVersionInformation As OSVERSIONINFO) As Long


'Codemodul

Sub GetWindowsVersion()
  Dim myOS As OSVERSIONINFO
  Dim lngResult As Long
  Dim strVersion As String
  myOS.dwOSVersionInfoSize = Len(myOS)
  lngResult = GetVersionEx(myOS)
  If myOS.dwPlatformId = 0 Then
    strVersion = "Windows"
  ElseIf myOS.dwPlatformId = 1 Then
    strVersion = "Windows (95, 98 oder ME)"
  ElseIf myOS.dwPlatformId = 2 Then
    strVersion = "Windows (NT, 2000, XP oder 2003)"
  Else
    strVersion = "Windows"
  End If
  MsgBox strVersion & vbCrLf & "Version " & myOS.dwMajorVersion & "." & _

     myOS.dwMinorVersion & vbCrLf & "Build " & myOS.dwBuildNumber
End Sub

Hinweis
Verständlicherweise kann auf einem Macintosh keine Windowsversion ermittelt werden. Wenn sich der obige Code im VBA-Projekt einer Arbeitsmappe befindet, die mit Microsoft Excel für Macintosh geöffnet wird, so tritt kein Kompilierungsfehler auf. Solange die Prozedur GetWindowsVersion nicht ausgeführt wird, gibt es keinerlei Probleme. Trotzdem ist es empfehlenswert, den gesamten obigen Programmcode von der Kompilierung auszuschliessen. Verwenden Sie dazu zwei #If...Then...#End If-Blöcke; einen für die Codezeilen im Deklarationsbereich und einen für die Prozedur GetWindowsVersion. Die abzufragende Compiler-Konstante ist Win32.

Siehe auch unter Bedingte Kompilierung.
Siehe auch unter Compiler-Konstanten.

Zum Seitenanfang


Version eines anderen Microsoft Office-Programmes herausfinden

Versions- und Buildnummer von Microsoft Word abfragen

Die Versionsnummer der eingesetzten Microsoft Word-Version wird anhand der Version-Eigenschaft des Application-Objektes ermittelt:

MsgBox Application.Version

Beachtet werden muss, dass nicht "97", "2000" oder dergleichen ausgegeben wird, sondern die interne Versionsnummer von Microsoft Word. Bei Word 97 lautet diese 8.0, bei Word 2000 9.0, bei Word 2002/XP 10.0 und bei Word 2003 11.0. Bei Word v.X für Macintosh lautet die Versionsnummer 10.0 oder, bei installiertem Office-Update, 10.1 (Anmerkung des Autors: Die exakten Versionsnummern von Word für Macintosh kenne ich leider nicht). Dazu kommt, dass die Versionsinformation nicht zwingend nummerisch sein muss (weil die Version-Eigenschaft vom Typ String ist). Beispielsweise wird bei Word 97 mit installiertem Service Release 1 als Version die Zeichenfolge "8.0a" angezeigt. Zum Herausfinden der Word-Hauptversion kann der nachfolgende Programmcode verwendet werden, der die Val-Funktion von VBA zuhilfe nimmt:

If Val(Application.Version) = 8 Then
  'Microsoft Word 97
Else
  'Microsoft Word 2000 oder neuer
End If

Die Buildnummer der benutzten Wordversion kann anhand der Build-Eigenschaft des Application-Objektes abgefragt werden:

MsgBox Application.Build

Die Build-Eigenschaft enthält bei Microsoft Word einen Wert vom Datentyp String.

Bitte beachten Sie, dass die Build-Eigenschaft bei Microsoft Word - im Gegensatz zu Microsoft Excel und Microsoft PowerPoint - nicht nur die Buildnummer sondern auch die Versionsnummer enthält. Bei Microsoft Word 97 mit SR-1 gibt die obige Codezeile daher "8.0.4412" aus.

To Top

Versions- und Buildnummer von Microsoft PowerPoint abfragen

Die Versionsnummer von Microsoft PowerPoint kann über die Version-Eigenschaft des Application-Objektes herausgefunden werden:

MsgBox Application.Version

Zum Herausfinden der Hauptversion kann der nachfolgende Programmcode verwendet werden, der die Val-Funktion von VBA benutzt:

If Val(Application.Version) = 8 Then
  'Microsoft PowerPoint 97
Else
  'Microsoft PowerPoint 2000 oder neuer
End If

Die Buildnummer der verwendeten PowerPoint-Version kann man mit der Build-Eigenschaft des Application-Objektes abfragen:

MsgBox Application.Build

Die Build-Eigenschaft enthält bei Microsoft PowerPoint einen Wert vom Datentyp String.

Bei Microsoft PowerPoint wird, wie auch bei Microsoft Excel, nur die Buildnummer ausgegeben (ohne Versionsnummer); im Gegensatz zu Microsoft Excel jedoch als Zeichenfolge (String) und nicht als Zahl (Long). Bei Microsoft PowerPoint 97 mit Service Release 1 (SR-1) gibt die obige Codezeile "8.00" aus.

Zum Kapitelanfang Zum Seitenanfang


Bedingte Kompilierung

Einführung

Die bedingte Kompilierung wird normalerweise zum Kompilieren desselben Programmes für verschiedene Plattformen verwendet.

Eines der wichtigsten Hilfsmittel in Bezug auf plattformunabhängigen Programmcode.

Ebenfalls sehr wichtig zum Erstellen von VBA-Versionsunabhängigem Programmcode.

Es werden nur diejenigen Codezeilen kompiliert, die gemäss den eingesetzten Compiler-Konstanten und Konstanten für die bedingte Kompilierung zu berücksichtigen sind.

Man kann die bedingte Kompilierung steuern anhand von Compiler-Konstanten und Konstanten für die bedingte Kompilierung.

Dadurch können Kompilierungsfehler wegen unterschiedlichen VBA-Versionen (VBA 5/VBA 6) und nicht verfügbaren Schlüsselwörtern (z.B. CDecl) vermieden werden.

 

 

- Betriebssystem herausfinden

- VBA-Version herausfinden

- Programmcode explizit für Windows oder Macintosh kompilieren

- Erstellen von Debug-, Test- und Demo-Versionen eines Programmes

 

 

Argumente für die bedingte Kompilierung (Projekteigenschaften)

 

Argumente für die bedingte Kompilierung (Projekteigenschaften)
Abbildung: Argumente für die bedingte Kompilierung (Projekteigenschaften)

 

Bedingte Kompilierung durch Einsetzen von Entscheidungsstrukturen

 

 

#If...Then...#Else-Anweisung (Beispiel):

In diesem Beispiel wird die Konstanten für die bedingte Kompilierung in einer #If...Then...#Else-Konstruktion verwendet, um zu bestimmen, ob bestimmte Programmanweisungen kompiliert werden sollen.

'Wenn Mac als True ausgewertet wird, werden die Anweisungen im
'Anschluss an #If kompiliert:
#If Mac Then
    '. Ausschliesslich Anweisungen für Mac hier.
'Wenn es sich um ein 32-Bit-Windows-Programm handelt, folgende
'Anweisungen kompilieren:
#ElseIf Win32 Then   
    '. Anweisungen, die nur für 32-Bit-Windows kompiliert werden sollen.
'Andernfalls folgende Anweisungen kompilieren:
#Else
    '. Anweisungen für andere Plattformen hier.
#End If

 

'Öffentliche Konstante für die Kompilierung im
'Deklarationsabschnitt deklarieren.
#Const conTest = 1

Sub Sample()
  #If conTest = 1 Then
    '. Ausführen von Code mit Testanweisungen.
  #Else
    '. Ausführen von normalem Code.
  #End If
End Sub

 

 

#If Vba5 Then
  Public Function StrReverse(sIn As String) As String
    Dim i As Long
    StrReverse = Space(Len(sIn))
    For i = 1 To Len(sIn)
      Mid(StrReverse, Len(sIn) - (i - 1), 1) = Mid(sIn, i, 1)
    Next i
  End Function

#End If

 

 

Siehe auch unter Compiler-Konstanten.
Siehe auch unter Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003.

Zum Kapitelanfang Zum Seitenanfang


Compiler-Konstanten und Konstanten für die bedingte Kompilierung

Einführung

Es gibt so genannte "Compiler-Konstanten", und es gibt auch "Konstanten für die bedingte Kompilierung". Oft werden diese beiden Begriffe verwechselt oder als identisch betrachtet. Wenn man noch nie mit solchen Konstanten gearbeitet hat, kennt man den Unterschied zwischen diesen beiden Konstanten-Typen vermutlich nicht. Wohlgemerkt haben beide nichts mit gewöhnlichen Konstanten zu tun, die anhand der Const-Anweisung deklariert werden.

Weil aber sowohl Compiler-Konstanten als auch Konstanten für die bedingte Kompilierung gerade in Bezug auf Kompatibilität von VBA-Programmcode für Windows und Macintosh äusserst wichtig sind und häufig eingesetzt werden, muss man Zweck und Benutzung unbedingt kennen.

Zuerst die Definition dieser Konstanten:

Compiler-Konstanten
Visual Basic für Applikationen definiert Konstanten zur exklusiven Verwendung mit der #If...Then...#Else-Anweisung. Die Funktion dieser Konstanten entspricht der von Konstanten, die mit der #If...Then...#Else-Anweisung definiert wurden, mit dem Unterschied, dass sie einen globalen Gültigkeitsbereich haben, d.h., sie sind überall in einem Projekt anwendbar.

Da die definierten Compiler-Konstanten von Visual Basic bereitgestellt werden, können Sie Ihre eigenen Konstanten auf keiner Ebene mit diesen Namen definieren.

 

Konstante für die bedingte Kompilierung
Ein Bezeichner in Visual Basic, der mit der Compiler-Anweisung #Const oder in der Host-Anwendung definiert wird und von anderen Compiler-Anweisungen verwendet wird, um zu bestimmen, wann oder ob bestimmte Blöcke von Visual Basic-Code kompiliert werden.

Konstanten für bedingte Kompilierung sind immer Private in dem Modul, in dem sie sich befinden. Mit der #Const-Anweisung können keine Public-Konstanten für die Kompilierung erstellt werden. Konstanten für bedingte Kompilierung werden immer auf Modulebene ausgewertet, unabhängig von ihrer Plazierung im Code.

Zum Seitenanfang


Compiler-Konstanten

Englisch: Compiler Constant

In Bezug auf die Aufgabe, lauffähigen Programmcode für die beiden Plattformen Windows und Macintosh zu schreiben, sind Compiler-Konstanten beziehungsweise die bedingte Kompilierung äusserst nützlich.

Definition von "Compiler-Konstante":

Compiler-Konstante
Visual Basic für Applikationen definiert Konstanten zur exklusiven Verwendung mit der #If...Then...#Else-Anweisung. Die Funktion dieser Konstanten entspricht der von Konstanten, die mit der #If...Then...#Else-Anweisung definiert wurden, mit dem Unterschied, dass sie einen globalen Gültigkeitsbereich haben, d.h., sie sind überall in einem Projekt anwendbar.

Da die definierten Compiler-Konstanten von Visual Basic bereitgestellt werden, können Sie Ihre eigenen Konstanten auf keiner Ebene mit diesen Namen definieren.

 

- Windows oder Macintosh

- VBA5 oder VBA6

 

Zum Seitenanfang


Konstanten für die bedingte Kompilierung

Englisch: Conditional Compiler Constant

 

Definition von "Konstante für die bedingte Kompilierung":

Konstante für die bedingte Kompilierung
Ein Bezeichner in Visual Basic, der mit der Compiler-Anweisung #Const oder in der Host-Anwendung definiert wird und von anderen Compiler-Anweisungen verwendet wird, um zu bestimmen, wann oder ob bestimmte Blöcke von Visual Basic-Code kompiliert werden.

Konstanten für bedingte Kompilierung sind immer Private in dem Modul, in dem sie sich befinden. Mit der #Const-Anweisung können keine Public-Konstanten für die Kompilierung erstellt werden. Konstanten für bedingte Kompilierung werden immer auf Modulebene ausgewertet, unabhängig von ihrer Plazierung im Code.

 

 

Merkmale von Konstanten für bedingte Kompilierung

- Konstanten für bedingte Kompilierung sind Konstanten, die Sie selbst definieren können. Ihre Deklaration erfolgt immer mit #Const.

- Konstanten für bedingte Kompilierung sind immer Private in dem Modul, in dem sie sich befinden.

- Mit der #Const-Anweisung können keine Public-Konstanten für die Kompilierung erstellt werden.

- Public-Konstanten für die bedingte Kompilierung können nur mit Hilfe der Benutzeroberfläche (VBA-Editor) erstellt werden.

 

 

Deklarieren von Konstanten für bedingte Kompilierung

 

Syntax

#Const KonstName = Ausdruck

Ausdruck:
Erforderlich. Literalzeichen, andere Konstanten für die bedingte Kompilierung oder eine Kombination daraus, die alle arithmetischen oder logischen Operatoren ausser Is enthalten kann.

Nur Konstanten für bedingte Kompilierung (und Literalzeichen) können in Ausdruck verwendet werden. Die Verwendung einer Standardkonstanten (die mit Const definiert wurde) oder einer nicht definierten Konstanten löst einen Fehler aus. Umgekehrt können Konstanten, die mit dem Schlüsselwort #Const definiert wurden, ausschliesslich für die bedingte Kompilierung verwendet werden.

Konstanten für bedingte Kompilierung werden immer auf Modulebene ausgewertet, unabhängig von ihrer Plazierung im Code.

 

Globale Konstanten für bedingte Kompilierung definieren

 

Argumente für die bedingte Kompilierung (Projekteigenschaften)
Abbildung: Argumente für die bedingte Kompilierung (Projekteigenschaften)

 

 

 

Zum Kapitelanfang Zum Seitenanfang


Compiler-Konstanten von Microsoft Office

Die folgenden Kapitel beschreiben die Compiler-Konstanten der verschiedenen Versionen von Microsoft Office.

 Compiler-Konstanten von Microsoft Office 97
 Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003
 Compiler-Konstanten von Microsoft Office für Macintosh

Zum Seitenanfang


Compiler-Konstanten von Microsoft Office 97

Visual Basic für Applikationen definiert Konstanten zur exklusiven Verwendung mit der #If...Then...#Else-Anweisung. Die Funktion dieser Konstanten entspricht der von Konstanten, die mit der #If...Then...#Else-Anweisung definiert wurden, mit dem Unterschied, dass sie einen globalen Gültigkeitsbereich haben, d.h., sie sind überall in einem Projekt anwendbar.

Auf 16-Bit-Entwicklungsplattformen werden die Compiler-Konstanten folgendermassen definiert:

Konstante Wert Beschreibung
Win16 True Zeigt an, dass es sich um eine 16-Bit-Entwicklungsumgebung handelt.
Win32 False Zeigt an, dass es sich nicht um eine 32-Bit-Entwicklungsumgebung handelt.

Auf 32-Bit-Entwicklungsplattformen werden die Compiler-Konstanten folgendermassen definiert:

Konstante Wert Beschreibung
Win16 False Zeigt an, dass es sich nicht um eine 16-Bit-Entwicklungsumgebung handelt.
Win32 True Zeigt an, dass es sich um eine 32-Bit-Entwicklungsumgebung handelt.

Anmerkung
Da die hier definierten Konstanten von Visual Basic bereitgestellt werden, können Sie Ihre eigenen Konstanten auf keiner Ebene mit diesen Namen definieren. Es ist somit nicht möglich, eine eigene Konstante zu definieren, die beispielsweise den Namen "Win16" verwendet.

Zum Seitenanfang


Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003

Visual Basic für Applikationen definiert Konstanten zur exklusiven Verwendung mit der #If...Then...#Else-Anweisung. Die Funktion dieser Konstanten entspricht der von Konstanten, die mit der #If...Then...#Else-Anweisung definiert wurden, mit dem Unterschied, dass sie einen globalen Gültigkeitsbereich haben, d.h. sie sind überall in einem Projekt anwendbar.

Auf 16-Bit-Entwicklungsplattformen werden die Compiler-Konstanten folgendermassen definiert:

Konstante Wert Beschreibung
Win16 True Zeigt an, dass es sich um eine 16-Bit-Entwicklungsumgebung handelt.
Win32 False Zeigt an, dass es sich nicht um eine 32-Bit-Entwicklungsumgebung handelt.

Auf 32-Bit-Entwicklungsplattformen werden die Compiler-Konstanten folgendermassen definiert:

Konstante Wert Beschreibung
Vba6 True Zeigt an, dass die Entwicklungsumgebung Visual Basic für Applikationen Version 6.0 ist.
Vba6 False Zeigt an, dass die Entwicklungsumgebung nicht Visual Basic für Applikationen Version 6.0 ist.
Win16 True Zeigt an, dass es sich um eine 16-Bit-Entwicklungsumgebung handelt.
Win16 False Zeigt an, dass es sich nicht um eine 16-Bit-Entwicklungsumgebung handelt.
Win32 True Zeigt an, dass es sich um eine 32-Bit-Entwicklungsumgebung handelt.
Win32 False Zeigt an, dass es sich nicht um eine 32-Bit-Windows-Entwicklungsumgebung handelt.
Mac True Zeigt an, dass die Entwicklungsumgebung Macintosh ist.
Mac False Zeigt an, dass die Entwicklungsumgebung nicht Macintosh ist.

Anmerkung
Da die hier definierten Konstanten von Visual Basic bereitgestellt werden, können Sie Ihre eigenen Konstanten auf keiner Ebene mit diesen Namen definieren. Es ist somit nicht möglich, eine eigene Konstante zu definieren, die beispielsweise den Namen "Vba6" verwendet.

Zum Seitenanfang


Compiler-Konstanten von Microsoft Office für Macintosh

Die folgenden Angaben sind ohne Gewähr!

Vermutlich besitzt VBA von Microsoft Office 98, 2001, und v.X die gleichen Compiler-Konstanten wie Office 97 für Windows (siehe Compiler-Konstanten von Microsoft Office 97).

VBA von Microsoft Office 2004 für Macintosh besitzt dagegen die gleichen Konstanten wie Office 2000 für Windows und neuer (siehe Compiler-Konstanten von Microsoft Office 2000, 2002/XP und 2003).

Zum Kapitelanfang Zum Seitenanfang


Wissenswertes über die Kompatibilität von VBA-Projekten

Einführung

Zu Beachten bei VBA-Projekten:

» Dateipfad der Hilfe des VBA-Projektes (Eigenschaft HelpFile)

» Dateipfad der ausführbaren Datei des VBA-Projektes (Eigenschaft BuildFileName), ab Excel 2000

» Verweise im VBA-Projekt (Auflistung References)

» Digitale Signaturen von VBA-Projekten (Eigenschaft VBASigned), ab Excel 2000

Zum Seitenanfang


Projekteigenschaften

Bei den Projekteigenschaften gibt es zwei Dinge, die beachtet werden müssen.

1. Pfad der Hilfedatei

2. Pfad der ausführbaren Datei

To Top


Pfad der Hilfedatei

Eingabefeld "Name der Hilfedatei"

 

Name der Hilfedatei (Projekteigenschaften)
Abbildung: Name der Hilfedatei (Projekteigenschaften)

 

Eigenschaft HelpFile des VBProject-Objektes

 

Private Sub Workbook_Open()
  ThisWorkbook.VBProject.HelpFile = ThisWorkbook.Path & Application.PathSeparator & "Hilfedatei.hlp"
End Sub

 

To Top


Pfad der ausführbaren Datei

 

 

Eigenschaft BuildFileName des VBProject-Objektes

 

Private Sub Workbook_Open()
  ThisWorkbook.VBProject.BuildFileName = ThisWorkbook.Path & Application.PathSeparator & "AusführbareDatei.exe"
End Sub

 

 

Zum Seitenanfang


Verweise

- Verweise im VBA-Projekt

Verweise eines VBA-Projektes (Verweise)
Abbildung: Verweise eines VBA-Projektes (Verweise)

Entfernen Sie alle Verweise, die nicht zwingend benötigt werden.

 

Ein Verweis kann auch durch den VBA-Editor automatisch hinzugefügt worden sein. Also ohne dass man als Benutzer davon etwas merkt.

1. Dialog "Weitere Steuerelemente" öffnen

2. Calendar Control von Microsoft aktivieren

3. Steuerelement auf dem Benutzerformular anordnen

4. Verweis "Microsoft Access Calendar Control" wird automatisch gesetzt

 

Auch wenn man das Steuerelement auf dem Benutzerformular löscht und unter das Calendar Control in der Werkzeugsammlung entfernt (bzw. es unter "Weitere Steuerelemente" deaktiviert), bleibt der Verweis bestehen.

 

Zum Seitenanfang


Zusätzliche Steuerelemente

Es dürfen nur die Standard-Steuerelemente der Microsoft Forms Objektbibliothek verwendet werden. Alle anderen Steuerelemente sind so genannte ActiveX-Controls und funktionieren nicht auf Macintosh.

 

Werkzeugsammlung
Abbildung: Werkzeugsammlung

 

Wenn Sie im Dialog "Weitere Steuerelemente" die Option "Nur ausgewählte Elemente" aktivieren, dürfen in der Liste nur Steuerelemente stehen, die mit "Microsoft Forms" beginnen (z.B. "Microsoft Forms 2.0 CheckBox").

 

Ausgewählte MS Forms-Steuerelemente (Weitere Steuerelemente)
Abbildung: Ausgewählte MS Forms-Steuerelemente (Weitere Steuerelemente)

 

Siehe auch unter ActiveX-Controls.

Zum Seitenanfang


Empfehlungen

- Projektname ändern (nicht "VBAProject" verwenden)

- Projekt nicht schützen (kein Anzeige-Kennwort verwenden)

- Regelmässig speichern

- Regelmässig kompilieren

- Einstellung "Variablendeklaration erforderlich" aktivieren (Option Explicit)

- Einstellung "Kompilieren bei Bedarf" deaktivieren

- Globale Konstanten für die bedingte Kompilierung als Argumente deklarieren

- Inline Comments verwenden

 

Zum Kapitelanfang Zum Seitenanfang


Arbeitsmappen und VBA-Programme plattformunabhängig machen

Einführung

 

Art der Arbeitsmappe:

- Arbeitsmappe ohne VBA-Projekt

- Arbeitsmappe mit VBA-Projekt

- Nur VBA-Projekt

 

Benutzung der Exceldatei:

- Öffnen auf beiden Plattformen

- Bearbeiten auf beiden Plattformen

- Wechselweises Bearbeiten auf beiden Plattformen

 

Zum Seitenanfang


Vorbereitung

Bevor Sie sich an die Anpassung der Arbeitsmappe machen, sollten Sie ein paar Vorbereitungen treffen beziehungsweise Vorbereitungsarbeiten durchführen. Dadurch kann die Mappe schneller und einfacher analysiert und schliesslich überarbeitet werden.

Arbeitsmappe:
- Dateiname der Arbeitsmappe bestimmen (nur Zeichen verwenden, die auf beiden Plattformen erlaubt sind)
- Arbeitsmappe auf einer lokalen Festplatte speichern (wegen Geschwindigkeit)
- Sicherungskopie der Arbeitsmappe anlegen
- Freigabe für die gemeinsame Bearbeitung aufheben
- Lese-/Schreibkennwort entfernen
- Schreibschutzkennwort entfernen
- Schreibschutz-Empfehlung deaktivieren
- Standard-Dateityp von Excel verwenden (kein duales Dateiformat)
- Kennwortschutz des VBA-Projektes entfernen
- Arbeitsmappen- und Blattschutz aufheben
- Ausgeblendete Blätter, Spalten und Zeilen einblenden
- Alle Objekte anzeigen (Optionen)
- Keine externen Verknüpfungswerte speichern (Optionen)
- Keine Vorschaugrafik speichern (Dokument-Eigenschaften)

Arbeitsumgebung:
- Automatisches Speichern deaktivieren
- Nicht benötigte Add-Ins deaktivieren
- Andere geöffnete Arbeitsmappen schliessen

 

Zum Seitenanfang


Durchzuführende Arbeiten

...

 

Zum Seitenanfang


Testen

 

 

Zum Seitenanfang


Tipps für komplexe Arbeitsmappen

Die Überarbeitung einer umfangreichen Arbeitsmappe kann recht mühsam sein. Mit anderen Worten umständlich, aufwändig und zeitintensiv.

Tipp: Codebeispiele einsetzen (siehe unter VBA-Codebeispiele für Programmierer)

Tipp: Tools und Hilfsprogramme benutzen (siehe unter Tools und Hilfsprogramme)

Tipp: Erledigte Arbeiten protokollieren

 

 

BIFF-Viewer User's Guide

Der BIFF-Viewer User's Guide ist die 'offizielle inoffizielle' Dokumentation des BIFF-Viewers, einem kleinen Utility aus dem Microsoft Excel 97 SDK, mit dem man BIFF-Dumps von Exceldateien generieren kann. Microsoft selbst hat nie eine Dokumentation zum BIFF-Viewer herausgegeben. Der hier herunterladbare Guide ist die einzige überhaupt existierende Benutzeranleitung. Der BIFF-Viewer User's Guide umfasst über 90 A4-Seiten und beschreibt neben den Programm-Funktionen viele weitere Themen wie unter anderem den Inhalt von BIFF-Dumps (d.h. Storages, Streams und Records) und das BIFF-Format generell, stellt viele Tipps und Tricks, weitere Dokumentationen, andere nützliche Tools sowie eine Vielzahl interessanter Hintergrund-Informationen vor.

 

Microsoft Excel File Format Documentation

Dieses hervorragende Dokument enthält eine Beschreibung des von Excel-Arbeitsmappen verwendeten Dateiformates BIFF (Binary Interchange File Format). Obwohl in diesem Dokument ein paar Kapitel noch leer sind, handelt es sich zweifellos um die beste BIFF-Dokumentation, die es überhaupt gibt.

Original Dokument-Downloadseite von OpenOffice.org: http://sc.openoffice.org/servlets/NewsItemView?newsItemID=2

Das Dokument gibt's auch im XML-Format: http://sc.openoffice.org/excelfileformat.sxw

 

Zum Kapitelanfang Zum Seitenanfang


Vorgehens-Checkliste

...

 

 

 

Zum Kapitelanfang Zum Seitenanfang


Utilities und Hilfsprogramme

...

- Code Documentor

- BIFF-Workbench

- BIFF-Viewer

- JWalk Chart Tools

 

Zum Seitenanfang


Code Documentor

Der Code Documentor ist ein für VBA-Programmierer äusserst nützliches Add-In zum Erstellen eines Berichtes zu einem VBA-Projekt. Listet unter anderem die Modulnamen und Projekt-Komponenten auf, zeigt Anzahl Codezeilen, Prozeduren, DLL-Deklarationen usw. und berechnet die Grösse der einzelnen Codemodule in KB.

Entwickelt von: Application Professionals, Rob Bovey
www.appspro.com

 

Zum Seitenanfang


BIFF-Workbench

Die BIFF-Workbench ist das umfassendste Arbeitswerkzeug für BIFF-Dumps, das es überhaupt gibt. Wer schon mal mit dem BIFF Viewer - einem Utility aus dem Microsoft Excel 97 SDK - einen BIFF-Dump generiert und betrachtet hat, wird sich sehr wahrscheinlich an der unkomfortablen Bedienung gestört und viele sinnvolle Funktionen und Features vermisst haben. Die BIFF-Workbench schafft ein für allemal Abhilfe. Dieses Programm ist weit mehr als nur ein verbesserter Viewer. Sie erhalten eine komplette Arbeitsumgebung mit einer Vielzahl durchdachter Funktionen, mit denen das Untersuchen und Analysieren von Dumps stark vereinfacht wird. Weil der BIFF-Viewer keinerlei Analyse- und Übersichtsfunktionen besitzt, musste bisher ein Dump in einem anderen Programm wie z.B. Microsoft Word weiterverarbeitet werden - beispielsweise zum Suchen einer Zeichenfolge oder zum Ermitteln der Anzahl Records eines bestimmten Recordtyps (z.B. Anzahl STYLE-Records). Solche und viele weitere Analysen stehen in der BIFF-Workbench fixfertig zur Verfügung.

Auch Anwender mit nur spärlichem Know-how über BIFF-Dumps können die BIFF-Workbench nutzbringend einsetzen.

Updates der vom Tool benötigten Metadaten, der Online-Hilfe, den begleitenden Dokumentationen sowie des zusätzlichen Excel Add-Ins finden Sie auf der Produkt-Webseite.

 

Zum Seitenanfang


BIFF-Viewer

Im Microsoft Excel 97 SDK ist unter anderem ein kleines Utility namens BIFF Viewer (Version 1.8.0) enthalten, mit dem man Dumps von BIFF-Dateien erstellen und in einer Baum-Darstellung anzeigen kann. Das Programm ist eigentlich für Excel xls-Dateien gedacht, kann jedoch auch eingeschränkt für Word doc-, PowerPoint ppt- und viele weitere Dateien benutzt werden. Zumindest zeigt es die verschiedenen Streams sowie ein allenfalls in der Datei vorhandenes VBA-Projekt.
   Die Version 1.0 dieses Tools wurde im Jahre 1993 entwickelt; die hier zum Download angebotene Version 1.8.0 stammt aus dem Jahre 1997 und ist die neueste und letzte Ausgabe. Das Programm wird nicht mehr weiterentwickelt.
   Es existiert keine offizielle Dokumentation zum BIFF Viewer seitens Microsoft, dafür aber eine inoffizielle in Form eines User's Guide. Informationen und Download der Dokumentation siehe unter BIFF-Viewer User's Guide. Beachten Sie auch die Hinweise bezüglich Tool-Benutzung und Analyse von BIFF-Dumps auf der Seite "Excel-Dateiformat" von The SOSCQ Page.

 

Zum Seitenanfang


JWalk Chart Tools

...

Entwickelt von: JWalk & Associates
http://j-walk.com/ss

 

Zum Kapitelanfang Zum Seitenanfang


VBA-Codebeispiele für Programmierer

Nachfolgend finden Sie ein paar interessante Codebeispiele zu verschiedenen Themen.

Es handelt sich um Musterlösungen für bestimmte Aufgaben und Probleme.

 

[01] Gültigkeit eines vom Benutzer eingegebenen Dateinamens überprüfen
[02] Plattformunabhängiges Pfadtrennzeichen bei Bedarf anfügen
[03] Verknüpfungen von Formular-Steuerelementen auflisten
[04] Ziele von Hyperlinks überprüfen und auflisten
[05] Quellen von externen Verknüpfungen auflisten
[06] RowSource von allen ListBox- und ComboBox-Steuerelementen auflisten
[07] Quellbereiche von Konsolidierungen auflisten
[08] Hyperlink-Basis abfragen/ändern
[09] Datumssystem einstellen
[10] Datenquellen und Verbindungsinformationen von Pivot-Tabellen auflisten
[11] Verbindungsinformationen von Datenbank- und Web-Abfragen auflisten
[12] Verfügbarkeit einer Schriftart überprüfen
[13] Quellbereiche von Objekten mit verknüpften Daten auflisten
[14] Objekte mit zugewiesenen Makros auflisten
[15] Verweise im VBA-Projekt auflisten
[16] Symbolleisten-Steuerelemente mit zugewiesenen Makros auflisten
[17] Quellen von verknüpften OLE-Objekten auflisten
[18] Schriftarten in Codezeilen eines VBA-Projektes auflisten
[19] Zellen mit DDE-Verknüpfungen auflisten
[20] ProgIDs von OLE-Objekten auflisten
[21] Datenquellen von Diagrammen auflisten
[22] Benutzung von plattformspezifischen Tabellenfunktionen überprüfen
[23] Zellen mit Pfaden im Zellinhalt auflisten
[24] Zellkommentare mit Pfaden im Text auflisten
[25] Namen auflisten
[26] Schriftarten in Formatvorlagen überprüfen

To Top


» Codebeispiel 1: Gültigkeit eines vom Benutzer eingegebenen Dateinamens überprüfen

Wenn der Benutzer die Möglichkeit zur Eingabe eines Dateinamens besitzt, sollten Sie die Gültigkeit des Dateinamens überprüfen. Da unter Windows und Macintosh nicht die gleichen Zeichen in Dateinamen erlaubt sind, muss eine kleine Validierungsroutine programmiert werden.

Die hier vorgestellte Prozedur verlangt vom Benutzer einen Dateinamen, welcher anschliessend abhängig der aktuellen Plattform überprüft wird.

Sub CheckFilename()
  Dim strFile As String

  Dim intCounter As Integer
  strFile = InputBox("Bitte Dateiname eingeben:", "Dateiname")
  If Application.OperatingSystem Like "*Windows*" Then
    'Windows
    For intCounter = 1 To Len(strFile)
      If InStr("?*<>|/\:", Mid$(strFile, intCounter, 1)) > 0 Or InStr(Chr$(34), Mid$(strFile, intCounter, 1)) > 0 Then
        MsgBox "Bitte geben Sie einen gültigen Dateinamen ein." & vbCrLf & vbCrLf & _

           "Dateinamen dürfen keines dieser Zeichen enthalten:" & vbCrLf & "? * / \ : | < > """, vbInformation
        Exit Sub
      End If
    Next intCounter

  Else
    'Macintosh
    If InStr(":", strFile) > 0 Then
      MsgBox "Bitte geben Sie einen gültigen Dateinamen ein." & vbCrLf & vbCrLf & _

         "Dateinamen dürfen keinen Doppelpunkt ':' enthalten.", vbInformation
      Exit Sub
    End If
  End If

End Sub

Weitere Informationen erhalten Sie unter Erlaubte Zeichen in Dateinamen.

Informationen über das Herausfinden des aktuellen Betriebssystems finden Sie unter Abfragen der Ausführungsumgebung.

To Top


» Codebeispiel 2: Plattformunabhängiges Pfadtrennzeichen bei Bedarf anfügen

Dieses Codebeispiel zeigt, wie man ein Pfadtrennzeichen an einen Pfad anfügen kann, sofern dieser noch kein abschliessendes Pfadtrennzeichen besitzt.

 

Application.PathSeparator

 

Sub AddPathSeparatorIfNeeded()
  Dim strPath As String
  strPath = Application.TemplatesPath
  strPath = IIf(Right$(strPath, 1) <> Application.PathSeparator, strPath & Application.PathSeparator, strPath)
  MsgBox strPath
End Sub

 

To Top


» Codebeispiel 3: Verknüpfungen von Formular-Steuerelementen auflisten

Bestimmte Formular-Steuerelemente können einen so genannten Listenbereich und eine Ausgabeverknüpfung besitzen.

 

 

LinkedCell-Eigenschaft

ListFillRange-Eigenschaft

 

Listenbereich und Ausgabeverknüpfung der Formular-Steuerelemente des aktiven Arbeitsblattes:

Sub GetFormControlLinksSheet()
  Dim objFormControl As Object
  Dim objShape As Shape
  Dim strResult As String
  On Error Resume Next
  For Each objShape In ActiveSheet.Shapes
    If objShape.Type = msoFormControl Then
      Set objFormControl = objShape.DrawingObject
      strResult = objFormControl.ListFillRange
      If Err.Number = 0 Then
        If strResult <> "" Then
          Debug.Print objShape.Name & ": Listenbereich: " & strResult
        Else
          Debug.Print objShape.Name & ": Listenbereich: (Nicht festgelegt)"
        End If
      Else
        Err.Clear
      End If
      strResult = objFormControl.LinkedCell
      If Err.Number = 0 Then
        If strResult <> "" Then
          Debug.Print objShape.Name & ": Ausgabeverknüpfung: " & strResult
        Else
          Debug.Print objShape.Name & ": Ausgabeverknüpfung: (Nicht festgelegt)"
        End If
      Else
        Err.Clear
      End If
      Set objFormControl = Nothing
    End If
  Next
End Sub

 

Listenbereich und Ausgabeverknüpfung der Formular-Steuerelemente aller Arbeitsblätter:

 

Sub GetFormControlLinksBook()
  Dim objFormControl As Object
  Dim objShape As Shape

  Dim wksSheet As Worksheet
  Dim strResult As String
  On Error Resume Next
  For Each wksSheet In ActiveWorkbook.Worksheets

    For Each objShape In wksSheet.Shapes
      If objShape.Type = msoFormControl Then
        Set objFormControl = objShape.DrawingObject
        strResult = objFormControl.ListFillRange
        If Err.Number = 0 Then
          If strResult <> "" Then
            Debug.Print wksSheet.Name & " > " & objShape.Name & ": Listenbereich: " & strResult
          Else
            Debug.Print wksSheet.Name & " > " & objShape.Name & ": Listenbereich: (Nicht festgelegt)"
          End If
        Else
          Err.Clear
        End If
        strResult = objFormControl.LinkedCell
        If Err.Number = 0 Then
          If strResult <> "" Then
            Debug.Print wksSheet.Name & " > " & objShape.Name & ": Ausgabeverknüpfung: " & strResult
          Else
            Debug.Print wksSheet.Name & " > " & objShape.Name & ": Ausgabeverknüpfung: (Nicht festgelegt)"
          End If
        Else
          Err.Clear
        End If
        Set objFormControl = Nothing
      End If
    Next

  Next
End Sub

 

Siehe auch unter Pfade in der Arbeitsmappe.

Siehe auch unter Unterschiede bei Formular-Steuerelementen.

 

To Top


» Codebeispiel 4: Ziele von Hyperlinks überprüfen und auflisten

 

Hyperlinks der gesamten Arbeitsmappe werden überprüft.

URLs werden nicht berücksichtigt (Adressen wie HTTP, FTP, FILE, MAILTO etc.).

UNC-Pfade werden nicht berücksichtigt.

VBA-Code befindet sich in der zu überprüfenden Arbeitsmappe.

 

Sub ListAndCheckFilesInHyperlinks()
  Dim objLink As Hyperlink
  Dim wksSheet As Worksheet
  Dim wkbWorkbook As Workbook
  Dim wksWorksheet As Worksheet
  Dim lngLinks As Long
  ChDrive Left$(ThisWorkbook.Path, 1)
  ChDir ThisWorkbook.Path
  Set wkbWorkbook = Application.Workbooks.Add(Template:=xlWBATWorksheet)
  Set wksWorksheet = wkbWorkbook.Worksheets(1)
  With wksWorksheet
    .Range("A1").Value = "Hyperlink"
    .Range("B1").Value = "Datei"
    .Range("C1").Value = "Vorhanden"
    .Range("A1:C1").Font.Bold = True
  End With
  For Each wksSheet In ThisWorkbook.Worksheets
    For Each objLink In wksSheet.Hyperlinks
      If Left$(objLink.Address, 3) = "..\" Or Mid$(objLink.Address, 2, 2) = ":\" Or objLink.SubAddress = "" Then
        lngLinks = lngLinks + 1
        With wksWorksheet
          .Cells(lngLinks + 1, 1).Value = objLink.Name
          .Cells(lngLinks + 1, 2).Value = objLink.Address
          If Dir(objLink.Address, vbHidden) = "" Then
            .Cells(lngLinks + 1, 3).Value = "Ja"
          Else
            .Cells(lngLinks + 1, 3).Value = "Nein"
          End If
        End With
      End If
    Next
  Next
  wksWorksheet.Columns("A:C").AutoFit
  Set wksWorksheet = Nothing
  Set wkbWorkbook = Nothing
End Sub

 

To Top


» Codebeispiel 5: Quellen von externen Verknüpfungen auflisten

Mit dieser Prozedur werden die Verknüpfungen in der aktiven Arbeitsmappe abgefragt und im Direktfenster des VBA-Editors aufgelistet. Zuerst werden die Verknüpfungen vom Typ 'Excel' und dann diejenige vom Typ 'OLE/DDE' ausgegeben. Verknüpfungen der beiden weiteren Typen 'Publisher' und 'Subscriber' werden nicht angezeigt.

 

LinkSources-Methode

 

 

Sub GetLinkSources()
  Dim avarLinks As Variant
  Dim intCounter As Integer
  Debug.Print "Excel-Verknüpfungen:"
  avarLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
  If Not IsEmpty(avarLinks) Then
    For intCounter = 1 To UBound(avarLinks)
      Debug.Print "Link " & intCounter & ": " & avarLinks(intCounter)
    Next intCounter
  Else
    Debug.Print "Keine Excel-Verknüpfungen vorhanden"
  End If
  Debug.Print "OLE-/DDE-Verknüpfungen:"
  avarLinks = ActiveWorkbook.LinkSources(xlOLELinks)
  If Not IsEmpty(avarLinks) Then
    For intCounter = 1 To UBound(avarLinks)
      Debug.Print "Link " & intCounter & ": " & avarLinks(intCounter)
    Next intCounter
  Else
    Debug.Print "Keine OLE-/DDE-Verknüpfungen vorhanden"
  End If
End Sub

Siehe auch unter Arbeiten mit externen Verknüpfungen.

To Top


» Codebeispiel 6: RowSource von allen ListBox- und ComboBox-Steuerelementen auflisten

Diese Prozedur analysiert alle Benutzerformulare des VBA-Projektes der aktiven Arbeitsmappe und gibt zu jedem gefundenen ListBox- und ComboBox-Steuerelement den Inhalt der RowSource-Eigenschaft im Direktfenster des VBA-Editors aus.

RowSource-Eigenschaft

 

Sub GetRowSources()
  Dim objComponent As VBComponent
  Dim objControl As Control
  Dim strRowSource As String
  On Error Resume Next
  For Each objComponent In ActiveWorkbook.VBProject.VBComponents
    If objComponent.Type = vbext_ct_MSForm Then
      For Each objControl In objComponent.Designer.Controls
        strRowSource = objControl.RowSource
        If Err.Number = 0 Then
          Debug.Print objComponent.Name & " (" & objComponent.Properties("Caption") & _
              ") > RowSource von " & objControl.Name & ": " & strRowSource
        Else
          Err.Clear
        End If
      Next objControl
    End If
  Next objComponent
End Sub

 

Siehe auch unter RowSource-Eigenschaft.

To Top


» Codebeispiel 7: Quellbereiche von Konsolidierungen auflisten

Dieses Codebeispiel analysiert alle Tabellenblätter der aktiven Arbeitsmappe und listet die Zellbezüge der Quellen von Konsolidierungen auf. Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

ConsolidationSources-Eigenschaft

 

Sub ListConsolidationSources()
  Dim wksReportSheet As Worksheet
  Dim wksSheet As Worksheet
  Dim avarSources As Variant
  Dim intCounter As Integer
  Dim lngRow As Long
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  lngRow = 2
  Set wksReportSheet = Worksheets.Add
  With wksReportSheet
    .Range("A1").Value = "Konsolidierungen"
    .Range("A1").Font.Bold = True
    .Range("A1").Font.Size = .Range("A1").Font.Size + 2
    For Each wksSheet In ActiveWorkbook.Worksheets
      If wksSheet.Name <> wksReportSheet.Name Then
        lngRow = lngRow + 1
        .Cells(lngRow, 1).Value = wksSheet.Name
        .Cells(lngRow, 1).Font.Bold = True
        avarSources = wksSheet.ConsolidationSources
        If IsEmpty(avarSources) Then
          lngRow = lngRow + 1
          .Cells(lngRow, 1).Value = "(Keine Konsolidierung)"
        Else
          If wksSheet.ConsolidationOptions(3) = True Then
            lngRow = lngRow + 1
            .Cells(lngRow, 1).Value = "(Konsolidierung mit verknüpften Quelldaten)"
          Else
            lngRow = lngRow + 1
            .Cells(lngRow, 1).Value = "(Konsolidierung ohne verknüpfte Quelldaten)"
          End If
          For intCounter = 1 To UBound(avarSources)
            lngRow = lngRow + 1
            .Cells(lngRow, 1).Value = "Bezug " & CStr(intCounter) & ": " & avarSources(intCounter)
          Next intCounter
        End If
        lngRow = lngRow + 1
      End If
    Next
    .Columns("A").AutoFit
  End With
  Set wksReportSheet = Nothing
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub

 

To Top


» Codebeispiel 8: Hyperlink-Basis abfragen/ändern

Dieses Codebeispiel...

BuiltinDocumentProperties-Eigenschaft

 

Sub GetHyperlinkBase()
  MsgBox ActiveWorkbook.BuiltInDocumentProperties("Hyperlink base").Value

End Sub

 

Sub SetHyperlinkBase()
  If Application.OperatingSystem Like "*Windows*" Then

    'Windows
    ThisWorkbook.BuiltInDocumentProperties("Hyperlink base").Value = "C:\Daten"
  Else
    'Macintosh
    ThisWorkbook.BuiltInDocumentProperties("Hyperlink base").Value = "HD:Daten"
  End If
End Sub

 

Private Sub Workbook_Open()
  If Application.OperatingSystem Like "*Windows*" Then

    'Windows
    ThisWorkbook.BuiltInDocumentProperties("Hyperlink base").Value = "C:\Daten"
  Else
    'Macintosh
    ThisWorkbook.BuiltInDocumentProperties("Hyperlink base").Value = "HD:Daten"
  End If
End Sub

 

Informationen über das Herausfinden des aktuellen Betriebssystems finden Sie unter Abfragen der Ausführungsumgebung.

To Top


» Codebeispiel 9: Datumssystem einstellen

Dieses exemplarische Codebeispiel zeigt, ...

Date1904-Eigenschaft des Workbook-Objektes

 

Private Sub Workbook_Open()
  If Application.OperatingSystem Like "*Windows*" Then

    'Windows
    ThisWorkbook.Date1904 = False
  Else
    'Macintosh
    ThisWorkbook.Date1904 = True
  End If
End Sub

 

Siehe auch unter 1900- und 1904-Datumssysteme von Microsoft Excel.

 

To Top


» Codebeispiel 10: Datenquellen und Verbindungsinformationen von Pivot-Tabellen auflisten

Mit dieser Prozedur werden alle Arbeitsblätter der aktiven Arbeitsmappe durchlaufen und zu jeder gefundenen Pivot-Tabelle Datenquelle (Spalte "SourceData"), Verbindungsinformation (Spalte "Connection") und SQL-String (Spalte "SQL") aufgeführt. Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

Bei Quelle "Excel":
MsgBox ActiveSheet.PivotTables(1).PivotCache.SourceData

[PivoTest.xls]Daten!Z5S1:Z26S5

Bei Quelle "Datenbank":
MsgBox ActiveSheet.PivotTables(1).PivotCache.Connection

ODBC;DefaultDir=D:\NeueDaten\SOSCQ;Driver={Microsoft Text-Treiber (*.txt; *.csv)};DriverId=27;Extensions=asc,csv,tab,txt;FIL=text;MaxBufferSize=2048;MaxScanRows=25;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;

MsgBox ActiveSheet.PivotTables(1).PivotCache.SQL

SELECT `Komma getrennte Datei2`.Name, `Komma getrennte Datei2`.Vorname, `Komma getrennte Datei2`.Anzahl FROM `Komma getrennte Datei2.csv` `Komma getrennte Datei2` ORDER BY `Komma getrennte Datei2`.Name

 

 

Sub ListPivotTablesSources()
  Dim wksReportSheet As Worksheet
  Dim wksSheet As Worksheet
  Dim intCounter As Integer
  Dim lngRow As Long
  Dim strResult As String
  On Error Resume Next
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  lngRow = 3
  Set wksReportSheet = Worksheets.Add
  With wksReportSheet
    .Range("A3:D3").Value = Array("Arbeitsblatt", "SourceData", "Connection", "SQL")
    .Range("A3:D3").Font.Bold = True
    For Each wksSheet In ActiveWorkbook.Worksheets
      If wksSheet.Name <> wksReportSheet.Name Then
        lngRow = lngRow + 1
        If wksSheet.PivotTables.Count > 0 Then
          For intCounter = 1 To wksSheet.PivotTables.Count
            .Cells(lngRow, 1).Value = wksSheet.Name
            strResult = wksSheet.PivotTables(intCounter).PivotCache.SourceData
            If Err.Number = 0 Then
              .Cells(lngRow, 2).Value = strResult
            Else
              Err.Clear
            End If
            strResult = wksSheet.PivotTables(intCounter).PivotCache.Connection
            If Err.Number = 0 Then
              .Cells(lngRow, 3).Value = strResult
            Else
              Err.Clear
            End If
            strResult = wksSheet.PivotTables(intCounter).PivotCache.Sql
            If Err.Number = 0 Then
              .Cells(lngRow, 4).Value = strResult
              .Cells(lngRow, 4).WrapText = False
            Else
              Err.Clear
            End If
            lngRow = lngRow + 1
          Next intCounter
          lngRow = lngRow - 1
        Else
          .Cells(lngRow, 1).Value = wksSheet.Name
          .Cells(lngRow, 2).Value = "(Keine Pivot-Tabelle)"
        End If
      End If
    Next
    .Columns("A:D").AutoFit
    .Range("A1").Value = "Datenquellen der Pivot-Tabellen"
    .Range("A1").Font.Bold = True
    .Range("A1").Font.Size = .Range("A1").Font.Size + 2
  End With
  Set wksReportSheet = Nothing
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End Sub

 

To Top


» Codebeispiel 11: Verbindungsinformationen von Datenbank- und Web-Abfragen auflisten

Dieses Codebeispiel zeigt, wie man die Verbindungsinformationen von den Datenbank- und Web-Abfragen in einer Arbeitsmappe abfragen und auflisten kann. Es werden alle Arbeitsblätter durchlaufen und zu jedem gefundenen externen Datenbereich (QueryTable) die Angaben Connection und SQL-String (nur bei Datenbank-Abfragen) ausgegeben. Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

Beispiel von Connection einer Datenbank-Abfrage:
ODBC;DBQ=C:\Daten;DefaultDir=C:\Daten;Driver={Microsoft Text Driver (*.txt; *.csv)};DriverId=27;Extensions=None,asc,csv,dat,log,tab,txt;FIL=text;MaxBufferSize=2048;MaxScanRows=25;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;

Beispiel von SQL einer Datenbank-Abfrage:
SELECT Textdatei1.Name, Textdatei2.Vorname_Nachname FROM Textdatei1.txt Textdatei1, Textdatei2.txt Textdatei2 WHERE Textdatei1.Name = Textdatei2.Vorname_Nachname

Beispiel von Connection einer Web-Abfrage:
URL;http://webservices.pcquote.com/cgi-bin/exceldow.exe?

Beispiel von SQL einer Web-Abfrage:
(Nicht verfügbar)

 

Sub ListDBAndWebQueryConnections()

End Sub

Siehe auch unter Datenbankabfragen, Web-Queries und externe Datenbereiche.

To Top


» Codebeispiel 12: Verfügbarkeit einer Schriftart überprüfen

Microsoft Office für Windows und Microsoft Office für Macintosh verwenden unterschiedliche Standard-Schriftarten. Während für einen Macintosh-Benutzer die Schriftart "Geneva" nichts Ungewöhnliches ist, kennt ein Windows-Benutzer diese Schriftart wahrscheinlich nicht, weil sie auf einem Windows-Rechner standardmässig nicht installiert ist. Bevor man beispielsweise einer Zelle eine Schriftart zuweist, sollte man überprüfen, ob die Schriftart auf dem System vorhanden ist.

Die Funktion CheckFont überprüft, ob die ihr übergebene Schriftart auf dem Computer existiert. Die Prozedur CheckFontDemo zeigt ein Muster, wie die Funktion aufgerufen werden kann.

Function CheckFont(ByVal strFont As String) As Boolean
  Dim intFonts As Integer
  Dim intResult As Integer
  Dim objControl As CommandBarComboBox
  strFont = Trim$(strFont)
  Set objControl = Application.CommandBars.FindControl(Id:=1728)
  For intFonts = 0 To objControl.ListCount - 1
    intResult = StrComp(strFont, objControl.List(intFonts + 1), vbTextCompare)
    If intResult = 0 Then
      CheckFont = True
      Exit Function
    ElseIf intResult = -1 Then
      CheckFont = False
      Exit Function
    End If
  Next intFonts
  Set objControl = Nothing
End Function

Sub CheckFontSample()
  Dim strFontname As String
  strFontname = "Verdana"
  If CheckFont(strFontname) = True Then
    MsgBox "Schriftart '" & strFontname & "' ist vorhanden.", vbInformation
  Else
    MsgBox "Schriftart '" & strFontname & "' ist nicht vorhanden.", vbInformation
  End If
End Sub

Siehe auch unter Schriftarten.

Siehe auch Codebeispiel 18 "Schriftarten in Codezeilen eines VBA-Projektes auflisten".

To Top


» Codebeispiel 13: Quellbereiche von Objekten mit verknüpften Daten auflisten

Einige in ein Arbeitsblatt einfügbare Objekte können mit einer Zelle verknüpft werden, die sozusagen als Datenquelle für den Objektinhalt verwendet wird. Eine solche Verknüpfung wird erstellt, indem man zuerst ein Objekt selektiert und dann in der Bearbeitungsleiste den Bezug zur gewünschten (Quell-)Zelle eingibt (z.B. "=A1") oder mit der Maus die gewünschte Zelle markiert. Anstatt einem Zellbezug kann man auch den definierten Namen einer Zelle bzw. eines Zellbereiches eingeben.

 

Diese Objekte unterstützen Datenverknüpfungen:

Objekttyp Objekt
Zeichnungsobjekt Rechteck, Ellipse
AutoForm Standardformen, Blockpfeile, Flussdiagramm, Sterne und Banner, Legende
Formular-Steuerelement Bezeichnungsfeld, Gruppenfeld, Schaltfläche
Bild Verknüpfte Grafik (siehe Anmerkung)
Textfeld Textfeld

Anmerkung:
Ein Bild-Objekt mit einer Datenverknüpfung wird als eine so genannte 'Verknüpfte Grafik' bezeichnet. Es ist der einzige Objekttyp, der als Verknüpfungsquelle mehrere Zellen, d.h. einen Zellbereich verwenden kann.

 

Mit dieser VBA-Prozedur werden alle Objekte in der aktiven Arbeitsmappe abgefragt. Alle Objekte, welche eine Datenverknüpfung unterstützen, werden im Direktfenster des VBA-Editors ausgegeben. Wenn ein Objekt tatsächlich eine Datenverknüpfung besitzt, so wird der Zellbezug der Verknüpfung angezeigt.

Sub GetObjectsWithLinkedData()
  Dim objObject As Object
  Dim objShape As Shape
  Dim wksSheet As Worksheet
  Dim strResult As String
  On Error Resume Next
  For Each wksSheet In ActiveWorkbook.Worksheets
    For Each objShape In wksSheet.Shapes
      Set objObject = objShape.DrawingObject
      strResult = objObject.Formula
      If Err.Number = 0 Then
        Debug.Print wksSheet.Name & " > " & objShape.Name & ": Datenverknüpfung: " & strResult
      Else
        Err.Clear
      End If
      Set objObject = Nothing
    Next
  Next
End Sub

 

Die folgende Prozedur ist eine Erweiterung der obigen Prozedur GetObjectsWithLinkedData. Hier werden die Objekte mit ihren Datenverknüpfungen auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe aufgelistet. Anhand der Konstante ONLYLINKEDOBJECTS können Sie festlegen, ob nur diejenigen Objekte aufgelistet werden sollen, die tatsächlich eine Datenverknüpfung besitzen (True), oder ob alle Objekte, die eine Datenverknüpfung unterstützen, ausgegeben werden sollen (False). Bei jedem Objekt wird zusätzlich der Typ des Objektes (Spalte "Shape-Typ"), der Typ des Zeichnungsobjektes (Spalte "DrawingObject-Typ") und die Position des Objektes auf dem Arbeitsblatt angezeigt. Als Position wird die Adresse der Zelle angegeben, die sich links oben des Objektes befindet.

Sub ListObjectsWithLinkedData()
  Const ONLYLINKEDOBJECTS As Boolean = True   'True = Nur Objekte mit Datenverknüpfungen
  Dim wksReportSheet As Worksheet
  Dim objObject As Object
  Dim objShape As Shape
  Dim wksSheet As Worksheet
  Dim strResult As String
  Dim lngRow As Long
  On Error Resume Next
  lngRow = 3
  Set wksReportSheet = Worksheets.Add
  With wksReportSheet
    .Range("A3:F3").Value = Array("Arbeitsblatt", "Objektname", "Shape-Typ", "DrawingObject-Typ", "Position", "Datenverknüpfung")
    .Range("A3:F3").Font.Bold = True
    For Each wksSheet In ActiveWorkbook.Worksheets
      For Each objShape In wksSheet.Shapes
        Set objObject = objShape.DrawingObject
        strResult = objObject.Formula
        If Err.Number = 0 Then
          If ONLYLINKEDOBJECTS Then
            If strResult <> "" Then
              lngRow = lngRow + 1
              .Cells(lngRow, 1).Value = wksSheet.Name
              .Cells(lngRow, 2).Value = objShape.Name
              .Cells(lngRow, 3).Value = GetShapeType(objShape.Type) & " (" & objShape.Type & ")"
              .Cells(lngRow, 4).Value = TypeName(objShape.DrawingObject)
              .Cells(lngRow, 5).Value = objShape.TopLeftCell.Address(False, False)
              .Cells(lngRow, 6).Value = strResult
            End If
          Else
            lngRow = lngRow + 1
            .Cells(lngRow, 1).Value = wksSheet.Name
            .Cells(lngRow, 2).Value = objShape.Name
            .Cells(lngRow, 3).Value = GetShapeType(objShape.Type) & " (" & objShape.Type & ")"
            .Cells(lngRow, 4).Value = TypeName(objShape.DrawingObject)
            .Cells(lngRow, 5).Value = objShape.TopLeftCell.Address(False, False)
            If strResult <> "" Then
              .Cells(lngRow, 6).Value = strResult
            Else
              .Cells(lngRow, 6).Value = "(Keine Verknüpfung)"
            End If
          End If
        Else
          Err.Clear
        End If
        Set objObject = Nothing
      Next
    Next
    .Columns("A:F").AutoFit
    .Range("A1").Value = "Objekte mit Datenverknüpfungen"
    .Range("A1").Font.Bold = True
    .Range("A1").Font.Size = .Range("A1").Font.Size + 2
  End With
  Set wksReportSheet = Nothing
End Sub

 

To Top


» Codebeispiel 14: Objekte mit zugewiesenen Makros auflisten

Den meisten Objekten, die in ein Arbeitsblatt eingefügt werden können, kann man ein Makro zuweisen. Dies wird in Microsoft Excel über den Menübefehl Makro zuweisen vorgenommen, der sich im Kontextmenü eines selektierten Objektes befindet. In VBA wird dazu die OnAction-Eigenschaft des Shape-Objektes verwendet.

Dieses Codebeispiel zeigt, wie man die Makrozuweisungen der Objekte in der Arbeitsmappe auflisten kann. Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt. Die Funktion GetShapeType wird zum Ermitteln der Shape-Typbezeichnung eines Shape-Typs benötigt.

Sub ListObjectsWithAppliedMacros()
  Dim wksReportSheet As Worksheet
  Dim objObject As Object
  Dim objShape As Shape
  Dim wksSheet As Worksheet
  Dim strResult As String
  Dim lngRow As Long
  On Error Resume Next
  lngRow = 3
  Set wksReportSheet = Worksheets.Add
  With wksReportSheet
    .Range("A3:E3").Value = Array("Arbeitsblatt", "Objektname", "Shape-Typ", "DrawingObject-Typ", "Makro")
    .Range("A3:E3").Font.Bold = True
    For Each wksSheet In ActiveWorkbook.Worksheets
      For Each objShape In wksSheet.Shapes
        strResult = objShape.OnAction
        If Err.Number = 0 Then
          lngRow = lngRow + 1
          .Cells(lngRow, 1).Value = wksSheet.Name
          .Cells(lngRow, 2).Value = objShape.Name
          .Cells(lngRow, 3).Value = GetShapeType(objShape.Type) & " (" & objShape.Type & ")"
          .Cells(lngRow, 4).Value = TypeName(objShape.DrawingObject)
          .Cells(lngRow, 5).Value = strResult
        Else
          Err.Clear
        End If
      Next
    Next
    .Columns("A:E").AutoFit
    .Range("A1").Value = "Objekte mit zugewiesenen Makros"
    .Range("A1").Font.Bold = True
    .Range("A1").Font.Size = .Range("A1").Font.Size + 2
  End With
  Set wksReportSheet = Nothing
End Sub

Function GetShapeType(ByVal intType As Integer) As String
  Dim strType As String
  Select Case intType
    Case 1
      strType = "AutoForm"
    Case 2
      strType = "CallOut"
    Case 3
      strType = "Chart"
    Case 4
      strType = "Comment"
    Case 5
      strType = "FreeForm"
    Case 6
      strType = "Group"
    Case 7
      strType = "EmbeddedOLEObject"
    Case 8
      strType = "FormControl"
    Case 9
      strType = "Line"
    Case 10
      strType = "LinkedOLEObject"
    Case 11
      strType = "LinkedPicture"
    Case 12
      strType = "OLEControlObject"
    Case 13
      strType = "Picture"
    Case 14
      strType = "Placeholder"
    Case 15
      strType = "TextEffect"
    Case 16
      strType = "Media"
    Case 17
      strType = "TextBox"
    Case -2
      strType = "ShapeTypeMixed"
    Case Else
      strType = "(Unbekannt)"
  End Select
  GetShapeType = strType
End Function

 

To Top


» Codebeispiel 15: Verweise im VBA-Projekt auflisten

Mit diesem VBA-Programmcode wird eine Liste mit den Verweisen des VBA-Projektes der aktiven Arbeitsmappe generiert.

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub ListProjectReferences()
  Dim wksReportSheet As Worksheet
  Dim objReference As Reference
  Dim lngRow As Long
  On Error Resume Next
  lngRow = 3
  Set wksReportSheet = Worksheets.Add
  With wksReportSheet
    .Range("A3:I3").Value = Array("Verweis", "Beschreibung", "Pfad", "Typ", "Integriert", "GUID", "Hauptversion", "Unterversion", "Vorhanden")
    .Range("A3:I3").Font.Bold = True
    For Each objReference In ActiveWorkbook.VBProject.References
      lngRow = lngRow + 1
      .Cells(lngRow, 1).Value = objReference.Name
      .Cells(lngRow, 2).Value = objReference.Description
      .Cells(lngRow, 3).Value = objReference.FullPath
      If objReference.Type = 0 Then
        .Cells(lngRow, 4).Value = "Bibliothek"
      Else
        .Cells(lngRow, 4).Value = "Projekt"
      End If
      .Cells(lngRow, 5).Value = objReference.BuiltIn
      .Cells(lngRow, 6).Value = objReference.GUID
      .Cells(lngRow, 7).Value = objReference.Major
      .Cells(lngRow, 8).Value = objReference.Minor
      .Cells(lngRow, 9).Value = Not objReference.IsBroken
    Next
    .Columns("A:I").AutoFit
    .Range("A1").Value = "Verweise im VBA-Projekt"
    .Range("A1").Font.Bold = True
    .Range("A1").Font.Size = .Range("A1").Font.Size + 2
  End With
  Set wksReportSheet = Nothing
End Sub

 

Siehe auch unter Verweise.

To Top


» Codebeispiel 16: Symbolleisten-Steuerelemente mit zugewiesenen Makros auflisten

Der nachstehende Programmcode listet alle Steuerelemente der Symbolleisten auf. Bei jedem Steuerelement, welchem ein Makro zugewiesen ist, wird der Name des Makros ausgegeben.

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt und zeigt die drei Spalten "Symbolleiste" (Name der Symbolleiste), "Steuerelement" (Beschriftung/Caption des Steuerelementes) und "Makro" (Name der Makroprozedur, inkl. Dateiname und Dateipfad, wenn sich das Makro in einer anderen Mappe/Add-In befindet).

Anhand der Konstante ONLYCONTROLSWITHMACRO können Sie bestimmen, ob nur Steuerelemente aufgelistet werden sollen, denen ein Makro zugewiesen ist (Konstante auf True stellen), oder ob alle Steuerelemente aufgeführt werden sollen (Konstante auf False stellen).

Die Prozedur GetCommandBarControl dient zum Durchlaufen der Steuerelemente einer Symbolleiste. Wenn ein Steuerelement weitere Steuerelemente enthält (z.B. 

 

'Deklarationsbereich
Private lngControls As Long
Private Const ONLYCONTROLSWITHMACRO As Boolean = True

 

Sub ListCommandBarControlsWithMacros()
  Dim objCommandBar As CommandBar
  Dim objControl As CommandBarControl
  Dim objSubControls As CommandBarControls
  Dim wksReportSheet As Worksheet
  Set wksReportSheet = ActiveWorkbook.Worksheets.Add
  With wksReportSheet
    .Range("A3:C3").Value = Array("Symbolleiste", "Steuerelement", "Makro")
    .Range("A3:C3").Font.Bold = True
  End With
  Application.StatusBar = "Verarbeitung läuft. Bitte warten..."
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Application.Calculation = xlCalculationManual
  lngControls = 3
  For Each objCommandBar In Application.CommandBars
    lngControls = lngControls + 1
    wksReportSheet.Cells(lngControls, 1).Value = objCommandBar.Name
    If objCommandBar.Controls.Count > 0 Then
      GetCommandBarControl objCommandBar.Controls
    End If
  Next
  With wksReportSheet
    .Columns("A:C").AutoFit
    .Range("A1").Value = "Makros von Symbolleisten-Steuerelementen"
    .Range("A1").Font.Bold = True
    .Range("A1").Font.Size = .Range("A1").Font.Size + 2
  End With
  Set wksReportSheet = Nothing
  Application.Calculation = xlCalculationAutomatic
  Application.EnableEvents = True
  Application.ScreenUpdating = True
  Application.StatusBar = False
End Sub

 

Sub GetCommandBarControl(objControls As CommandBarControls)
  Dim objControl As CommandBarControl
  Dim objSubControls As CommandBarControls
  On Error Resume Next
  For Each objControl In objControls
    If lngControls Mod 100 = 0 Then
      Application.StatusBar = "Verarbeite Steuerelement Nr. " & lngControls & "..."
    End If
    If ONLYCONTROLSWITHMACRO = True Then
      Err.Clear
      If objControl.OnAction <> "" Then
        If Err.Number = 0 Then
          lngControls = lngControls + 1
          ActiveSheet.Cells(lngControls, 2).Value = objControl.Caption
          ActiveSheet.Cells(lngControls, 3).Value = objControl.OnAction
        End If
      End If
    Else
      lngControls = lngControls + 1
      ActiveSheet.Cells(lngControls, 2).Value = objControl.Caption
      ActiveSheet.Cells(lngControls, 3).Value = objControl.OnAction
    End If
    Err.Clear
    Set objSubControls = objControl.Controls
    If Err.Number = 0 Then
      If objSubControls.Count > 0 Then
        GetCommandBarControl objSubControls
      End If
    End If
  Next
End Sub

 

To Top


» Codebeispiel 17: Quellen von verknüpften OLE-Objekten auflisten

Dieses Codebeispiel dient zum Ausgeben der Quellen von verknüpften OLE-Objekten. Ein verknüpftes OLE-Objekt ist ein Objekt, welches, von einer Datei erstellt, in ein Arbeitsblatt eingefügt wurde und eine Verknüpfung zum Inhalt der Quelldatei besitzt.

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub ListLinkedOLEObjectSources()

End Sub

 

Siehe auch unter OLE - Object Linking and Embedding.

To Top


» Codebeispiel 18: Schriftarten in Codezeilen eines VBA-Projektes auflisten

Diese Prozedur unterstützt Sie bei der Suche nach Codezeilen, in denen der Name einer Schriftart vorkommt. Es werden alle Module des VBA-Projektes der aktiven Arbeitsmappe untersucht. Die Fundstellen werden im Direktfenster des VBA-Editors ausgegeben.

Sub ListFontNamesInCode()
  Dim objComponent As VBComponent
  Dim objFontControl As Object
  Dim intLine As Integer
  Dim intFont As Integer
  Set objFontControl = Application.CommandBars.FindControl(Id:=1728)
  Debug.Print "Suche Schriftarten..."
  For Each objComponent In ActiveWorkbook.VBProject.VBComponents
    If objComponent.Type = vbext_ct_ClassModule Or vbext_ct_Document Or vbext_ct_StdModule Then
      With objComponent.CodeModule
        For intLine = 1 To .CountOfLines
          For intFont = 0 To objFontControl.ListCount - 1
            If InStr(.Lines(intLine, 1), objFontControl.List(intFont + 1)) > 0 Then
              Debug.Print "Modul '" & objComponent.Name & "'; Prozedur '" & _

                  .ProcOfLine(intLine, vbext_pk_Proc) & "'; Zeile " & intLine & _
                  "; Schriftart '" & objFontControl.List(intFont + 1) & _
                  "' > " & Trim$(.Lines(intLine, 1))
            End If
          Next intFont
        Next intLine
      End With
    End If
  Next objComponent
  Debug.Print "Fertig"
  Set objFontControl = Nothing
End Sub

 

Siehe auch Codebeispiel 12 "Verfügbarkeit einer Schriftart überprüfen".

To Top


» Codebeispiel 19: Zellen mit DDE-Verknüpfungen auflisten

Mit dieser Codeprozedur finden Sie alle Zellen, die eine DDE-Verknüpfung enthalten. Es werden sämtliche Zellen aller Arbeitsblätter in der aktiven Arbeitsmappe berücksichtigt.

Beispiele von DDE-Verknüpfungen:
=WinWord|System!Topics
=WinWord|'C:\Daten\Statistik.doc'!Umsatz

Eine DDE-Verknüpfung ist eine Art Formel (externer Bezug), die eine dynamische Datenverbindung mit einer anderen Anwendung aufbaut und Daten von der Quellanwendung anfordert. Nur Zellen können DDE-Verknüpfungen enthalten; Namen dagegen nicht.

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub List()

End Sub

 

To Top


» Codebeispiel 20: ProgIDs von OLE-Objekten auflisten

Das nachstehende Codebeispiel listet alle ProgIDs auf, die in der Arbeitsmappe von eingebetteten OLE-Objekten verwendet wurden.

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub ListProgIDs()

End Sub

 

To Top


» Codebeispiel 21: Datenquellen von Diagrammen auflisten

Mit diesem VBA-Code ...

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub ListChartsWithDataSources()

End Sub

 

To Top


» Codebeispiel 22: Benutzung von plattformspezifischen Tabellenfunktionen überprüfen

Mit diesem VBA-Code ...

 

Plattformspezifische Tabellenfunktionen sind Funktionen, die je nach Plattform (d.h. Windows oder Macintosh) unterschiedliche Ergebnisse liefern bzw. liefern können.

Tabellenfunktionen können in Formeln vorkommen, die in Zellen, Namen, bedingten Formatierungen oder Gültigkeiten stehen.

 

Diese Tabellenfunktionen werden überprüft:

Funktion Typ
INFO Informationsfunktion
ZELLE Informationsfunktion
SÄUBERN Textfunktion
ZEICHEN Textfunktion
CODE Textfunktion
DATUM Datums- und Zeitfunktion
DATWERT Datums- und Zeitfunktion
HEUTE Datums- und Zeitfunktion
JETZT Datums- und Zeitfunktion
JAHR Datums- und Zeitfunktion
HYPERLINK Matrixfunktion

 

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub CheckWorksheetFunctions()

End Sub

 

To Top


» Codebeispiel 23: Zellen mit Pfaden im Zellinhalt auflisten

Die nachfolgenden Codebeispiele generieren eine Liste derjenigen Zellen eines Arbeitsblattes, die einen Pfad enthalten.

- Die erste Prozedur listet alle Zellen vom Typ "Konstante" auf, in denen ein Pfad steht. Beispiel: Die Zelle A1 enthält den Text "C:\Daten\EineMappe.xls".

- Die zweite Prozedur listet alle Zellen vom Typ "Formel" auf, deren Zellinhalt ein Pfad enthält. Beispiel: Die Zelle A2 enthält die Formel/den Bezug "=A1". Der Inhalt der Zelle ist somit "C:\Daten\EineMappe.xls".

- Die dritte Prozedur listet alle Zellen vom Typ "Formel" auf, bei denen in der Formel ein Pfad vorkommt. Beispiel: Die Zelle A3 enthält die Formel "=HYPERLINK(B1, "C:\Daten\Textdatei.txt").

 

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub ListConstantCellsWithPath()
  Dim wksSheet As Worksheet
  Dim rngCells As Range
  Dim rngCell As Range
  Dim lngCounter As Long
  On Error Resume Next
  Set rngCells = ActiveCell.SpecialCells(xlCellTypeConstants, 2)
  If Err.Number <> 0 Then
    MsgBox "Keine Konstanten-Zellen gefunden.", vbInformation
    Exit Sub
  End If
  lngCounter = 1
  Set wksSheet = ActiveWorkbook.Worksheets.Add
  With wksSheet
    .Range("A1").Value = "Zelle"
    .Range("B1").Value = "Zellformel"
    .Range("C1").Value = "Zellwert"
    .Range("A1:C1").Font.Bold = True
    For Each rngCell In rngCells
      If InStr(rngCell.Value, ":\") > 0 Then
        lngCounter = lngCounter + 1
        .Cells(lngCounter, 1).Value = rngCell.Address(False, False)
        .Cells(lngCounter, 2).Value = "'" & rngCell.Formula
        .Cells(lngCounter, 3).Value = rngCell.Value
      End If
    Next
    .Columns("A:C").AutoFit
  End With
  If lngCounter = 1 Then
    MsgBox "Keine Konstanten-Zellen mit Pfad gefunden.", vbInformation
  End If
  Set rngCells = Nothing
  Set wksSheet = Nothing
End Sub

 

 

Sub ListFormulaCellsWithPath()
  Dim wksSheet As Worksheet
  Dim rngCells As Range
  Dim rngCell As Range
  Dim lngCounter As Long
  On Error Resume Next
  Set rngCells = ActiveCell.SpecialCells(xlCellTypeFormulas, 2)
  If Err.Number <> 0 Then
    MsgBox "Keine Formel-Zellen gefunden.", vbInformation
    Exit Sub
  End If
  lngCounter = 1
  Set wksSheet = ActiveWorkbook.Worksheets.Add
  With wksSheet
    .Range("A1").Value = "Zelle"
    .Range("B1").Value = "Zellformel"
    .Range("C1").Value = "Zellwert"
    .Range("A1:C1").Font.Bold = True
    For Each rngCell In rngCells
      If InStr(rngCell.Value, ":\") > 0 Then
        lngCounter = lngCounter + 1
        .Cells(lngCounter, 1).Value = rngCell.Address(False, False)
        .Cells(lngCounter, 2).Value = "'" & rngCell.Formula
        .Cells(lngCounter, 3).Value = rngCell.Value
      End If
    Next
    .Columns("A:C").AutoFit
  End With
  If lngCounter = 1 Then
    MsgBox "Keine Formel-Zellen mit Pfad gefunden.", vbInformation
  End If
  Set rngCells = Nothing
  Set wksSheet = Nothing
End Sub

 

 

Sub ListFormulaCellsWithPathInFormula()
  Dim wksSheet As Worksheet
  Dim rngCells As Range
  Dim rngCell As Range
  Dim lngCounter As Long
  On Error Resume Next
  Set rngCells = ActiveCell.SpecialCells(xlCellTypeFormulas, 2)
  If Err.Number <> 0 Then
    MsgBox "Keine Formel-Zellen gefunden.", vbInformation
    Exit Sub
  End If
  lngCounter = 1
  Set wksSheet = ActiveWorkbook.Worksheets.Add
  With wksSheet
    .Range("A1").Value = "Zelle"
    .Range("B1").Value = "Zellformel"
    .Range("C1").Value = "Zellwert"
    .Range("A1:C1").Font.Bold = True
    For Each rngCell In rngCells
      If InStr(rngCell.Formula, ":\") > 0 Then
        lngCounter = lngCounter + 1
        .Cells(lngCounter, 1).Value = rngCell.Address(False, False)
        .Cells(lngCounter, 2).Value = "'" & rngCell.Formula
        .Cells(lngCounter, 3).Value = rngCell.Value
      End If
    Next
    .Columns("A:C").AutoFit
  End With
  If lngCounter = 1 Then
    MsgBox "Keine Formel-Zellen mit Pfad in Formel gefunden.", vbInformation
  End If
  Set rngCells = Nothing
  Set wksSheet = Nothing
End Sub

 

 

To Top


» Codebeispiel 24: Zellkommentare mit Pfaden im Text auflisten

Dieses VBA-Codebeispiel erstellt eine Liste der Zellen, die einen Kommentar besitzen, in dessen Text eine Pfadangabe vorkommt.

Beispiel für einen Zellkommentar: "Hier Pfad der Statistiktabelle eintragen (z.B. S:\Jahr2005\Statistik.xls)."

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub ListCellCommentsWithPath()
  Dim wksSheet As Worksheet
  Dim rngCells As Range
  Dim rngCell As Range
  Dim lngCounter As Long
  On Error Resume Next
  Set rngCells = ActiveCell.SpecialCells(xlCellTypeComments)
  If Err.Number <> 0 Then
    MsgBox "Keine Zellen mit Kommentaren gefunden.", vbInformation
    Exit Sub
  End If
  lngCounter = 1
  Set wksSheet = ActiveWorkbook.Worksheets.Add
  With wksSheet
    .Range("A1").Value = "Zelle"
    .Range("B1").Value = "Zellkommentar"
    .Range("C1").Value = "Zellinhalt"
    .Range("A1:C1").Font.Bold = True
    For Each rngCell In rngCells
      If InStr(rngCell.Comment.Text, ":\") > 0 Then
        lngCounter = lngCounter + 1
        .Cells(lngCounter, 1).Value = rngCell.Address(False, False)
        .Cells(lngCounter, 2).Value = rngCell.Comment.Text
        .Cells(lngCounter, 3).Value = rngCell.Value
      End If
    Next
    .Columns("A:C").AutoFit
    If lngCounter > 1 Then
      .Rows("2:" & CStr(lngCounter)).AutoFit
    End If
  End With
  If lngCounter = 1 Then
    MsgBox "Keine Zellkommentare mit Pfaden gefunden.", vbInformation
  End If
  Set rngCells = Nothing
  Set wksSheet = Nothing
End Sub

 

 

To Top


» Codebeispiel 25: Namen auflisten

Mit dieser VBA-Prozedur erstellen Sie eine Liste der in einer Arbeitsmappe definierten Namen.

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub ListNames()

End Sub

 

 

To Top


» Codebeispiel 26: Schriftarten in Formatvorlagen überprüfen

 

Die Liste wird auf einem neuen Arbeitsblatt der aktiven Arbeitsmappe erstellt.

 

Sub CheckFontsInStyles()

End Sub

 

 

Zum Kapitelanfang Zum Seitenanfang


Tipps und Empfehlungen für Programmierer

Hier ein paar nützliche Empfehlungen und Tipps für Programmierer.

 

[01] Unterschiedliche Texte, Meldungen usw. als Konstanten definieren
[02] Global gültige Konstanten für die bedingte Kompilierung definieren
[03] Redundante Programmteile als Funktionen kapseln
[04] Plattformunabhängiges Pfadtrennzeichen mit benutzerdefinierter Tabellenfunktion ermitteln
[05] Plattformunabhängiges Pfadtrennzeichen anhand INFO-Tabellenfunktion bestimmen
[06] Symbolleisten und Symbolleisten-Steuerelemente mit VBA-Code erstellen
[07] Wichtige Systemumgebungsinformationen in der Arbeitsmappe speichern
[08] Verknüpfte Dokument-Eigenschaften für wichtige Arbeitsmappen-Informationen verwenden
[09] Eingestelltes Datumswertesystem mit benutzerdefinierter Tabellenfunktion ermitteln
[10] Neue VBA 6-Funktionen mit VBA 5 nachprogrammieren

To Top


» Tipp 1: Unterschiedliche Texte, Meldungen usw. als Konstanten definieren

Verwenden Sie Konstanten - diese werden mit Const deklariert - für alle Texte, die je nach Plattform unterschiedlich sind. Dieses Codebeispiel zeigt, wie anhand der bedingten Kompilierung erreicht wird, dass einer Konstante je nach Plattform einen anderen Text zugewiesen wird.

Der Programmcode unter "Deklarationsbereich" dient zum Zuweisen eines Meldungstextes der Konstante HELPTEXT abhängig von der aktuellen Systemplattform. In der exemplarischen Prozedur ShowMessage wird eine Fehlermeldung mit dem entsprechenden Hilfetext ausgegeben.

'Deklarationsbereich des Codemoduls
#If Mac Then
  Public Const HELPTEXT As String = "For more information press HELP."
#Else
  Public Const HELPTEXT As String = "For more information press F1."
#End If

'Codebereich des Codemoduls
Sub ShowMessage()
  MsgBox "Error 12345: Permission denied!" & vbCrLf & vbCrLf & HELPTEXT, vbCritical
End Sub

Informationen über das Herausfinden des aktuellen Betriebssystems finden Sie unter Abfragen der Ausführungsumgebung.

Informationen zum Thema "Bedingte Kompilierung" erhalten Sie unter Bedingte Kompilierung.

To Top


» Tipp 2: Global gültige Konstanten für die bedingte Kompilierung definieren

Tipp folgt in Kürze...

Der Gültigkeitsbereich einer Konstante für die bedingte Kompilierung erstreckt sich immer auf das jeweilige Modul, welches die Konstanten-Deklaration enthält.

Trick: Bedingte Konstante als Argument in den Projekteigenschaften eintragen.

 

To Top


» Tipp 3: Redundante Programmteile als Funktionen kapseln

Tipp folgt in Kürze...

 

 

To Top


» Tipp 4: Plattformunabhängiges Pfadtrennzeichen mit benutzerdefinierter Tabellenfunktion ermitteln

Microsoft Excel stellt keine Tabellenfunktion zum Ermitteln des plattformunabhängigen Pfadtrennzeichens bereit. Wenn Sie das Zeichen in Formeln von Zellen oder Namen benötigen, können Sie es anhand einer benutzerdefinierten Funktion abfragen.

 

'Codebereich eines Codemoduls
Public Function PFADTRENNZEICHEN() As String
  PFADTRENNZEICHEN = Application.PathSeparator
End Function

 

Beispiele

Formel in Zelle:

=PFADTRENNZEICHEN()

 

Zelle A1: Verzeichnispfad
Zelle A2: Dateiname
Zelle A3: Tabellenname
Zelle A4: Zellbezug

Formel in Zelle:

="'" & A1 & PFADTRENNZEICHEN() & "[" & A2 & "]" & A3 & "'!" & A4

 

Name mit Funktion

Neuer Name definieren: Name PFADTZ

Bezug von Name PFADTZ: =PFADTRENNZEICHEN()

Formel in Zelle:

=PFADTZ

To Top


» Tipp 5: Plattformunabhängiges Pfadtrennzeichen anhand INFO-Tabellenfunktion bestimmen

Microsoft Excel stellt keine Tabellenfunktion zum Ermitteln des plattformunabhängigen Pfadtrennzeichens bereit. Sie können das zu verwendende Zeichen mithilfe der Tabellenfunktion INFO mit Infotyp "System" bestimmen.

=WENN(INFO("System")="PCDOS";"\";":")

=WENN(KLEIN(INFO("System"))="pcdos";"\";":")

 

Liefert unter Windows das Zeichen "\". Auf dem Macintosh das Zeichen ":".

To Top


» Tipp 6: Symbolleisten und Symbolleisten-Steuerelemente mit VBA-Code erstellen

Tipp folgt in Kürze...

 

 

To Top


» Tipp 7: Wichtige Systemumgebungsinformationen in der Arbeitsmappe speichern

Tipp folgt in Kürze...

 

Systemumgebungsinformationen in benannten Zellen
Abbildung: Systemumgebungsinformationen in benannten Zellen

 

1. Namen für drei Zellen definieren: Datumssystem, Plattform und Excelversion

2. Zahlenformat "Text" für die drei Zellen einstellen

3. Nachstehender Programmcode in das VBA-Projekt einfügen

 

 

'Codemodul von "DieseArbeitsmappe"
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  With ThisWorkbook.Worksheets("Settings")
    If ThisWorkbook.Date1904 = True Then
      .Range("Datumssystem").Value = "1904"
    Else
      .Range("Datumssystem").Value = "1900"
    End If
    If Application.OperatingSystem Like "*Macintosh*" Then
      .Range("Plattform").Value = "Macintosh"
    Else
      .Range("Plattform").Value = "Windows"
    End If
    .Range("Excelversion").Value = Application.Version
  End With
End Sub

 

 

To Top


» Tipp 8: Verknüpfte Dokument-Eigenschaften für wichtige Arbeitsmappen-Informationen verwenden

Tipp folgt in Kürze...

 

Benutzerdefinierte Dokument-Eigenschaften
Abbildung: Benutzerdefinierte Dokument-Eigenschaften

 

Diese Prozedur muss nur ein Mal ausgeführt werden.

 

Sub AddCustomDocumentProperties()
  On Error Resume Next
  With ActiveWorkbook.CustomDocumentProperties

    .Add Name:="Datumssystem", LinkToContent:=True, Type:=4, LinkSource:="Datumssystem"
    .Add Name:="Plattform", LinkToContent:=True, Type:=4, LinkSource:="Plattform"
    .Add Name:="Excelversion", LinkToContent:=True, Type:=4, LinkSource:="Excelversion"
  End With
End Sub

 

 

To Top


» Tipp 9: Eingestelltes Datumswertesystem mit benutzerdefinierter Tabellenfunktion ermitteln

Tipp folgt in Kürze...

 

Microsoft Excel besitzt keine Standard-Tabellenfunktion zum Abfragen des aktuell eingestellten Datumswertesystems einer Arbeitsmappe.

Hier eine benutzerdefinierte Funktion:

 

'Codebereich eines Codemoduls
Public Function DATUMSWERTESYSTEM() As String
  If ThisWorkbook.Date1904 = True Then
    DATUMSWERTESYSTEM = "1904"
  Else
    DATUMSWERTESYSTEM = "1900"
  End If
End Function

 

Beispiele

Formel in Zelle:

=DATUMSWERTESYSTEM()

 

 

Weitere Informationen über die Datumswertesysteme erhalten Sie unter 1900- und 1904-Datumssystem von Microsoft Excel.

 

To Top


» Tipp 10: Neue VBA 6-Funktionen mit VBA 5 nachprogrammieren

Tipp folgt in Kürze...

 

Beispiel: Funktion StrReverse

 

#If Vba5 Then
  Public Function StrReverse(sIn As String) As String
    Dim i As Long
    StrReverse = Space(Len(sIn))
    For i = 1 To Len(sIn)
      Mid(StrReverse, Len(sIn) - (i - 1), 1) = Mid(sIn, i, 1)
    Next i
  End Function

#End If

 

 

Zum Kapitelanfang Zum Seitenanfang


Hintergrundwissen

In diesem Kapitel "Hintergrundwissen" finden Sie interessante Informationen - vorwiegend technische - zu Excel-Internas.

 Das Microsoft Excel-Dateiformat

 Alles über externe Verknüpfungen

 Die wichtigsten Limitationen in Microsoft Excel

 

Zum Seitenanfang


Das Microsoft Excel-Dateiformat

Microsoft Excel verwendet für Arbeitsmappen, Vorlagen, Add-Ins und Sicherungsdateien ein Dateiformat namens BIFF (Binary Interchange File Format), wobei seit Microsoft Excel Version 97 das Format BIFF8 verwendet wird. Excel 2000 besitzt nur minimale Erweiterungen gegenüber BIFF8 von Excel 97, die kaum erwähnenswert sind. Excel 2002 dagegen führte ein paar neue Recordtypen ein, die zwar die Dateikompatibilität nicht beeinträchtigen, aber insbesondere dann genauer betrachtet werden sollten, wenn eine Mappe mit Excel 2002 erstellt und anschliessend in Excel 97 benutzt wird.

 

Eine ausführliche Dokumentation des Excel-Dateiformates BIFF finden Sie hier:

Weitere Informationen

The SOSCQ Page: Excel-Dateiformat BIFF

 

Zum Seitenanfang


Alles über externe Verknüpfungen

 

Verknuepfungen-Dialog.gif (6564 Byte)

 

Abbildung: Verknüpfungen

 

Quelle-wechseln-2.gif (2771 Byte)

 

Abbildung: Quelle wechseln

 

Quelle-wechseln.gif (3081 Byte)

 

Abbildung: Quelle wechseln

 

 

SUPBOOK, 1AEhex, 430dec

 

So werden externe Verknüpfungen in einer Exceldatei gespeichert

 

SUPBOOK, 1AEhex, 430dec

EXTERNNAME, 23hex, 35dec

DCONREF, 51hex, 81dec

 

HLINK, 1B8hex, 440dec

 

 

URL Encoding

Encoded File URLs

The intention of encoding file URLs is to make them more platform independent. Encoded URLs occur in the records

EXTERNSHEET (BIFF2-BIFF7, .5.39) or SUPBOOK (BIFF8, .5.99), and DCONREF (.5.27).

Formel/Bezug Encoded Dateiname
=[ext.xls]Sheet1!A1 <01H>[ext.xls]Sheet1
='sub\[ext.xls]Sheet1'!A1 <01H>sub<03H>[ext.xls]Sheet1
='\[ext.xls]Sheet1'!A1 <01H><02H>[ext.xls]Sheet1
='\sub\[ext.xls]Sheet1'!A1 <01H><02H>sub<03H>[ext.xls]Sheet1
='\sub\sub2\[ext.xls]Sheet1'!A1 <01H><02H>sub<03H>sub2<03H>[ext.xls]Sheet1
='D:\sub\[ext.xls]Sheet1'!A1 <01H><01H>Dsub<03H>[ext.xls]Sheet1
='..\sub\[ext.xls]Sheet1'!A1 <01H><04H>sub<03H>[ext.xls]Sheet1
='\\pc\sub\[ext.xls]Sheet1'!A1 <01H><01H>@pc<03H>sub<03H>[ext.xls]Sheet1
='http://www.example.org/[ext.xls]Sheet1'!A1 <01H><05H><26H>http://www.example.org/[ext.xls]Sheet1

 

Encoded DDE and OLE Object Links

Link Encoded Dokumentname
DDE

soffice<03H>sub\example.sxc

OLE Object

Package<03H>sub\example.bmp

 

Zum Seitenanfang


Die wichtigsten Limitationen in Microsoft Excel

Abgesehen von den offensichtlichen Unterschieden und Inkompatibilitäten zwischen Microsoft Excel für Windows und Microsoft Excel für Macintosh gibt es ein paar Limitationen und Spezifikationen, die in den einzelnen Excelversionen verschieden sind.

 

XLimits ist das weltweit grösste Nachschlagewerk für Limitationen, Spezifikationen und Grenzen in Microsoft Excel und anderen Programmen. Auch die Programmiersprachen VBA und VB, die Entwicklungsumgebungen VBA-Editor und Visual Basic IDE sowie mehrere System-Komponenten - unter anderem Windows Registry und Zwischenablage - werden vorgestellt und ausführlich erklärt. XLimits ist nicht nur eine Auflistung der bekannten Limitationen. Hier erfahren Sie alles über Hintergründe, Ursachen, Auswirkungen, Problembehebungsmöglichkeiten, Umgehungslösungen und vieles mehr. Es gibt eine Vielzahl ausführlicher Limitationen-Fachartikel mit detaillierten Beschreibungen zu besonders interessanten Limitationen. XLimits ist zudem die grösste deutschsprachige Website mit Informationen über wenig bekannte Excel-Internas. Auf mehreren Themenseiten werden Spezialthemen wie unter anderem 'Excel und Arbeitsspeicher', 'Excel und Systemressourcen' und 'Dateigrösse von Arbeitsmappen' vorgestellt. Natürlich gibt es auch eine ganze Reihe nützlicher Tools, Excel Add-Ins, Dokumentationen und Musterdateien, die allesamt kostenlos sind und auf der Downloadseite heruntergeladen werden können.

XLimits - Alles über Limitationen, Spezifikationen und Grenzen in Microsoft Excel

 

Direktlinks zu den wichtigsten Seiten:

Limitationen in Microsoft Excel

Limitationen in Excel-VBA und Excel-Objektmodell

Limitationen von Diagrammen

Limitationen von Pivot-Tabellen

Limitationen von Arrays und Matrizen

Fachartikel zu den wichtigsten Excel-Limitationen

 

Themenübersicht

Stichwortsuche

Zum Kapitelanfang Zum Seitenanfang


Links zu weiteren Informationsquellen

Dokumentationen und Anleitungen

Description of differences between Excel 2001 for Mac and Excel 2000
http://support.microsoft.com/?scid=kb;en-us;843305

Using Office v. X: From Windows to Mac and back:
Working across platforms with Office v. X

http://www.microsoft.com/mac/otherproducts/officex/using.aspx?pid=usingofficex&type=howto&article=/mac/LIBRARY/how_to_articles/officex/of_crossplatform.xml

Excel 98 Macintosh Edition FAQ
http://support.microsoft.com/default.aspx?scid=/support/MacExcel/faq/XL98FAQ.asp

Der Artikel enthält folgende Themen:
» New Features in Microsoft Excel 98
» New Microsoft Excel 98 User Interface
» Excel 98 Error Messages
» Microsoft Excel 98 on the Web
» Using Microsoft Query
» Visual Basic for Applications
» Year 2000 Compliance
» Miscellaneous Topics

Excel 98 Macintosh Edition FAQ: VBA
http://support.microsoft.com/default.aspx?scid=/support/MacExcel/faq/XL98FAQ.asp#VB

Excel 2001 for Mac FAQ
http://support.microsoft.com/default.aspx?scid=/support/macexcel/faq/xl2001faq.asp

Der Artikel enthält folgende Themen:
» New Features in Microsoft Excel 2001
» Microsoft Excel 2001 User Interface
» Microsoft Excel 2001 Error Messages
» Microsoft Excel 2001 on the Web
» Visual Basic for Applications
» Miscellaneous Topics

Excel 2001 for Mac FAQ: VBA
http://support.microsoft.com/default.aspx?scid=/support/macexcel/faq/xl2001faq.asp#VB

Differences Between Excel 98 for Mac and Excel 97
http://support.microsoft.com/default.aspx?scid=%2fsupport%2fmacexcel%2fcontent%2ftransition%2fmactrans.asp%3f

Differences Between Excel 2001 for Mac and Excel 2000
http://support.microsoft.com/default.aspx?scid=%2fsupport%2fmacexcel%2fcontent%2ftransition%2fmactrans2000.asp

XL98: VBA Macro Behavior Is Different from Excel 5.0
http://support.microsoft.com/?kbid=183541

OFF98: Programming resources for Visual Basic for Applications
http://support.microsoft.com/default.aspx?scid=kb;EN-US;163435

OFF2001: Programming Resources for Visual Basic for Applications
http://support.microsoft.com/default.aspx?scid=kb;en-us;274705&Product=XL2001

MacXL: Resources That Offer Information About Programming in Visual Basic
http://support.microsoft.com/default.aspx?scid=kb;en-us;310330&Product=XL2001

MacXL: How to Run VBA Procedures from AppleScript
http://support.microsoft.com/?scid=kb;en-us;184440

XL: 1900- und 1904-Datumssystem im Vergleich
http://support.microsoft.com/?scid=kb;de;214330
XL: Description of the differences between the 1900 Date System and the 1904 Date System in Excel
http://support.microsoft.com/?scid=kb;en-us;214330

To Top


Bugs und Probleme

MacXL: Run-Time Error When You Set RowSource Property (98/2001)
http://support.microsoft.com/?scid=kb;en-us;175795
Siehe auch unter RowSource-Eigenschaft

XL98: General ODBC Error Running Macro from Excel for Windows
http://support.microsoft.com/?scid=kb;en-us;184591

MacOFF: Help Button Is Missing in VBA Macro Message Box
http://support.microsoft.com/?scid=kb;en-us;205191
Siehe auch unter MsgBox-Funktion

MacXLX: "Object Library Not Found" Error or Excel Quits
http://support.microsoft.com/?scid=kb;en-us;322237

XL2001: Excel Hangs When You Attempt to Copy Worksheet in Same Workbook
http://support.microsoft.com/?scid=kb;EN-US;286266

XL2001: Fehlermeldungen beim Öffnen einer Excel-Arbeitsmappe, die ein Visual Basic-Makro enthält
Fehlermeldung "Fehler beim Laden einer DLL"
Fehlermeldung "Objektbibliothek nicht registriert"
Fehlermeldung "Nicht genügend Arbeitsspeicher"
Fehlermeldung "Die Anwendung 'Microsoft Excel' wurde wegen eines Fehlers des Typs 2 unerwartet beendet."
http://support.microsoft.com/default.aspx?scid=kb;de;D302616
XL2001: Error Messages Appear When You Open an Excel Workbook That Has a Visual Basic Macro
http://support.microsoft.com/?kbid=302616

XL98/XL2001: Visual Basic-Fehler 35012 beim Öffnen einer Arbeitsmappe, die Makros enthält
http://support.microsoft.com/default.aspx?scid=kb;de;D310329
XL98/XL2001: Visual Basic Error 35012 When You Open a Workbook That Has Macros
http://support.microsoft.com/?scid=kb;en-us;310329

MacXL: Error When You Paste ActiveX Controls or Run a Macro
http://support.microsoft.com/?scid=kb;en-us;274222
Siehe auch unter ActiveX-Controls

OFF98: Visual Basic Error Messages When You Start Office Program or Visual Basic Editor, or Run a Macro
http://support.microsoft.com/?scid=kb;EN-US;272347

MacXL: Data Maps Are Not Supported in Microsoft Excel for Mac
http://support.microsoft.com/?scid=kb;en-us;274220
Siehe auch unter Landkarten (Data Maps)

MacXL: LibraryPath Includes Trailing Separator on Macintosh
http://support.microsoft.com/?scid=kb;en-us;176803
Siehe auch unter LibraryPath-Eigenschaft

MacOFF: Fractions Converted to Underscore Characters
http://support.microsoft.com/?scid=kb;en-us;193979
Siehe auch unter Sonderzeichen

XL2001: Office-Programme werden beim Einfügen von PICT-Datei unerwartet beendet
http://support.microsoft.com/default.aspx?scid=kb;de;D44791
XL2001: Office Programs Quit Unexpectedly When You Insert PICT Files
http://support.microsoft.com/?kbid=269886
Siehe auch unter Grafik-Dateiformate

XL98/XL2001: Unable to Open File After You Change Code Name of Sheet
Error Message "The Application 'Microsoft Excel' has unexpectedly quit, because an error of type 2 occurred. You should save your work in other open applications and restart the computer."
Error Message "Sorry, a system error occurred. 'Microsoft Excel' error type 11"
http://support.microsoft.com/?kbid=178503

XL: XL2000 References Are Missing After Moving Files from Windows to Macintosh
http://support.microsoft.com/default.aspx?scid=kb;EN-US;214333

To Top


Verschiedene Themen

MacXL: Error Trapping with Visual Basic for Applications
http://support.microsoft.com/?scid=kb;en-us;193247

Neuerungen und Änderungen in den Objektmodellen von Microsoft-Programmen
http://195.186.84.74/pos/objectmodelchanges.htm

How Virtual Memory Works on a Power Macintosh
http://support.microsoft.com/?kbid=120506

MacXL: Problems If Virtual Memory Off or Available Memory Low
http://support.microsoft.com/?scid=kb;en-us;178596

MacOFF: How to Optimize Your Macintosh System Configuration
http://support.microsoft.com/?scid=kb;en-us;297238

How to Troubleshoot Extension Conflicts on the Macintosh
http://support.microsoft.com/?scid=kb;EN-US;263159

XL2001: What's New in Excel 2001?
http://support.microsoft.com/?scid=kb;en-us;274105

Excel FAQ - Macros (Macintosh)
http://www.contextures.on.ca/xlfaqMac.html

McGimpsey & Associates: General Troubleshooting for MacXL v.X
http://mcgimpsey.com/macoffice/excel/troubleshooting.html

Limitationen, Spezifikationen und Grenzen in Microsoft Excel
http://195.186.84.74/xlimits/index.htm

To Top


Newsgroups

Mac Newsgroup
http://www.microsoft.com/mac/community/community.aspx?pid=newsgroups

Excel for Mac Newsgroup
http://groups.google.com/groups?group=microsoft.public.mac.office.excel

ExcelForums: Macintosh
http://www.excelforums.com/viewforum.php?f=23

Zum Kapitelanfang Zum Seitenanfang


Anhang

Begriffserklärungen

Die nachfolgende Tabelle erklärt die wichtigsten, in dieser Dokumentation verwendeten Begriffe.

Begriff Beschreibung Hinweis
ActiveX-Steuerelement Ein Steuerelement, beispielsweise ein Kontrollfeld, ein Listenfeld oder eine Befehlsschaltfläche, das Sie mit Hilfe der Steuerelement-Toolbox erstellen und das Benutzern Optionen anbietet oder Makros ausführt, die eine Aufgabe automatisieren. Wenn Sie ActiveX-Steuerelemente in benutzerdefinierte Programme einfügen, z.B. in Formulare und Dialogfelder, können Sie ein Makro schreiben, das zusammen mit dem Steuerelement gespeichert wird und dem Steuerelement nicht erst beim Klicken darauf zugewiesen wird. Sie können das Steuerelement "aktivieren", indem Sie Makros in Visual Basic für Applikationen schreiben, die das Verhalten des Steuerelementes anpassen.  
COM Abkürzung für "Component Object Model". Ein technischer Industriestandard, der die Regeln und Definitionen zum Design von Windows-Applikationen enthält, damit diese ihre Objekte offenlegen und anderen Applikationen zur Verfügung stellen können.  
Diagrammblatt Ein Blatt in einer Arbeitsmappe, das lediglich ein Diagramm enthält. Diagrammblätter sind mit Tabellendaten verknüpft und werden aktualisiert, wenn sich die Tabellendaten ändern.  
Dynamischer Datenaustausch Englisch: Dynamic Data Exchange (DDE). Ein gängiges Protokoll für den Datenaustausch zwischen Windows-basierten Programmen.  
Eingebettetes Objekt In eine Datei (Zieldatei) eingefügte Daten (Objekt). Sobald ein Objekt eingebettet wurde, ist es Teil der Zieldatei. Wenn Sie auf ein eingebettetes Objekt doppelklicken, wird das Programm (Quellprogramm) geöffnet, in dem das Objekt erstellt wurde. Alle an dem eingebetteten Objekt vorgenommenen Änderungen wirken sich auf die Zieldatei aus. Siehe auch unter Verknüpftes Objekt
Entwurfszeit Die Zeit, in der Sie eine Anwendung in der Entwicklungsumgebung erstellen, indem Sie z.B. Steuerelemente hinzufügen oder Eigenschaften von Steuerelementen und Formularen festlegen. Im Gegensatz dazu arbeiten Sie zur Laufzeit mit der Anwendung interaktiv, wie jeder Benutzer. Die Entwurfszeit wird auch Design-Modus oder engl. Design Time Mode genannt. Siehe auch unter Laufzeit
Fernbezug Ein Bezug zu Daten, die in einem Dokument gespeichert sind, das in einem anderen Programm erstellt wurde.  
Gültigkeitsbereich Definiert die Verfügbarkeit einer Variablen, einer Prozedur oder eines Objekts. Beispielsweise ist eine Variable, die als Public deklariert ist, für alle Prozeduren in allen Modulen in einem direkt referenzierenden Projekt verfügbar, es sei denn, Option Private Module ist aktiviert. Wenn Option Private Module aktiviert ist, ist das Modul selbst privat und daher für referenzierende Projekte nicht verfügbar. Innerhalb einer Prozedur deklarierte Variablen sind nur innerhalb der Prozedur verfügbar. Sie verlieren ihren Wert zwischen zwei Aufrufen, es sei denn, sie sind mit Static deklariert.  
Haltemodus Zeitlich begrenzte Unterbrechung der Programmausführung in der Entwicklungsumgebung. Im Haltemodus können Sie die Programmausführung überprüfen, zurücksetzen oder fortsetzen sowie Fehler beseitigen und schrittweise das Programm durchlaufen. Unter den folgenden Bedingungen wird während der Programmausführung in den Haltemodus gewechselt:
- Während der Programmausführung wird einen Haltepunkt erreicht.
- Während der Programmausführung wird STRG+PAUSE gedrückt.
- Bei der Programmausführung wird eine Stop-Anweisung oder ein bisher nicht entdeckter Laufzeitfehler erreicht.
- Ein 'Unterbrechen, wenn der Wert True ist'-Überwachungsausdruck wird hinzugefügt. Die Programmausführung wird angehalten, wenn der Wert des Überwachungsausdrucks wechselt und True ergibt.
- Ein 'Unterbrechen, wenn Wert geändert wurde'-Überwachungsausdruck wird hinzugefügt. Die Programmausführung hält an, wenn der Wert des Überwachungsausdrucks wechselt.
 
Host-Anwendung Alle Anwendungen, die die Verwendung von Visual Basic für Applikationen unterstützen, wie beispielsweise Microsoft Word, Microsoft Excel etc.  
Integrierte Konstante Eine Konstante, die von einer Anwendung bereitgestellt wird. Die Konstanten von Visual Basic sind in der Objektbibliothek aufgelistet und können mit dem Objektkatalog betrachtet werden. Da Sie integrierte Konstanten nicht deaktivieren können, ist es nicht möglich, benutzerdefinierte Konstanten mit demselben Namen zu erstellen.  
Klassenbibliothek Eine Datei oder eine Komponente innerhalb einer anderen Datei, die Standardbeschreibungen von offengelegten Objekten, Eigenschaften und Methoden enthält, die für Automatisierung verfügbar sind. Klassenbibliotheksdateien (.olb) enthalten Klassenbibliotheken.

Anmerkung: Klassenbibliothekdateien können auch die Datei-Endungen .tlb, .dll, .ocx und .exe besitzen.

Siehe auch unter Objektbibliothek
Konstante Ein benanntes Element, das während der gesamten Programmausführung einen konstanten Wert behält. Eine Konstante kann ein Zeichenfolge- oder numerisches Literal, eine andere Konstante oder eine beliebige Kombination sein, die arithmetische oder logische Operatoren (ausser Is und Exponentialausdrücke) enthält. Jede Host-Anwendung kann ihren eigenen Satz von Konstanten bestimmen. Zusätzliche Konstanten können von den Benutzer mit der Const-Anweisung definiert werden. Sie können Konstanten überall in Ihrem Code anstelle der tatsächlichen Werte einsetzen.  
Laufzeit Die Zeit, in der das VBA-Programm ausgeführt wird. Zur Laufzeit können Sie den Programmcode nicht bearbeiten. Siehe auch unter Entwurfszeit
Objektbibliothek Eine Datei mit der Dateinamenerweiterung .olb, die Informationen über verfügbare Objekte für Automatisierungs-Controller (wie Visual Basic) bereitstellt. Sie können mit dem Objektkatalog-Werkzeug der VBA-Entwicklungsumgebung die Inhalte einer Objektbibliothek überprüfen, um Informationen über die bereitgestellten Objekt zu erhalten.

Anmerkung: Objektbibliotheken können auch die Datei-Endungen .tlb, .dll, .ocx und .exe besitzen.

Siehe auch unter Klassenbibliothek und Objektkatalog
Objektkatalog Ein Werkzeug der VBA-Entwicklungsumgebung, mit dem Sie die Inhalte von Objektbibliotheken ansehen können, um Informationen über die bereitgestellten Objekte zu erhalten. Siehe auch unter Objektbibliothek
OLE Eine Technologie zur Integration von Programmen, die zum Austausch von Daten zwischen Programmen verwendet werden kann. Alle Office-Programme unterstützen OLE, so dass Daten über verknüpfte und eingebettete Objekte ausgetauscht werden können.  
Referenzierendes Projekt Das aktuelle Projekt. Es hängt von der Host-Anwendung ab, wie Sie eine Verknüpfung zu einem Projekt erstellen. Wenn Sie beispielsweise direkt auf ein Projekt in Microsoft Excel verweisen möchten, wählen Sie im Menü Extras aus dem Dialogfeld Verweise das Projekt aus. Public-Variablen in einem direkt referenzierten Projekt sind für das direkt referenzierende Projekt verfügbar, jedoch sind Public-Variablen in einem direkt referenzierenden Projekt für ein direkt referenziertes Projekt nicht verfügbar.  
Schlüsselwort Ein Wort oder ein Symbol, welches als Teil der Programmiersprache von Visual Basic erkannt wird, wie beispielsweise eine Anweisung, ein Funktionsname oder ein Operator.  
Verknüpftes Objekt Daten (Objekt), die in einer Datei erstellt (Quelldatei) und in eine andere Datei (Zieldatei) eingefügt werden, wobei eine Verbindung zwischen den beiden Dateien bestehen bleibt. Eine Aktualisierung der Quelldatei wirkt sich automatisch auf das verknüpfte Objekt in der Zieldatei aus. Ein verknüpftes Objekt wird nicht zum Teil der Zieldatei. Siehe auch unter Eingebettetes Objekt

Zum Seitenanfang


Typografische Dokument-Konventionen

Diese Tabelle zeigt die typografischen Konventionen für das Dokument.

Element Beispiel Konvention
Menübefehle Extras/Optionen Menübefehle sind in kursiver Schrift angegeben.
Schlüsselwörter/Bezeichner MsgBox, Workbooks,
ScreenUpdating, vbNormal
Schlüsselwörter und Bezeichner wie beispielsweise Namen von Objekten, Methoden, Eigenschaften, Ereignissen, VBA-Anweisungen und -Funktionen, Variablen, Konstanten usw. sind kursiv geschrieben.
Dialogfensternamen Dialogfenster "Datei speichern unter", Optionen-Dialog Der Name eines Dialogfensters wird gewöhnlich in Anführungszeichen (") geschrieben, insbesondere wenn er mehrere Wörter enthält (z.B. Dialogfenster "Datei speichern unter"). Dialogfensternamen mit nur einem Wort können auch ohne Anführungszeichen angegeben sein (z.B. Optionen-Dialog).
Tastenbefehle Umschalt-Taste,
Strg+Alt+F9
Namen von Tasten und Tastenkombinationen sind in kursiver Schrift angegeben.
Tastenbezeichnungen Umschalt-Taste,
Strg+Alt+F9,
Page Down
Bei Spezialtasten werden gewöhnlich die deutschen Bezeichnungen verwendet (z.B. Strg statt  Ctrl, Umschalt statt Shift). In seltenen Fällen werden zwecks besserer Lesbarkeit englische Bezeichnung verwendet werden (z.B. Page Up und Page Down).
Programmcode ActiveCell.Value = 1 Programmcode verwendet generell die Schriftart Courier New.
Code-Kommentare 'Variable deklarieren Kommentare in Programmcode (sog. Inline Comments) sind in dunkelgrüner Farbe geschrieben.
Platzhalter Dateiname = x,
"Mappe <Datei> speichern?"
Platzhalter sind entweder kursiv geschrieben oder mit den Zeichen '<' und '>' eingefasst.
Zahlen 1'234.56 Bei Zahlen wird als Tausendertrennzeichen ein Apostroph (') und als Dezimaltrennzeichen ein Punkt (.) verwendet. Dies entspricht der in der Schweiz üblichen Schreibweise.
Eszett 'ß' Grösse (statt Größe) Anstelle des scharfen 'ß' werden immer zwei 's' (d.h. 'ss') geschrieben (Beispiel: "Grösse" statt "Größe").
Webadressen http://www.google.de Bei Webadressen ist immer die vollständige URL/Adresse inklusive Präfix "http://" angegeben (z.B. 'http://www.google.de' statt nur 'Google'). Dadurch ist die einem Link hinterlegte Adresse auch erkennbar, ohne zuerst den Mauszeiger über den Link positionieren zu müssen.
Weitere Informationen Weitere Informationen Links zu weiteren Informationsquellen sind in einem hellgelben Rechteck angegeben und verwenden das i-Symbol in einer Sprechblase und den Text "Weitere Informationen".
Tipps Tipp Tipps sind am Glühbirnen-Symbol und dem Hinweis "Tipp" zu erkennen.
Wichtig/Achtung Besonders wichtige Hinweise sind mit einem Ausrufezeichen-Symbol gekennzeichnet. Solche Textstellen sollten unbedingt beachtet werden, da sie auf Gefahren, Probleme, Bugs und Fehler hinweisen.
Fehlermeldungen "Nicht genügend Arbeitsspeicher" Fehlermeldungen sind grundsätzlich mit ihrem exakten Wortlaut angegeben. Das erleichtert die Volltextsuche. Geben Sie bei der Suche beispielsweise "Nicht genügend Arbeitsspeicher" ein und nicht "Ungenügend Arbeitsspeicher", "Zu wenig Arbeitsspeicher" oder "Nicht genügend Speicher".

Zum Seitenanfang


Stichwortverzeichnis

...

 

 

 

Zum Kapitelanfang Zum Seitenanfang


Offene Punkte und Pendenzen

Offene Punkte

Diese Punkte sind momentan noch offen und werden demnächst abgeklärt und beschrieben:

» Dateiname der Arbeitsmappe

» Zusatzprogramme (Equation, Map, Query etc.)

» UNC-Pfade

» Externe Objekt-Verknüpfungen (z.B. Verknüpfte Grafik mit einer anderen Arbeitsmappe als Quelle)

» Externe Bezüge in Zellen, Zellformeln, Namen etc.

» Externe Datenbereiche in Datenbank-Abfragen (Eigenschaft Connection von QueryTable)

» Externe Datenbereiche in Web-Abfragen

» Externe Datenbereiche in Pivot-Tabellen

» Dateipfade in Hyperlinks (in Zellen, Objekten, Symbolleisten-Steuerelementen)

» Dateipfade in Makrozuweisungen (z.B. von Formular-Steuerelementen, AutoFormen, Symbolleisten-Schaltflächen etc.)

» Dateipfade in Bezügen von Konsolidierungsbereichen

» FileFilter von GetOpenFilename und GetSaveAsFilename (Excel)

» ActivateMicrosoftApp-Methode mit xlMicrosoftMail-Konstante

» PrintOut-Methode von diversen Objekte (PrToFileName-Argument, ab Excel 2000)

» MergeWorkbook-Methode von Workbook

» RegisterXLL-Methode von Application

» CreateNewDocument-Methode von Hyperlink (ab Excel 2000)

» Integrierte Dialoge (Dialogs-Auflistung)

» Mail-System (MailSystem-Eigenschaft des Application-Objektes mit xlPowerTalk-Konstante)

» E-Mails versenden (Macintosh verwendet dazu ein spezielles Objekt)

» FileSearch-Objekt

» HelpFile-Eigenschaft des Err-Objektes

» Error-Ereignis des MultiPage-Controls (HelpFile-Argument)

» LoadPicture-Funktion und SavePicture-Anweisung in OLE Automation-Bibliothek (stdole, StdFunctions)

» Codebeispiele zu Verknüpfungen: LinkSources, OpenLinks, UpdateLink, LinkInfo, ChangeLink

» Verweise im VBA-Projekt

» Dateipfad der Hilfe des VBA-Projektes

» Digitale Signaturen von VBA-Projekten bzw. Add-Ins

» Verzeichnispfad in der Hyperlink-Basis

» Dateipfade in MSForms-Controls-Eigenschaften (z.B. Picture-Eigenschaft von bestimmten Controls und MouseIcon-Eigenschaft von allen Controls)

» Dateipfade in MSForms-UserForm-Eigenschaften (Picture-Eigenschaft und MouseIcon-Eigenschaft)

» Escher-Layer

» Grafikformate

» Web Components

» In Excel für Macintosh verfügbare (Standard-)Add-Ins

» COM Add-Ins (in Office/Excel und VBA Editor)

» Excel 4-Makros

» Angebundene Symbolleisten (wegen Pfad in Makrozuweisung)

» XL-Viewer (nur unter Windows)

» Excel-Startparameter

» Hinweis zu Excel-Limitationen (XLimits)

To Top


Pendenzen

Diese Punkte wurden grundsätzlich geklärt, müssen aber noch genauer beschrieben werden:

» Laufzeitfehler 453

» RegisteredFunctions-Eigenschaft des Application-Objektes (Excel)

» Automatisierung (-> funktioniert auf Macintosh)

» OLE - Object Linking and Embedding (-> funktioniert in Office für Macintosh)

» DDE-Verknüpfungen (-> funktionieren in Office für Macintosh)

» Datenbank- und Web-Queries (funktioniert auf Macintosh)
Microsoft Query X for Mac
http://www.microsoft.com/downloads/details.aspx?FamilyID=e8c2ab08-46e0-4536-bed5-97a997e2436e&displaylang=en
Microsoft Query X for Mac uses Open Database Connectivity (ODBC) to allow you to import data from databases into Microsoft Excel X. You can use Query X to create new queries or refresh existing queries that were created in other versions of Excel, such as Excel 98, Excel 2001, and Excel for Windows.

» ODBC-Integration (funktioniert ab Excel v.X für Macintosh)
ODBC integration in Excel X
Do you have an external data range query that you created in another version of Excel that you would like to refresh in Excel X? If so, we have good news for you. Excel X, version 10.1.0, reintroduces Open Database Connectivity (ODBC) integration with Excel. Excel X, version 10.1.0, is included in the latest Office update.

After you install the latest version of Excel X, Microsoft Query X for Mac, and the appropriate ODBC drivers, you can use Query X for Mac to create new queries or refresh existing queries that were created in other versions of Excel, such as Excel 98, Excel 2001, and Excel for Windows.

Using Office v. X
http://www.microsoft.com/mac/otherproducts/officex/using.aspx?pid=usingofficex&type=howto&article=/mac/LIBRARY/feature_articles/officex/xl_ODBC.xml

Zum Kapitelanfang Zum Seitenanfang

WB01727_.gif (1537 Byte)

Haben Sie Fragen, Anregungen oder einen Fehler entdeckt?
Mail senden an philipp_von_wartburg@yahoo.de

Zuletzt aktualisiert am 24.01.2006 / 15:30 Uhr
© 2002-2006 by Philipp von Wartburg, Winkel 115, CH-8916 Jonen
Alle Rechte vorbehalten. Alle Angaben ohne Gewähr.