Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
209189 WD2000: VBA Function to Check Whether File or Document Is Open
Wenn Sie Microsoft Visual Basic für Applikationen-Makros oder -Routinen schreiben, müssen Sie möglicherweise überprüfen, ob eine Datei bereits durch einen anderen Prozess geöffnet wurde, bevor Sie an der Datei eine Aktion durchführen. Dieser Artikel enthält ein Beispielmakro und eine Beispielfunktion, die dazu dienen, den aktuellen Zugriffsstatus einer Datei oder eines Dokuments zu überprüfen.
Zusammenfassung
Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Spezialisten von Microsoft Product Support Services können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind. Das folgende Visual Basic für Applikationen-Beispielmakro ruft die Funktion FileLocked auf und gibt zur Überprüfung den vollständigen Pfad und Namen der Datei weiter. Wenn die Funktion True (Wahr) zurückgibt, ist höchstwahrscheinlich die Fehlernummer 70 "Berechtigung verweigert" aufgetreten, und die Datei ist zurzeit geöffnet und durch einen anderen Vorgang blockiert. Gibt die Funktion False (Falsch) zurück, ist die Datei nicht geöffnet, und das Makro öffnet das Dokument.
Sub YourMacro()
Dim strFileName As String
' Full path and name of file.
strFileName = "C:\test.doc"
' Call function to test file lock.
If Not FileLocked(strFileName) Then
' If the function returns False, open the document.
Documents.Open strFileName
End If
End Sub
Function FileLocked(strFileName As String) As Boolean
On Error Resume Next
' If the file is already opened by another process,
' and the specified type of access is not allowed,
' the Open operation fails and an error occurs.
Open strFileName For Binary Access Read Write Lock Read Write As #1
Close #1
' If an error occurs, the document is currently open.
If Err.Number <> 0 Then
' Display the error number and description.
MsgBox "Error #" & Str(Err.Number) & " - " & Err.Description
FileLocked = True
Err.Clear
End If
End Function
Weitere Informationen zur Verwendung des Beispielcodes aus diesem Artikel finden Sie im folgenden Artikel der Microsoft Knowledge Base:
212536 OFF2000: Ausführen von Beispielcode von Knowledge Base-Artikeln
Weitere Informationen
Weitere Informationen dazu, wie Sie Hilfe zu Visual Basic für Applikationen erhalten können, finden Sie im folgenden Artikel der Microsoft Knowledge Base:
226118 OFF2000: Ressourcen für die Programmierung mit Visual Basic für Applikationen
Informationsquellen
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.