| Kompatibilität von Excel für Windows und Excel für Macintosh | Home |
![]()
| 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 |
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. |
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
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
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
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
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.
Downloadseite |
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
- 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)
- Microsoft Office/Excel-Anwender und -Entwickler
- Programmierer von Makros, Add-Ins, VBA-Anwendungen
- Support-Mitarbeiter
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.
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.
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.
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
- 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
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.
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.)
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.
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.
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.
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 |
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.
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.

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.

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.

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.
DDE-Verknüpfungen
Text...
Dynamic Data Exchange (DDE; Dynamischer Datenaustausch) ist ein gängiges Protokoll für den Datenaustausch zwischen Windows-basierten Programmen.

Abbildung: Verknüpfungen-Dialog mit DDE-Verknüpfung
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

Abbildung: Pivot-Tabellen-Assistent
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
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.
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):

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:

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.
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";"")
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
Andere Objekte
» Microsoft Query
Datenbank-Abfrage
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
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
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.
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".
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:

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:

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
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 |
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
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.
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.

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
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":

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.

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
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 '¼':

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):

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:

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.

Abbildung: Speichern-Optionen-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
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.
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
|
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
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.
Dateinamen
Auf dem Macintosh verwenden Arbeitsmappendateien nicht die unter Windows übliche
Dateinamenerweiterung ".xls", sondern gar keine Dateinamenerweiterung (Diese
Angabe ist ohne Gewähr!).
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.
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.

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:

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:

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".
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
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
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
Landkarten (Data Maps)
Mithilfe von Landkarten kann man sehr einfach geografische Daten visualisieren.
Eine Landkarte wird anhand des Zusatzprogrammes Microsoft Map erstellt.

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
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).
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
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.
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
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
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.
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
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" |
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" |
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 Hinweis |
Aufgrund dieser Unklarheit sollten Sie auf die Benutzung der SendKeys-Anweisung möglichst verzichten.
Unterschiede bei Dateinamen, Dateipfaden und Verzeichnispfaden
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:
Pfade in der Anwendung Microsoft Excel
- Standardarbeitsordner in Optionen
- Zusätzlicher Startordner in Optionen
...
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.
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

Abbildung: Name mit Pfad in Bezug (Dialog "Namen
festlegen")
Werden im Verknüpfungen-Dialog angezeigt.
Objekt-Makrozuweisungen
(AutoForm, Zeichnungselement, Bild, Textfeld, Formular-Steuerelement, Diagramm, eingebettetes Objekt, WordArt-Objekt, Symbolleisten-Steuerelement etc.)
Werden im Verknüpfungen-Dialog angezeigt.
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.
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.
Hyperlinks
Pfade in Hyperlinks (Zellen, Objekte)
Werden im Verknüpfungen-Dialog nicht angezeigt.
Konsolidierungen

Abbildung: Bezüge auf externe Konsolidierungsbereiche (Dialog
"Konsolidieren")
Werden im Verknüpfungen-Dialog nicht angezeigt.
Diagramme

Abbildung: Externer Bezug in einer Diagramm-Datenquelle (Dialog
"Datenquelle")
Werden im Verknüpfungen-Dialog nicht angezeigt.
Externe Datenbereiche
Listenbereiche und Ausgabeverknüpfungen von Formular-Steuerelementen

Abbildung: Dialog "Steuerelement formatieren"
Werden im Verknüpfungen-Dialog nicht angezeigt.
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.
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 | - |
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 |
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 |
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 | - |
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. |
- Pfad der Hyperlink-Basis in den Dokument-Eigenschaften
Siehe auch unter Hyperlink-Basis
- Pfad der Hilfedatei des VBA-Projektes
Siehe auch unter Projekteigenschaften
- Pfade von Verweisen im VBA-Projekt
- Pfade in Makrozuweisungen von Symbolleisten-Steuerelementen
- Pfade in Hyperlinks von Symbolleisten-Steuerelementen
- Pfade in Benutzerformularen und Steuerelementen
Unterschiede bei Dateitypen und Dateiformaten
...

Abbildung: Datei mit Format CSV (Macintosh) 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)
Unterschiede bei Excel-Tabellenfunktionen
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
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
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
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.
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
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
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
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
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
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
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
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
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.

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.
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
Unterschiede in der Programmiersprache VBA
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.
| 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 |
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 |
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
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
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.
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
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
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
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:

Abbildung: Laufzeitfehler 13
Verwandte Themen
MacID-Funktion
Unterschiede zwischen Windows und Macintosh: Dateipfade
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 |
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
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
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)
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 |
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
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
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
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.
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.
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.
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.
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.
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.
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
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
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"
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.
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
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. |
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.
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)
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)
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.
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.
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.
Unterschiede im Objektmodell von Microsoft Excel
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.
| 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 |
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
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)
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)
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.

Abbildung: InputBox von Microsoft Excel
TODO: Dateipfad in HelpFile
Verwandte Themen
MsgBox-Funktion
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
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
CommandUnderlines-Eigenschaft des Application-Objektes
Beschreibung folgt in Kürze...
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'):

Abbildung: Laufzeitfehler 1004 bei nicht vorhandener Anwendung
TODO: Parameter True und False
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
Unterschiede im Objektmodell von Microsoft Office
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.
| 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 |
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
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.
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.
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.
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"
Unterschiede im Objektmodell des VBA-Editors
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.
| Element | Typ | Element von | Bibliothek |
| LinkedWindows | Objekt | VBIDE | VBIDE |
| Window | Objekt | Windows-Auflistung | VBIDE |
| Windows | Objekt | VBIDE | VBIDE |
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
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
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
Unterschiede im Objektmodell von Microsoft Forms
In diesem Kapitel geht es um die Kompatibilität von Benutzerformularen (UserForms) und den auf Formularen verwendbaren Steuerelementen (Controls).

Abbildung: Werkzeugsammlung

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

Abbildung: Andere verfügbare Steuerelemente (Weitere
Steuerelemente)

Abbildung: Steuerelement-Toolbox
Unterschiede zwischen Windows und Macintosh: ActiveX-Controls
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 |
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
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
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.

Abbildung: Benutzerformular mit Direkthilfe-Schaltfläche
Diese Eigenschaft wird beim Macintosh nicht unterstützt.
Verwandte Themen
WhatsThisHelp-Eigenschaft
WhatsThisMode-Methode
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 |
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."

Abbildung: Laufzeitfehler 380

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
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? |
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
Fehlermeldung: Sub, Function oder Property nicht definiert (Fehler 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:
Überprüfen Sie die Schreibweise des Prozedurnamens und korrigieren Sie sie gegebenenfalls.
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.
Werden Prozeduren in einem Modul als Private deklariert, so können sie von Prozeduren ausserhalb des Moduls nicht aufgerufen werden. Wenn Option Private Module aktiv ist, stehen die Prozeduren in diesem Modul anderen Projekten nicht zur Verfügung. Suchen Sie nach der Prozedur.
Siehe auch unter:
Declare-Anweisung
Fehlermeldung: Falsche DLL-Aufrufkonvention (Fehler 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:
Stellen Sie sicher, dass alle Argumenttypen mit den Typen übereinstimmen, die in der Deklaration der aufgerufenen Routine angegeben sind.