Office Logo VBA  Zurück zur Hauptseite

VBA-Universallösungen

      Allgemeines über VBA-Universallösungen

      So wird ein Pfadname auf Gültigkeit überprüft

      So wird eine Datei kopiert

      So wird eine Datei gelöscht

      So wird eine Arbeitsmappe geöffnet

      So wird eine Arbeitsmappe gespeichert

 

      Home Zur Hauptseite

To Top

Diese Seite ist in Bearbeitung!

Allgemeines über VBA-Universallösungen

Mit "Universallösungen" sind Lösungen gemeint, die unverändert übernommen und universell eingesetzt werden können. Die auf dieser Seite vorgestellten Lösungen erledigen ganz bestimmte, in sich abgeschlossene Aufgaben (und zwar unter Berücksichtigung sämtlicher potentiellen Problemsituationen), enthalten Eingabevalidierungen und Fehlerbehandlungsroutinen.

In einer professionellen Anwendung genügt es beispielsweise nicht, eine Arbeitsmappe mit der Anweisung "Workbooks.Open <Dateiname>" zu öffnen und dabei allfällige Laufzeitfehler einfach zu unterdrücken oder nur eine eigene Fehlermeldung auszugeben, dass die gewünschte Datei nicht geöffnet werden konnte. Die auf dieser Seite angebotene Universallösung zum Öffnen einer Arbeitsmappe zeigt, wie man eine Mappe "richtig" öffnet. Die Lösung enthält daher viel zusätzlichen Programmcode, wie unter anderem Überprüfungen,
- ob das angegebene Laufwerk existiert
- ob das angegebene Verzeichnis existiert
- ob die zu öffnende Datei vorhanden ist
- ob die zu öffnende Datei wirklich eine Exceldatei ist
- und so weiter...

 

Verwandte Themen

Verwandte Themen

VBA-Codebeispiele

VBA-Laufzeitfehler

VBA-Befehle und -Funktionen

To Top

 


So wird ein Pfadname auf Gültigkeit überprüft

Bevor und auch während...

- Vorangestellte und angehängte Leerzeichen entfernen
- Unerlaubte Zeichen prüfen

strPath = Trim$(strPath)
For intCounter = 1 To Len(strPath)
  If InStr("<>*?|""", Mid$(strPath, intCounter, 1)) Then
    MsgBox "Unerlaubtes Zeichen: " & Mid$(strPath, intCounter, 1)
    Exit Sub
  End If
Next intCounter

To Top

 


So wird eine Datei kopiert

Zum Kopieren einer Datei muss man Programmcode für folgende Punkte schreiben:
- Wurde die zu kopierende Datei angegeben?
- Existiert die zu kopierende Datei?
- Wurde der Zielpfad angegeben?
- Existiert das Ziellaufwerk?
- Ist das Ziellaufwerk bereit?
- Existiert der Zielordner?
- Muss der Zielordner zuerst angelegt werden?
- Gibt es im Zielordner bereits eine gleichnamige Datei?
  - Wenn ja, soll diese ersetzt werden?
    - Wenn ja, ist sie nicht in Bearbeitung?
    - Wenn ja, ist sie schreibgeschützt?
- Besitzt der Benutzer Schreibrechte für den Zielordner?
- Ist die zu kopierende Datei nicht in Bearbeitung?
- Besitzt das Ziellaufwerk genügend freien Speicherplatz?

To Top

 


So wird eine Datei gelöscht

Zum Löschen einer Datei muss man Programmcode für folgende Punkte schreiben:
- Wurde die zu löschende Datei angegeben?
- Existiert die zu löschende Datei?
- Ist die zu löschende Datei nicht in Bearbeitung?
- Ist die zu löschende Datei nicht schreibgeschützt?
- Soll die zu löschende Datei in den Papierkorb verschoben werden?
- Besitzt der Benutzer Löschrechte für die Datei?

To Top

 


So wird eine Arbeitsmappe geöffnet

Bevor und auch während eine Arbeitsmappendatei mit "Workbooks.Open <Datei.xls>" geöffnet wird, muss man ein paar Entscheidungen treffen, die aktuelle Arbeitsumgebung prüfen sowie sämtliche Datei-Zugriffsfehler abfangen, analysieren und behandeln.

Vor dem Ausführen der Open-Methode sollte man daher prüfen,
- ob die Datei bereits in der aktuellen Excel-Instanz geöffnet ist,

- ob das angesprochene Gerät verfügbar ist,
- ob der angesprochene Datenträger bereit ist,
- ob das angegebene Laufwerk existiert,
- ob das angegebene Verzeichnis existiert,
- ob die zu öffnende Datei existiert,
- ob die Datei bereits von Ihnen selbst in einer anderen Excel-Instanz geöffnet ist,
- ob die Datei gerade von einem anderen Benutzer bearbeitet wird,
- ob die Datei von einem anderen Programm oder Prozess gesperrt wird,
- ob die benötigten Zugriffsrechte zum Öffnen vorhanden sind und
- ob die Datei das Attribut "Schreibgeschützt" besitzt.

Erst nachdem diese Prüfungen durchgeführt worden sind, kann man davon ausgehen, dass man in der Lage ist, die gewünschte Datei zu öffnen. Aber aufgepasst: Öffnen sollte man die Datei immer noch nicht!

 

Substitute-Verzeichnisse

UNC-Pfade

 

Pfad aus einem Pfad-/Datei-String auslesen

UNC-Pfade

MsgBox Left$(strFile, Len(strFile) - Len(Dir(strFile)) - 1)

 

Ist die Datei in der aktuellen Excel-Instanz bereits geöffnet?

Sub IsBookOpen()
  Dim wkbBook As Workbook
  On Error Resume Next
  Set wkbBook = Workbooks("MeineMappe.xls")
  If Err.Number = 9 Then
    MsgBox "Mappe ist nicht offen."
  Else
    MsgBox "Mappe ist offen."
    Set wkbBook = Nothing
  End If
End Sub

 

Ist das anzusprechende Gerät verfügbar?

 

 

To Top

 


So wird eine Arbeitsmappe gespeichert

 

Empfehlung

Speichern Sie eine Arbeitsmappe nie direkt auf eine Diskette.

 

Ist das Diskettenlaufwerk bereit?

Sub IsDiskDriveReady()
  If CreateObject("Scripting.FileSystemObject").GetDrive("A:").IsReady = True Then
    MsgBox "Laufwerk A: ist bereit."
  Else
    MsgBox "Laufwerk A: ist nicht bereit."
  End If
End Sub

 

Ist das Laufwerk ein CD-ROM-Laufwerk?

If CreateObject("Scripting.FileSystemObject").GetDrive("E:").DriveType = 4 Then
  MsgBox "Laufwerk E: ist ein CD-ROM-Laufwerk."
End If

 

Wie gross ist die Arbeitsmappendatei?

MsgBox FileLen(ThisWorkbook.FullName)

 

Wie gross ist der verfügbare Speicherplatz auf der Diskette?

Sub ShowFloppySpace()
  MsgBox CreateObject("Scripting.FileSystemObject").GetDrive("A:").AvailableSpace

  ' oder
  MsgBox CreateObject("Scripting.FileSystemObject").GetDrive("A:").FreeSpace
End Sub

 

Wie lang ist der Pfad-/Dateiname?

MsgBox Len(ThisWorkbook.FullName)

To Top

Haben Sie Fragen, Anregungen oder Hinweise?
Senden Sie mir ein Mail

Zuletzt aktualisiert am 20.05.2005 / 17:30 Uhr
© 2002-2005 by Philipp von Wartburg, CH-8916 Jonen
Alle Rechte vorbehalten