Următoarele secțiuni demonstrează cum se folosesc două funcții de administrare a fișierelor din VBA:
La administrarea fișierelor, uneori este nevoie de o verificare a existenței unui anumit fișier. De exemplu, dacă trebuie salvat un fișier, dar fără a suprascrie un alt fișier cu același nume din aceeași locație de pe hard disk.
La deschiderea unui fișier, se poate verifica dacă fișierul există înainte de a folosi metoda Open; altfel, VBA va afișa o eroare.
Pentru a verifica dacă există un fișier, se poate folosi o procedură simplă, ca și cea de mai jos.
Verificarea existenței unui fișier folosind funcția Dir
1. Sub Verific_Fisier()
2. Dim strFisierTest As String, strNumeFisierTest As String, _
strMsg As String
3. strNumeFisierTest = InputBox("Introduceti calea completa a fisierului si numele+extensia lui:")
4. If strNumeFisierTest = "" Then End
5. strFisierTest = Dir(strNumeFisierTest)
6. If Len(strFisierTest) = 0 Then
7. strMsg = "Fisierul " & strNumeFisierTest & _
" nu exista."
8. Else
9. strMsg = "Fisierul " & strNumeFisierTest & " exista. "
10. End If
11. MsgBox strMsg, vbOKOnly + vbInformation, _
"Verificare existenta fisier "
12. End Sub
Procedura de mai sus folosește funcția Dir pentru a verifica dacă fișierul există și afișează un mesaj corespunzător. Figura de mai jos arată mesajele care pot să apară. Acest exemplu are scop didactic. Într-o procedură, rezultatul testului se folosește pentru ramificare - branch - (se execută diferite blocuri de cod) pe baza existenței fișierului.
Funcția Dir poate fi folosită la verificarea existenței unui fișier, pentru a nu suprascrie din greșeală un fișier cu același nume sau în vederea deschiderii fișierului.
Iată cum funcționează codul:
Codul de mai sus nu este complet, deoarece comanda Dir este proiectată să funcționeze atât cu metacaractere (wildcards), cât și cu caractere obișnuite. Atâta timp cât în variabila strNumeFisierTest este folosit un simplu nume de fișier text, va fi bine, deoarece Dir compară acel text cu numele de fișiere existente pe hard disk și rezultatul permite un rezultat corect. Dar dacă strNumeFisierTest conține wildcards (spunem că șirul este c:\temp\*.*, unde asteriscurile specifică orice nume de fișier), Dir raportează că fișierul există.
Cu toate acestea, nu există niciun fișier cu acest nume, ci doar unul sau mai multe fișiere care se potrivesc cu metacaracterele introduse. Pe linia 5 se poate verifica dacă numele returnat de Dir este exact același cu numele dat la intrare și se face și o comparație case-insensitive, între litere mari și mici. Acest exemplu de folosire a lui Dir este o ilustrație frumoasă a GIGO (gunoi introduci, gunoi obții) - din punctul de vedere al computerului (și al VBA), face ceea ce i s-a cerut, dar rezultatul este departe de ceea ce s-a dorit.
Returnarea căii curente
Calea curentă (locația de pe hard disk către care este direcționată aplicația) poate fi fie pe partiția curentă, fie pe o partiție sau un dispozitiv specificat folosind funcția CurDir. Uneori calea curentă trebuie modificată (folosind funcția ChDir) pentru ca utilizatorul să salveze fișierul pe acea cale sau să deschidă fișiere de pe acea cale.
Pentru a returna calea curentă, se folosește CurDir fără argument:
CurDir
Pentru a returna calea curentă de pe o anumită partiție sau alt dispozitiv, se introduce litera dispozitivului ca argument. De exemplu, pentru a returna ca și cale curentă partiția / dispozitivul D, se folosește comanda:
CurDir("D")