Scripting.FileSystemObject

Scripting.FileSystemObject to obiekt VBA 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 zawodzą. Wówczas pozostaje wykorzystanie właśnie obiektu FileSystemObject, popularnie nazywanym FSO.

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

Kurs Excel programowanie w VBA

Nazwy arkuszy

Każdy arkusz w Excelu ma swoją własną, unikalną nazwę, odróżniającą go od innych arkuszy.

Nazwę arkusza można w prosty i łatwy sposób zmienić, klikając w nią dwukrotnie lewym przyciskiem myszy  i po zaznaczeniu, wpisując nową.

Arkusze Excela mają także swoją, również unikalną, nazwę kodową.  Nazwa kodowa arkusza widoczna jest tylko z poziomu edytora VBA.
Na wszelki wypadek przypominam – szybkie wejście do edytora przez naciśnięcie przycisków Alt+F11.

W oknie projektu widoczne są wszystkie arkusze skoroszytu.

Widoczne są w nim nazwy wszystkich arkuszy, wpisane jako nazwa kodowa, a w nawiasie nazwa arkusza widoczna z poziomu Excela.
Czyli np.arkusz o nazwie kodowej Arkusz1 ma nazwę własną Mój arkusz 1.
Nazwy kodowe są nadawane automatycznie i uzależnione są od wersji językowej Excela, w której skoroszyt został utworzony. Dla wersji polskiej są to Arkusz1, Arkusz2… itd., w wersji angielskiej Sheet1, Sheet2… itd.

Nazwę kodową można zmienić w edytorze, w oknie właściwości arkusza – można je uaktywnić przez naciśnięcie przycisku F4.

W polu nazwy (Name) można wpisać własną nazwę kodową arkusza.

Nazwa kodowa arkusza nie może zawierać spacji i znaków specjalnych. Osobiście zdecydowanie odradzam też stosowanie polskich znaków diakrytycznych (czyli wszystkich liter z ogonkami: ą, ś, ć itp.

Czy i po stosowane są nazwy kodowe arkuszy? Ja z nich korzystam bardzo często. Przede wszystkim zabezpieczam się w ten sposób przed nieprzewidzianą zmianą nazwy arkuszy przez użytkowników. Zapis w kodzie:
Worksheets(“czerwiec”)
jest równoważny zapisowi:
Arkusz2
Jeśli jednak użytkownik zmieni nazwę z czerwca na  lipiec, to wprawdzie wszystkie formuły zapisane w komórkach automatycznie się zaktualizują, ale w kodzie VBA nie. Oznacza to, że pierwsze odwołanie nie zadziała i wystąpi błąd kodu. Skorzystanie w kodzie z nazwy kodowej arkusza zabezpiecza przed taką sytuacją.