Verzeichnis- / Datei- Befehle → ohne Beispiele | |
Befehl / Beispiele | Beschreibung |
<DateiName> = Application.GetOpenFilename(<DK>,
<Index>, <Titel>, , <MS>) <DateiName> = Name der Datei, welche ausgewählt wurde. <DK> = Dateikriterium <Index> = Welches Dateikriterium soll angezeigt werden <Titel> = Fenstertitel <MS> = Können mehrere Dateien ausgewählt werden ? |
Mittels dieser Option können ein oder mehrere Dateinamen aus einer Dateistruktur ausgewählt werden. Der oder die Dateinamen stehen als Ergebnis samt des Pfadnamen in der Variable <DateiName> |
Beispiel 1:
Es kann eine beliebige Datei aus einer Verzeichnis-Struktur gewählt werden. DK = "Alle Dateien (*.*),*.*" Titel = "Wähle eine Datei" DateiName = Application.GetOpenFilename(DK, , Titel) |
|
Beispiel 2:
Es können Word oder Excel-Datei ausgewählt werden ( Voreinstellung ist Excel
--> Index = 2 ). DK = "Word Dateien (*.Doc),*.doc, Excel Dateien (*.xls),*.xls" Titel = "Wähle eine Datei" Index = 2 DateiName = Application.GetOpenFilename(DK, Index , Titel) |
|
Beispiel 3:
Es können mehrere Bild-Dateien ausgewählt werden. Sub MehrereDateienAuswählen() '+---------------------------------------------------------------------------------+ '| Es können mehrere Bilder im Format *.jpg oder *.gif ausgewählt werden. | '| Die Mehrfachauswahl erfolgt unter Zuhilfenahme der Strg- oder Shift-Taste | '| Die ausgewählten Bilder werden dann in eine Tabelle ab Position A1 ausgegeben | '+---------------------------------------------------------------------------------+ Dim Dateien As Variant Dim DK As String Dim Titel As String Dim Zeile As Integer DK = "Bild-Dateien (*.jpg; *.gif), *.jpg; *.gif" ' Filefilter Titel = "Wähle mehrere Bilder aus" ' Wird in der Titelleiste ausgegeben Dateien = Application.GetOpenFilename(DK, 1, Titel, , True) ' Fenster starten If IsArray(Dateien) = False Then Exit Sub ' Sind Dateien ausgewählt worden ? Cells.ClearContents ' Tabellenblatt löschen For Zeile = 1 To UBound(Dateien) ' Ausgabe der ausgewählten Dateien ab Zelle A1 Cells(Zeile, 1) = Dateien(Zeile) Next Zeile End Sub |
|
<DateiName> =
Application.GetSaveAsFilename(<DN>, <FF>, <FI>, <TT>) <DateiName> = Name der Datei, welche abgespeichert werden soll. <DN> = Dateiname, welcher im Dialog erscheinen soll. <FF> = Dateikriterium <FI> = Welches Dateikriterium soll angezeigt werden ? <TT> = Fenstertitel |
Zeigt einen Dialog an welcher Stelle einer Verzeichnisstruktur eine Datei abgespeichert werden kann. |
Beispiel :
Es sollen Daten in die Datei Text.txt gespeichert
werden. Mittels der GetSaveFilename- Funktion soll ein Verzeichnisplatz gesucht werden DN = "Text.txt" FF = "Text Datei (*.txt),*.txt" FI = 1 TT = "Wähle den Speicherort für Deine Datei" DateiName = Application.GetSaveAsFilename(DN, FF, FI, TT) |
|
ChDir <Verzeichnisname> | Wechselt das aktuelle Verzeichnis |
Beispiel 1:
Es wird das aktuelle Verzeichnis ausgegeben, danach das aktuelle Verzeichnis
gewechselt und anschließend wieder ausgegeben. MsgBox CurDir ' gibt das aktuelle Verzeichnis wieder. ChDir ".." ' wechselt ( unter Windows ) eine Verzeichnisebene höher. MsgBox CurDir ' gibt das aktuelle Verzeichnis wieder. |
|
Beispiel 2: Wechseln des aktuellen
Verzeichnisses. ChDir "D:\Daten\Word\2010" Hinweis: Beim Verzeichniswechsel darf sich die Laufwerks-Bezeichnung nicht ändern |
|
ChDrive <Laufwerksbezeichnung>) | Laufwerk ändern |
Beispiel : Wechselt das aktuelle
Laufwerk. ChDrive "D:\" |
|
CurDir | Gibt das aktuelle Verzeichnis aus |
Beispiel :
Gibt das aktuelle Laufwerk aus. MsgBox CurDir |
|
Dir(<Verzeichnis / Datei-Angabe>), <Datei-Typ>) | Verzeichnis / Datei - Überprüfung / Auflistung / Suche |
Beispiel 1:
Überprüft, ob eine Datei im angegebenen
Verzeichnis vorhanden ist. Datei = Dir("D:\Daten\Excel\Funktionen.xls", vbNormal) MsgBox Datei ' --> "Funktionen.xls" ' Falls die Datei nicht vorhanden ist, wird nichts ausgegeben. |
|
Beispiel 2:
Listet die Dateien eines Verzeichnisses auf. Sub Aufruf() DateienEinesVerzeichnisses "D:\" End Sub Sub DateienEinesVerzeichnisses(Verzeichnis) Dim Datei As String Dim SuchOption As String Dim Text As String SuchOption = Verzeichnis If Right(SuchOption, 1) <> "\" Then SuchOption = SuchOption & "\" SuchOption = SuchOption & "*.*" Do If Datei = "" Then Datei = Dir(SuchOption, vbNormal) Else Datei = Dir() End If If Datei > "" Then If Text > "" Then Text = Text & vbCr Text = Text & Datei End If Loop Until Datei = "" MsgBox Text End Sub |
|
Beispiel 3:
Listet die Unterverzeichnisse eines Verzeichnisses auf. Sub Aufruf() VerzeichnisseEinesVerzeichnisses "D:\" End Sub Sub VerzeichnisseEinesVerzeichnisses(Verzeichnis) Dim Datei As String Dim SuchOption As String Dim Text As String SuchOption = Verzeichnis If Right(SuchOption, 1) <> "\" Then SuchOption = SuchOption & "\" SuchOption = SuchOption & "*." Do If Datei = "" Then Datei = Dir(SuchOption, vbDirectory) Else Datei = Dir() End If If Datei > "" Then If Text > "" Then Text = Text & vbCr Text = Text & Datei End If Loop Until Datei = "" MsgBox Text End Sub |
|
EOF(<Datei-Nummer) | Gibt an, wenn das Ende einer Datei erreicht ist. |
Beispiel :
Eine Text-Datei wird zeilenweise komplett ausgelesen Dim ZeilenText As String Open "D:\Test.Txt" For Input As #1 While Not EOF(1) Line Input #1, ZeilenText Wend Close #1 |
|
FileCopy(<Original>, <Kopie> ) | Kopiert eine Datei |
Beispiel : Kopiert eine Datei Datei = "D:\Daten\Excel\Funktionen.xls" FileCopy Datei, "D:\Testfile.xls" |
|
FileDateTime(<Dateiname>) | Gibt das Datum der Dateiänderung wieder. |
Beispiel : MsgBox FileDateTime("D:\Testfile.xls") ' --> TT.MM.JJJJ hh:mm:ss |
|
FileLen(<Dateiname>) | Gibt die Dateigröße wieder. |
Beispiel : MsgBox FileLen("D:\Testfile.xls") ' --> Anzahl der Bytes |
|
Get <Kanalnummer>, [<DateiPosition>],
<Variable> <Kanalnummer> = Kanalnummer der geöffneten Date ( 1 - 511 ) [<DateiPosition>] = Dateisatzposition ( bei Random-Zugriff ) Byteposition ( bei Binary-Zugriff ) |
Liest Daten aus einer geöffneten Datei ( Random, Binary ) |
Beispiel 1:
Liest den kompletten Inhalt der Datei Text.txt in die
Variable Buffer ein. Dim Buffer As String Open "D:\Test.Txt" For Binary As #1 ' Öffnen der Datei Buffer = Space(LOF(1)) ' Größe des Buffers bestimmen Get #1, , Buffer ' Daten lesen Close #1 ' Datei schließen |
|
Beispiel 2:
Liest 100 Zahlen aus einer binären Datei ein. Dim Nr As Integer Dim Zahl(1 To 100) As Double Open "D:\Messung.Txt" For Binary As #1 For Nr = 1 To 100 Get #1, , Zahl(Nr) Next Nr Close #1 |
|
GetAttr(<Dateiname oder Verzeichnisname>) Das Ergebnis ist die Summe aus folgenden Werten: |
Gibt die Attribute einer Datei wieder. |
Beispiel : Dim AttrNr As Integer Dim Datei As String Dim Text As String Datei = "C:" AttrNr = GetAttr(Datei) Text = "Diese Datei ist:" & vbCr & vbCr If AttrNr And 1 Then Text = Text & "- ist schreibgeschützt" & vbCr If AttrNr And 2 Then Text = Text & "- ist versteckt" & vbCr If AttrNr And 4 Then Text = Text & "- ist eine Systemdatei" & vbCr If AttrNr And 16 Then Text = Text & "- ist ein Verzeichnis" & vbCr If AttrNr And 32 Then Text = Text & "- wurde seit der letzten Sicherung geändert" & vbCr MsgBox Text |
|
Input #<KanalNummer>, <Wert> | Liest Daten aus einer geöffneten Datei ( Sequentiell ) |
Beispiel : |
|
Kill(<Dateiname> | Löscht eine Datei |
Beispiel : Kill "D:\Messung.Txt" |
|
Line Input #<Kanalnummer>, <Variable> | Liest eine Zeile aus einer Datei |
Beispiel : |
|
Loc |
Nummer des letzten Datensatzes ( Random ) Position des letzten gelesenen oder geschriebenen Bytes ( Binary ) |
Beispiel : |
|
LOF <Kanalnummer> | Gibt die Größe einer Datei wieder. |
Beispiel : Open "D:\Messung.Txt" For Binary As #22 MsgBox LOF(22) Close #22 |
|
MkDir <Verzeichnisname> | Erstellt ein Unterverzeichnis |
Beispiel : MkDir "D:\Kostenberechnung" |
|
Open <Dateiname> For <Zugriffsmode> As #<Kanalnummer> | Schreib- / Lesezugriff auf eine Datei |
<Dateiname>
= Datei- inkl. Verzeichnis-Name <Zugriffsmode> = Input Eingabe aus einer sequentiellen Datei Output Ausgabe in eine sequentiellen Datei Append Daten an eine sequentiellen Datei anhängen Random Daten werden Datensatzweise geschrieben / gelesen Binary Byteweiser Schreib / Lese-Zugriff <Kanalnummer> = Zugriffskanalnummer zu Datei ( 1 - 511 sind möglich ) |
|
Beispiel : |
|
Print #<Kanalnummer>, <Varaible> | Schreibt Daten in eine geöffnete Datei ( sequentielle ) |
Beispiel : |
|
Put #<Kanalnummer>, <Varaible> | Schreibt Daten in eine geöffnete Datei ( Random, Binary ) |
Beispiel : Dim Nr As Integer Dim Zahl As Double Kill "D:\Messung.Txt" Open "D:\Messung.Txt" For Binary As #1 For Nr = 1 To 100 Zahl = Rnd * 1000 Put #1, , Zahl Next Nr Close #1 |
|
RmDir (<Verzeichnisname>) | Löscht ein Verzeichnis ( wenn es leer ist und nicht schreibgeschützt. ) |
Beispiel : RmDir "D:\_Dummy" |
|
Seek | |
Beispiel : | |
SetAttr <Dateiname>, <Summme der Datei-Attribute> | Setzen von Datei-Attribute |
<Datei-Attribute> =
vbNormal 0 Normal. vbReadOnly 1 Schreibgeschützt. vbHidden 2 Versteckt. vbSystem 4 Systemdatei. vbArchive 32 Datei wurde seit dem letzten Speichern geändert. |
|
Beispiel :
SetAttr "D:\Messung.Txt", vbHidden + vbReadOnly |
|
Write #<Kanalnummer>, | Schreibt Daten in eine geöffnete Datei |
Beispiel : Dim Datei As String Datei = "D:\TestOutput.txt" Open Datei For Output As #1 Write #1, "Test" Write #1, "Wort" Write #1, 1234 Write #1, 12.34 Write #1, "Test"; Write #1, "Wort"; Write #1, 1234; Write #1, 12.34 Close Shell "notepad.exe " & Datei, vbNormalFocus --> |