Allgemeines über das Excel-Objektmodell
Übersicht über das Excel-Objektmodell
Allgemeines über das Excel-Objektmodell
Das Excel-Objektmodell verfügt über zahlreiche Objekte, Eigenschaften, Methoden und Ereignisse, die im Zusammenhang mit Dateien und Ordnern verwendet werden. Wenn Sie ein VBA-Programm schreiben, welches später in verschiedenen Excel-Versionen ablaufen muss, sollten Sie insbesondere die geänderten Parameter der Workbooks.Open- und der Workbooks.OpenText-Methode beachten.
Weitere Objekte, Eigenschaften und Methoden von Excel sowie VBA-Befehle und -Funktionen werden auf diesen Themenseiten ausführlich beschrieben:
Verwandte Themen |
|
|
Hinweis
Microsoft hat im Internet eine Vielzahl äusserst nützlicher Dokumentationen zu
den Objektmodellen der Office-Programme veröffentlicht. Wenn eine VBA-Anwendung mit
verschiedenen Excel- bzw. Office-Versionen laufen muss, sollte man die Änderungen in den
benötigten Objektbibliotheken kennen, damit keine Kompatibilitätsprobleme auftreten.
Eine Liste mit Links zu den Beschreibungen dieser Objektmodell-Änderungen finden Sie
hier: Office, Excel, Word, Access, Outlook und PowerPoint.
Informationen über Objektmodelle |
|
Guides and Overviews
|
Übersicht über das Excel-Objektmodell
Nachfolgend sind die wichtigsten Objekte, Methoden, Eigenschaften und Ereignisse des Excel-Objektmodells aufgelistet, die in VBA-Programmen im Zusammenhang mit Dateien, Verzeichnissen und Programmen verwendet werden. Die Elemente sind innerhalb der Tabellen alphabetisch aufsteigend sortiert.
Application-Objekt
Application-Objekt: Eigenschaften
| Eigenschaft | Beschreibung | Beispiel |
| Application.StartupPath | Enthält den Verzeichnispfad des
Excel-Startordners "XlStart". > Lese-Zugriff Hinweis Siehe auch unter Funktionen und Features: Startordner. |
D:\Programme\Microsoft Office\Office\XLStart |
| Application.AltStartupPath | Enthält den Pfad des zusätzlichen
Startordners von Excel. > Schreib-Lese-Zugriff Siehe auch unter Funktionen und Features: Zusätzlicher Startordner. |
S:\Gemeinsame Daten\Excel\Start |
| Application.Caller | Gibt Informationen darüber zurück,
wie Visual Basic aufgerufen wurde. Bei Verwendung von Application.Caller in einem
Auto_Open- oder Auto_Close-Makro wird der Name der Datei und der aktiven
Tabelle zurückgegeben. > Lese-Zugriff |
[MeineMappe.xls]Tabelle1 |
| Application.DefaultFilePath | Enthält den Pfad des
Standardarbeitsordners. > Schreib-Lese-Zugriff Hinweis Beachten Sie, dass DefaultFilePath auch leer sein kann. Wenn Sie dann beispielsweise eine Mappe im DefaultFilePath-Verzeichnis speichern, wird automatisch das aktuelle Windows-Verzeichnis (CurDir) verwendet. Wenn ein nicht existierender bzw. ungültiger Ordnerpfad zugewiesen wird, so wird dieser ohne Fehlermeldung entgegengenommen und in der Windows Registry gespeichert. Beim nächsten Excelstart wird der Standardarbeitsordner automatisch auf den "Eigene Dateien"-Ordner geändert. |
D:\MeineDaten |
| Application.DefaultSaveFormat | Enthält das als Standard im Speichern
unter-Dialog vorzublendende Dateiformat. > Schreib-Lese-Zugriff Hinweis |
-4143 (xlWorkbookNormal) |
| Application.FileConverters([Index1][, Index2]) | Gibt Informationen über alle
installierten Dateiumwandlungsprogramme zurück. Gibt Null zurück, wenn keine
Umwandlungsprogramme installiert sind. > Lese-Zugriff |
- |
| Application.FileSearch | Gibt ein FileSearch-Objekt zur
Durchführung einer Dateisuche zurück. > Lese-Zugriff Hinweis |
With Application.FileSearch |
| Application.LibraryPath | Enthält den Pfad des
Add-Ins-Verzeichnisses. > Lese-Zugriff |
D:\Programme\Microsoft Office\Office\Makro |
| Application.NetworkTemplatesPath | Gibt den Pfad des Netzwerkpfades
zurück, unter dem die gemeinsam verwendeten Vorlagen gespeichert sind. > Lese-Zugriff |
Z:\Vorlagen\Excel |
| Application.Path | Enthält den Pfad des Excel-Programmes. > Schreib-Lese-Zugriff |
D:\Programme\Microsoft Office\Office |
| Application.PathSeparator | Gibt in Windows das Pfadtrennzeichen
"\" (umgekehrter Schrägstrich) zurück. > Lese-Zugriff |
\ |
| Application.RecentFiles | Gibt ein RecentFiles-Auflistungsobjekt
zurück. > Lese-Zugriff Hinweis |
Dim objRFiles As RecentFiles |
| Application.TemplatesPath | Enthält den Pfad des
Vorlagenverzeichnisses. > Lese-Zugriff Hinweis |
D:\Programme\Microsoft Office\Vorlagen |
| Application.UserControl | Enthält den aktuellen
Ausführungsmodus der Excel-Instanz. Enthält "True", wenn die Excel-Instanz
sichtbar ist oder vom Benutzer erstellt oder gestartet wurde. Enthält "False, wenn
Excel als Instanz durch die VBA-Funktionen CreateObject oder GetObject
gestartet wurde und ausgeblendet ist. > Schreib-Lese-Zugriff |
True |
| Methode | Beschreibung | Beispiel |
| Application.ActivateMicrosoftApp(Index As XlMSApplication) | Startet eine Microsoft-Anwendung
synchron und aktiviert sie. Hinweis |
- |
| Application.FindFile | Öffnet den "Datei öffnen"-Dialog. | VBA Codebeispiel |
| Application.GetOpenFilename([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect]) | Öffnet den "Datei
öffnen"-Dialog. Hinweis |
VBA Codebeispiel |
| Application.GetSaveAsFilename([InitialFilename], [FileFilter], [FilterIndex], [Title], [ButtonText]) | Öffnet den "Datei speichern unter"-Dialog. | - |
| Application.Help([HelpFile], [HelpContextID]) | - | - |
| Application.Quit | Beendet Microsoft Excel. | VBA Codebeispiel |
| Application.RegisterXLL(Filename As String) As Boolean | - | - |
| Application.Run(Macro[, Arg1[, Arg2[, ...]]]) | Führt ein Makro aus oder ruft eine Funktion auf. | - |
| Application.Save(Filename) | Speichert den aktuellen Arbeitsbereich in einer Arbeitsbereichdatei. | - |
| Application.SaveWorkspace([Filename]) | Speichert den aktuellen Arbeitsbereich in einer Arbeitsbereichdatei. | - |
[AP-M1] Application.Save
Die Save-Methode wurde durch die SaveWorkspace-Methode
ersetzt (ab Excel 97) und sollte daher nicht mehr verwendet werden.
[AP-M2] Application.Run
Die Run-Methode besitzt in Excel 97 einen schwerwiegenden Fehler.
Wenn man Run ohne Angabe eines Makronamens ausführt, stürzt Excel sofort und
unwiderruflich ab. Sie können das ausprobieren, indem Sie im Direktfenster der VBE
"Run" oder "Application.Run" eingeben und durch Drücken der
Eingabetaste ausführen (Wichtig: Speichern und schliessen sie vorher ihre Arbeitsmappen,
da Excel wie erwähnt mit einem Ausnahmefehler abstürzt!). In Microsoft Excel 2000
scheint dieser Fehler behoben zu sein.
[AP-M3] Application.Quit
Die Quit-Methode schliesst automatisch alle geöffneten
Arbeitsmappen, bevor Microsoft Excel beendet wird. Dabei werden die in den Mappen
vorhandene Auto_Close-Makros ausgeführt.
Weitere Informationen von Microsoft:
XL97: Auto_Close Macros Run When You Use
Application.Quit
http://support.microsoft.com/?kbid=160462
XL2000: Auto_Close Macros Run When You Use Application.Quit
http://support.microsoft.com/?kbid=213532
Application-Objekt: Ereignisse
| Ereignis | Beschreibung |
| WorkbookBeforeClose(Wb As Workbook, Cancel As Boolean) | Tritt direkt vor dem Schliessen einer beliebigen geöffneten Arbeitsmappe ein. |
| WorkbookBeforeSave(Wb As Workbook, SaveAsUI As Boolean, Cancel As Boolean) | Tritt ein, bevor eine beliebige geöffnete Arbeitsmappe gespeichert wird. |
| WorkbookOpen(Wb As Workbook) | Tritt ein, wenn eine Arbeitsmappe geöffnet wird. |
Workbook-Objekt
Workbook-Objekt: Eigenschaften
| Eigenschaft | Beschreibung | Beispiel |
| Workbook.AutoUpdateFrequency | Enthält die Anzahl Minuten zwischen
automatischen Aktualisierungen einer freigegebenen Arbeitsmappe. > Schreib-Lese-Zugriff Hinweis Weitere Informationen finden Sie unter VBA-Spezialthema: Freigegebene Arbeitsmappen |
False |
| Workbook.AutoUpdateSaveChanges | Gibt zurück, ob die automatische
Speicherung von Änderungen bei freigegebenen Mappen ein- oder ausgeschaltet ist
beziehungsweise legt diese Einstellung fest. Hinweis |
False |
| Workbook.CalculateBeforeSave | Gibt die aktuelle Einstellung
"Vor dem Speichern neu berechnen" zurück oder setzt sie. > Schreib-Lese-Zugriff Hinweis |
True |
| Workbook.FileFormat | Gibt das Dateiformat der Arbeitsmappe
zurück. > Lese-Zugriff |
-4143 (= xlWorkbookNormal) |
| Workbook.FullName | Enthält den vollständigen Dateipfad
(d.h. Pfad- und Dateiname) der Arbeitsmappe. > Lese-Zugriff |
D:\MeineDaten\Testmappe.xls |
| Workbook.HasPassword | Gibt zurück, ob die Arbeitsmappe ein
Dateikennwort (Lese-/Schreibkennwort) verwendet. > Lese-Zugriff |
False |
| Workbook.IsAddin | Gibt an, ob die Arbeitsmappe ein
Add-In ist oder nicht. > Schreib-Lese-Zugriff |
False |
| Workbook.IsInPlace | Enthält den aktuellen
Bearbeitungsmodus der Arbeitsmappe. Gibt "True" zurück, wenn die Arbeitsmappe
direkt, d.h. als eingebettetes Dokument bearbeitet wird. Gibt "False" zurück,
wenn die Mappe in Excel bearbeitet wird. > Lese-Zugriff |
False |
| Workbook.MultiUserEditing | Informationen zu dieser Eigenschaft erhalten Sie unter VBA-Spezialthema: Freigegebene Arbeitsmappen | - |
| Workbook.Name | Gibt den Dateinamen der Arbeitsmappe
mit der Dateiendung ".xls" (bzw. ".xlt" bei Vorlagemappen) zurück.
Wurde die Mappe noch nie gespeichert, wird der Name der Mappe ohne Dateiendung
zurückgegeben. > Lese-Zugriff |
Testmappe.xls |
| Workbook.OnSave | Legt die Prozedur fest, die beim
Speichern der Arbeitsmappe aufgerufen wird. > Schreib-Lese-Zugriff |
SpeichernProzedur |
| Workbook.Path | Enthält den Verzeichnispfad der
Arbeitsmappe, wo sie abgelegt ist. > Lese-Zugriff |
D:\MeineDaten |
| Workbook.ReadOnly | Zeigt den aktuellen Zugriffsmodus auf
die Arbeitsmappe. > Lese-Zugriff Hinweis |
False |
| Workbook.ReadOnlyRecommended | Gibt zurück, ob die Einstellung
"Schreibschutz empfehlen" aktiviert ist. Hinweis |
False |
| Workbook.Saved | Ermittelt oder setzt den aktuellen Speicherungszustand. | True |
| Workbook.SaveLinkValues | Gibt zurück, ob die Einstellung
"Externe Verknüpfungswerte speichern" aktiviert ist oder setzt sie. > Schreib-Lese-Zugriff |
True |
| Workbook.TemplateRemoveExtData | Stellt ein, ob externe Daten entfernt
werden, wenn die Arbeitsmappe als Vorlage (xlt) gespeichert wird. Der Standardwert ist Falsch. > Schreib-Lese-Zugriff |
True |
| Workbook.UserStatus | Enthält ein zweidimensionales Array
mit den aktuellen Benutzern der Arbeitsmappe. > Lese-Zugriff |
Peter Muster |
| Workbook.WriteReserved | Gibt zurück, ob die Arbeitsmappe ein
Schreibschutzkennwort verwendet. > Lese-Zugriff |
False |
| Workbook.WriteReservedBy | Zeigt den Namen des Benutzers, der
gerade die Schreiberlaubnis für die Arbeitsmappe besitzt bzw. des Benutzers, der die
Arbeitsmappe mit einem Schreibschutzkennwort gespeichert hat. > Lese-Zugriff |
Peter Muster |
[WB-P1] Workbook.OnSave
Die OnSave-Eigenschaft wurde durch das BeforeSave-Ereignis
ersetzt, wird aber aus Kompatibilitätsgründen weiterhin unterstützt und kann somit
immer noch benutzt werden.
[WB-P2] Workbook.Path
Die Eigenschaft Path enthält eine leere Zeichenfolge zurück,
falls die Arbeitsmappe noch nie gespeichert wurde. Dies aus dem einfachen Grund, weil es
für die Mappe keine xls-Datei gibt.
Bitte beachten Sie, dass der Pfad in Path nicht zwingend die gewohnte Schreibweise "<Laufwerk>:\<Verzeichnis>" besitzen muss. Es kann auch die UNC-Pfadschreibweise (z.B. "\\Server\Freigabe\Daten") besitzen. Auch die File URL-Schreibweise (z.B. "file:///C:/Daten") ist grundsätzlich möglich, allerdings höchst selten anzutreffen.
[WB-P3] Workbook.Saved
Die Saved-Eigenschaft enthält in einer bestimmten Situation
fälschlicherweise den Wert "True" statt "False". Dieses fehlerhafte
Verhalten tritt auf, wenn der Speichern-Vorgang nicht vollständig durchgeführt werden
konnte. Das bedeutet, dass Excel die Eigenschaft Saved auf den Wert
"True" ändert, obwohl die Datei nicht ordnungsgemäss gespeichert wurde (mehr
dazu siehe unter "Weitere Informationen").
Im Zusammenhang mit der Saved-Eigenschaft werden oft die Begriffe "Saved Dirty" und "UnSaved Dirty" benutzt. Mehr dazu erfahren Sie unter "Weitere Informationen".
[WB-P4] Workbook.FullName
Mit der Eigenschaft FullName kann der vollständige Pfad- und
Dateiname einer Arbeitsmappe abgefragt werden. Bei einer noch nie gespeicherten Mappe wird
- wie bei der Eigenschaft Name - lediglich der Name der Arbeitsmappe
zurückgegeben, d.h. ohne Pfad und ohne die Dateiendung "xls" (bzw.
"xlt").
Bitte beachten Sie, dass der Pfad in Fullname nicht zwingend die gewohnte Schreibweise "<Laufwerk>:\<Verzeichnis>" besitzen muss. Es kann auch die UNC-Pfadschreibweise (z.B. "\\Server\Freigabe\Daten") besitzen. Auch die File URL-Schreibweise (z.B. "file:///C:/Daten") ist grundsätzlich möglich, allerdings höchst selten anzutreffen.
[WB-P5] Workbook.FileFormat
Durch Abfragen der FileFormat-Eigenschaft lässt sich das
Dateiformat der Arbeitsmappe ermitteln. Bei einer neuen, d.h. noch nicht gespeicherten
Mappe wird das Dateiformat der aktuell verwendeten Excelversion zurückgegeben;
unabhängig davon, welches Standard-Dateiformat eingestellt ist. Das Standard-Dateiformat
lässt sich mit VBA anhand der Eigenschaft DefaultSaveFormat des Application-Objektes
bzw. in Microsoft Excel anhand der Einstellung "Standard-Dateityp" im
Optionen-Dialog (Menübefehl Extras/Optionen) festlegen.
| Methode | Beschreibung |
| Workbook.ChangeFileAccess(Mode As XLFileAccess, [WritePassword], [Notify]) | Ändert den Zugriffsmodus auf eine
Arbeitsmappendatei. Hinweis |
| Workbook.Close([SaveChanges], [Filename], [RouteWorkbook]) | Siehe Anmerkung [WB-M1] |
| Workbook.ExclusiveAccess() | Räumt dem aktuellen Benutzer oder der Benutzerin exklusiven Zugriff auf die geöffnete und für gemeinsamen Zugriff freigegebene Arbeitsmappe ein. |
| Workbook.MergeWorkbook(Filename) | Führt Änderungen einer Arbeitsmappe in einer geöffneten Arbeitsmappe zusammen. |
| Workbook.OpenLinks(Name As String, [ReadOnly], [Type]) | Öffnet die benötigten Dokumente für eine oder mehrere Verknüpfungen. |
| Workbook.Save() | Speichert Änderungen in der angegebenen Arbeitsmappe. |
| Workbook.SaveAs([Filename], [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AccessMode As XlSaveAsAccessMode = xlNoChange], [ConflictResolution], [AddToMru], [TextCodepage], [TextVisualLayout]) | Siehe Anmerkung [WB-M2] |
| Workbook.SaveCopyAs([FileName]) | Siehe Anmerkung [WB-M3] |
| Workbook.UpdateFromFile() | Aktualisiert eine schreibgeschützte Arbeitsmappe mit der gespeicherten Version, falls die Version auf dem Datenträger neuer ist als die aktuelle Kopie der Arbeitsmappe im Arbeitsspeicher. Wurde die Kopie auf dem Datenträger seit dem Laden der Arbeitsmappe nicht verändert, wird die Kopie im Arbeitsspeicher nicht neu geladen. |
[WB-M1] Workbook.Close
Bei Workbook.Close sollte beachtet werden, dass ein in der zu
schliessenden Arbeitsmappe enthaltenes Auto_Close-Makro nicht
ausgeführt wird.
Wissenswert ist auch, dass die der Programmzeile mit dem Close nachfolgenden VBA-Anweisungen nicht mehr ausgeführt werden, wenn mit Close die Mappe geschlossen wird, in der der Programmcode enthalten ist. Hier ein Beispiel:
Sub CloseThisWorkbook()
ThisWorkbook.Close
MsgBox "ThisWorkbook wurde geschlossen."
End Sub
Die Codezeile "ThisWorkbook.Close" schliesst die den Programmcode enthaltende Arbeitsmappe. Die Meldung "ThisWorkbook wurde geschlossen." erscheint nicht mehr, da die Ausführung des weiteren VBA-Programmcodes infolge der Schliessung gestoppt wurde.
Anmerkung des Autors: Sie denken vielleicht, es ist ja logisch, dass nach Close kein Programmcode mehr abläuft. Eigentlich ist es schon logisch, nur: Es ist erst seit Excel 97 so, dass die Codeausführung gestoppt wird. Bis Excel 95 war dies nicht der Fall, d.h. die Meldung "ThisWorkbook wurde geschlossen." im obigen Beispiel erscheint in Excel 95. Auf derartige Eigenheiten sollten Sie insbesondere achten, wenn Sie noch alte Excel 95-Makros antreffen, die Sie in eine neuere Excel-Version übernehmen müssen.
[WB-M2] Workbook.SaveAs
Bei Workbook.SaveAs ist meiner Meinung nach erstaunlich, dass das
Argument Filename nicht zwingend angegeben werden muss (es ist optional):
- Wird Filename nicht angegeben, speichert Excel die Arbeitsmappe
mit ihrem momentan verwendeten Namen (z.B. "Buchhaltung.xls" bei einer bereits
einmal gespeicherten Mappe; oder "Mappe1" bei einer neuen Mappe, wobei in diesem
Fall die Dateiendung ".xls" automatisch hinzugefügt wird). Existiert im
aktuellen Verzeichnis bereits eine Datei mit gleichem Namen, so erscheint die Rückfrage
"Eine Datei mit dem Namen <Datei.xls> existiert schon an diesem Platz. Soll sie
ersetzt werden?".
- Wird für Filename nur ein Dateiname ohne Pfad angegeben, so
speichert Excel die Arbeitsmappe im aktuellen Ordner.
Bei einer bereits vorhandenen Datei ist das Standardformat das zuletzt angegebene Dateiformat dieser Datei. Bei einer neuen Datei wird standardmässig das xls-Format der eingesetzten Excel-Version verwendet (und nicht das im Optionen-Dialog als Standard eingestellte Dateiformat!).
[WB-M3] Workbook.SaveCopyAs
Das Argument FileName der SaveCopyAs-Methode ist gemäss
der im Excel-Objektmodell abgelegten Parameter-Definition ein optionales Argument, laut
der Onlinehilfe (Excel VBA-Referenz) dagegen zwingend erforderlich. Wird das Argument
nicht spezifiziert, erscheint tatsächlich der Laufzeitfehler 1004 "Anwendungs- oder
objektdefinierter Fehler".
Beim Speichern einer Mappe mittels SaveCopyAs wird die Saved-Eigenschaft nicht verändert.
Interessant ist das Verhalten von SaveCopyAs je
nach Inhalt des Argumentes FileName:
- Bei Angabe eines Dateinamens ohne Verzeichnis (z.B.
FileName:="MyCopy.xls") wird eine Kopie der Mappe unter dem angegebenen
Dateinamen im Standard-Arbeitsordner gespeichert.
- Bei Angabe eines eigentlich ungültigen oder leeren Dateinamens (z.B. bei
'FileName:=varDummy', wobei varDummy eine nicht initialisierte Variable ist; oder
auch ganz einfach bei 'FileName:=""') erstellt Excel eine Arbeitsmappendatei im
temporären Verzeichnis von Windows und gibt dieser Datei automatisch einen Namen, der aus
einer fortlaufenden Nummer und der Dateinamenerweiterung ".tmp" zusammengesetzt
wird. Die fortlaufende Nummer ist eine Zahl, die basierend auf den bereits im
Temp-Verzeichnis existierenden tmp-Dateien ermittelt wird. Ist beispielsweise eine Datei
mit dem Namen "3.tmp" bereits vorhanden, so erhält die nächste mit SaveCopyAs
ohne Parameter gespeicherte Arbeitsmappe den Dateinamen "4.tmp".
Weitere Informationen |
|
|
|
| Ereignis | Bemerkung |
| BeforeClose(Cancel As Boolean) | - |
| BeforeSave(SaveAsUI As Boolean, Cancel As Boolean) | Siehe Anmerkung [WB-E1] |
| Open | - |
[WB-E1] BeforeSave
Beim BeforeSave-Ereignis kann mit dem SaveAsUI-Parameter
ermittelt werden, ob der Speichern-Vorgang durch den Benutzer über den Menübefehl Datei/Speichern
unter ausgelöst wurde.
Weitere Informationen |
|
|
Workbooks-Auflistung
Workbooks-Auflistung: Methoden
| Methode | Bemerkung |
| Workbooks.Add([Template As Variant]) | Siehe Anmerkung [WA-M1] |
| Excel 97: Workbooks.Open(Filename As String, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword], [IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter], [AddToMRU]) Excel 2000: Workbooks.Open(Filename As String, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword], [IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter], [AddToMRU]) Excel 2002: Workbooks.Open(Filename As String, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword], [IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter], [AddToMRU], [Local], [CorruptLoad], [OpenConflictDocument]) |
Siehe Anmerkung [WA-M2] |
| Excel 97: Workbooks.OpenText(Filename As String, [Origin], [StartRow], [DataType], [TextQualifier As XlTextQualifier = xlTextQualifierDoubleQuote], [ConsecutiveDelimiter], [Tab], [Semicolon], [Comma], [Space], [Other], [OtherChar], [FieldInfo], [TextVisualLayout]) Excel 2000: Workbooks.OpenText(Filename As String, [Origin], [StartRow], [DataType], [TextQualifier As XlTextQualifier = xlTextQualifierDoubleQuote], [ConsecutiveDelimiter], [Tab], [Semicolon], [Comma], [Space], [Other], [OtherChar], [FieldInfo], [DecimalSeparator], [ThousandsSeparator]) Excel 2002: Workbooks.OpenText(Filename As String, [Origin], [StartRow], [DataType], [TextQualifier As XlTextQualifier = xlTextQualifierDoubleQuote], [ConsecutiveDelimiter], [Tab], [Semicolon], [Comma], [Space], [Other], [OtherChar], [FieldInfo], [TextVisualLayout], [DecimalSeparator], [ThousandsSeparator], [TrailingMinusNumbers], [Local]) |
- |
| Excel 2002: Workbooks.OpenXML(Filename, [StyleSheets]) |
- |
| Excel 2002: Workbooks.OpenDatabase(Filename, [CommandText], [CommandType], [BackgroundQuery], [ImportDataAs]) |
- |
[WA-M1] Workbooks.Add
Bei der Add-Methode besitzen Sie die Möglichkeit, unmittelbar
eine weitere Methode des Workbook-Objektes aufzurufen oder eine Eigenschaft der
neu angelegten Arbeitsmappe anzusprechen.
Beispiele
Workbooks.Add.SaveAs
"C:\Daten\NeueMappe.xls"
Workbooks.Add.SaveLinkValues = False
Workbooks.Add(4).Close True, "C:\Daten\EineMakroMappe.xls"
Beachten Sie, dass die zusätzliche Methode bzw. die Eigenschaft sequenziell abgearbeitet wird. Das bedeutet, dass bei nicht durchführbarer Verarbeitung der angehängten Methode/Eigenschaft die Add-Methode trotzdem ausgeführt wird. Beispiel: Wenn bei "Workbooks.Add.SaveAs "C:\Daten\NeueMappe.xls"" das angegebene Verzeichnis nicht existiert und somit ein Laufzeitfehler auftritt, wird trotzdem eine neue Arbeitsmappe angelegt. Es wird also nicht die gesamte Codezeile nicht ausgeführt sondern nur ein Teil.
Hinweis zum Argument 'Template'
Das Template-Argument ist in der Microsoft Excel VBA-Referenz
unvollständig beschrieben. Neben den dokumentierten Konstanten
- xlWBATChart (Dezimalwert -4109),
- xlWBATExcel4IntlMacroSheet (4),
- xlWBATExcel4MacroSheet (3) und
- xlWBATWorksheet (-4167)
können des auch folgende Werte verwendet werden:
| Wert | Beschreibung |
| 1 | Erstellt eine neue Mappe mit einem einzelnen Tabellenblatt. Die Mappe erhält den Namen "Tabelle" und einer angehängten Zahl, welche die Laufnummer der in der aktuellen Excel-Sitzung bereits neu hinzugefügten Tabellenblättern darstellt (gleich wie -4167, xlWBATWorksheet). |
| 2 | Erstellt eine neue Mappe mit einem einzelnen Diagrammblatt (gleich wie -4109, xlWBATChart). |
| 5 | Erstellt eine neue Mappe mit so vielen Tabellenblättern, wie als Default eingestellt ist (gleich wie ohne spezifizieren des Template-Parameters). Die Default-Einstellung ist im Optionen-Dialog auf der Registerseite "Allgemein" zu finden, oder kann mit Application.SheetsInNewWorkbook gesetzt bzw. abgefragt werden. |
| 6 | Erstellt eine neue Mappe mit einem einzelnen Tabellenblatt. Die Mappe erhält den Namen "Mappe" mit einer angehängten Zahl, welche die Laufnummer der in der aktuellen Excel-Sitzung bereits neu erstellten Arbeitsmappen darstellt. |
| 7 | Erstellt eine neue Mappe mit einem einzelnen Dialogblatt (MS Excel 5-Dialog). |
Wird das Template-Argument nicht angegeben, erstellt Microsoft Excel eine neue Arbeitsmappe mit mehreren leeren Blättern (die Anzahl der Blätter wird durch die SheetsInNewWorkbook-Eigenschaft festgelegt).
[WA-M2] Workbooks.Open
Wie bei Workbooks.Add kann auch bei Open eine Methode
oder Eigenschaft des Workbook-Objektes direkt anschliessend verwendet werden.
Beispiele
Workbooks.Open("C:\AlteMappe.xls").SaveAs("C:\NeueMappe.xls")
Workbooks.Open("C:\MappeMitVolatilerFunktion.xls").Saved = True
Der grosse Vorteil der im zweiten Beispiel gezeigten Verwendung von "Saved = True" liegt darin, dass die soeben mit Open geöffnete Mappe betrachtet wird, als würde sie keine noch nicht gespeicherten Änderungen enthalten. Das ist äusserst nützlich, weil nach Öffnen einer Mappe, die eine oder mehrere volatile Funktionen enthält, Excel immer davon ausgeht, dass in der Mappe Änderungen stattgefunden haben (was in diesem Fall nicht ganz richtig ist). Dies führt zu der oft als störend empfundenen und in der vorliegenden Situation an sich überflüssigen "Änderungen speichern"-Rückfrage beim Schliessen der Arbeitsmappe.
Öffnen von Nicht-xls-Dateien
Nebst xls-Dateien können auch verknüpfte Exceldateien (Dateien mit der
Dateinamenerweiterung 'lnk') mit der Open-Methode geöffnet werden:
Workbooks.Open "D:\Exceldaten\Verknüpfe Mappe.lnk"
Microsoft Excel ermittelt in diesem Fall die in der Verknüpfungsdatei angegebene Zieldatei und öffnet diese. Diesen Vorgang bezeichnet man in der Fachsprache als "dereference shell links", was soviel bedeutet wie "Verknüpfungen auflösen".
Hinweise zu den in Excel 2002 neu hinzugefügten
Argumenten für die Open-Methode
Local
Optional Variant.
True saves files against the language of Microsoft Excel (including control
panel settings). False (default) saves files against the language of Visual Basic
for Applications (VBA) (which is typically US English unless the VBA project where
Workbooks.Open is run from is an old internationalized XL5/95 VBA project).
CorruptLoad
Optional Variant.
Can be one of the following constants: xlNormalLoad, xlRepairFile and
xlExtractData. The Default behavior if no
value is specified is usually normal but may be safe load or data recovery, if Excel has
already attempted to open the file. The first
attempt is normal. If Excel stops operating while
opening the file the second attempt is safe load. If
Excel again stops operating the next attempt is data recovery.
OpenConflictDocument
Optional Variant.
True to open the local conflict
document. Default is False.
Worksheet-Objekt
| Methode | Bemerkung |
| Worksheet.Copy([Before], [After]) | Bei Weglassen von Before und After wird das Blatt in eine neue Arbeitsmappe kopiert. |
| Worksheet.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate]) | Wenn für das PrintToFile-Argument mit True angegeben wird, fordert Sie Excel zur Eingabe eines Dateinamens auf. |
| Worksheet.SaveAs(Filename As String, [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AddToMru], [TextCodepage], [TextVisualLayout]) | Siehe Anmerkung [WS-M1] |
| Worksheet.SetBackgroundPicture(Filename As String) | - |
[WS-M1] Worksheet.SaveAs
Das FileFormat-Argument besitzt in Excel 2002 einen Bug. Wenn Sie
die (eigentlich korrekte) Konstante XLWorkbookNormal verwenden, erscheint ein
Laufzeitfehler und das Speichern schlägt fehl. Benutzen Sie anstelle der Konstante XLWorkbookNormal
daher den Wert 1 (d.h. FileFormat:=1). Sie werden vielleicht bemerkt haben, dass die
Konstante XLWorkbookNormal eigentlich den Wert -4143 und nicht 1 enthält. Das
ist an sich richtig - es muss trotzdem der Wert 1 angegeben werden.
Worksheets-Auflistung
Worksheets-Auflistung: Methoden
| Methode | Bemerkung |
| Worksheets.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate]) | Druckt ein Arbeitsblatt. |
Chart-Objekt
| Methode | Bemerkung |
| Chart.Export(Filename As String, [FilterName], [Interactive]) As Boolean | Exportiert ein Diagramm in eine Bilddatei, wobei das Bildformat mit dem Parameter FilterName angegeben werden kann (z.B. "GIF"). |
| Excel 97: Chart.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate]) Excel 2000: Chart.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate], [PrToFileName]) Excel 2002: Chart.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate], [PrToFileName]) |
Druckt ein Diagramm. |
| Chart.SaveAs(Filename As String, [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AddToMru], [TextCodepage], [TextVisualLayout]) | Speichert ein Diagramm in einer Datei. |
| Chart.SetBackgroundPicture(Filename As String) | Legt die Hintergrundgrafik für ein Tabellenblatt oder ein Diagramm fest. |
Charts-Auflistung
| Methode | Bemerkung |
| Excel 97: Charts.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate]) Excel 2000: Charts.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate], [PrToFileName]) Excel 2002: Charts.PrintOut([From], [To], [Copies], [Preview], [ActivePrinter], [PrintToFile], [Collate], [PrToFileName]) |
Druckt ein Diagramm. |
Window-Objekt
| Methode | Bemerkung |
| Window.PrintOut | Druckt einen Fensterinhalt. |
Shapes-Auflistung
| Methode | Bemerkung |
| Shapes.AddPicture | Erstellt ein Bild aus einer bestehenden Datei heraus. Gibt ein Shape-Objekt zurück, das das neue Bild darstellt. |
Zuletzt aktualisiert am
13.08.2005 / 23:00 Uhr
© 2002-2005 by Philipp von Wartburg, CH-8916 Jonen
Alle Rechte vorbehalten