FileSystem.Object

Scripting.FileSystemObject to obiekt służący do zarządzania plikami i folderami. Wprawdzie w kodzie VBA są dostępne proste i przyjemne funkcje Dir, MkDir itp., ale przy odwołaniach do folderów sieciowych niestety często zawodzą. Wówczas pozostaje wykorzystanie właśnie obiektu FileSystemObject, popularnie nazywanym FSO.

Przed zastosowaniem w kodzie VBA tego obiektu trzeba najpierw sprawdzić, czy włączone są wymagane referencje. Sprawdzamy to w edytorze VBA wybierając z menu Tools–> References

 

dla obiektu FileSystemObjects wymagana jest biblioteka Microsoft Scripting Runtime.  Jeżeli nie jest zaznaczona – należy ją odszukać na liście i zaznaczyć  checkbox obok niej.

Dostępne są tu następujące właściwości i metody:

    • GetDrive – informacje o napędzie (dysku)
    • GetFolder – informacje o folderze
    • GetFile– informacje o pliku
    • CreateFolder – tworzenie folderu
    • CreateFile – tworzenie pliku
    • DeleteFolder – usuwanie folderu
    • DeleteFile – usuwanie pliku
    • CopyFolder – kopiowanie folderu
    • CopyFile – kopiowanie pliku
    • MoveFolder – przenoszenie folderu
    • MoveFile – przenoszenie pliku

To tylko te podstawowe, jest ich więcej. I każda będzie tematem notki.


Otwieranie folderu kodem VBA

Jak z poziomu aplikacji otworzyć określony folder na dysku? Sposobów jest kilka, jeden z nich to wykorzystanie funkcji Shell.

Public Sub OtworzFolder()
Dim a
Dim JSciezka As String
JSciezka = “C:\CWICZENIAFORA”
a = Shell(“explorer.exe ” & JSciezka, vbNormalFocus)
End Sub

Po uruchomieniu kodu w aplikacji Access – w oddzielnym oknie Windows otwiera się folder zdefiniowany w zmiennej JSciezka, a kod VBA przechodzi do kolejnego kroku.


Funkcja Shell

Funkcja VBA Shell to funkcja uruchamiająca inny program wykonywalny.
Ma 2 argumenty wejściowe:

    • PathName  – argument obowiązkowy. Wartość typu String określająca nazwę programu do otwarcia;
    • WindowStyle – argument opcjonalny. Wartość typu Integer określająca widok okna uruchomionego programu.
      Dostępne są tu następujące wartości:

      • 0 (vbHide) – okno uruchomionego programu jest ukryte
      • 1 (vbNormalFocus) – okno uruchomionego programu jest widoczne  i ma fokus
      • 2  (vbMinimizedFocus) – okno uruchomionego programu jest widoczne jako ikona i ma fokus
      • 3  (vbMaximizedFocus) – okno uruchomionego programu jest maksymalnie powiększone i ma fokus
      • 4  (vbNormalNoFocus) – okno uruchomionego programu jest widoczne, ale nie ma fokusu
      • 6 (vbMinimizedNoFocus) – okno uruchomionego programu jest widoczne jako ikona i nie ma fokusu

Wartością domyślną jest tu 1 (vbNormalFocus)

W wyniku działania funkcji VBA otrzymujemy wartość typu Variant będącą identyfikatorem numeru zadania uruchomionego programu. Jeżeli uruchomienie programu się nie powiedzie – zwracana jest wartość 0.


Kurs Access - programowanie w VBA