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

Właściwości obiektu Range

Najpopularniejsze właściwości obiektu Range w kodzie VBA to:

  • adres zakresu
    • Address -zwraca adres zakresu lub nazwę obiektu Range
  • liczba obiektów
    • Count – liczba obiektów w Range. Dla zakresu komórek zwracana jest ich liczba
  • przesunięcie
    • Offset -przesunięcie o określoną liczbę wierszy i kolumn od obiektu Range
  • położenie
    • Top – zwraca położenie od góry górnego wierzchołka obiektu Range
    • Left – zwraca położenie od lewej strony wierzchołka obiektu Range
  • wartość
    • Value – wartość zakresu (np.komórki). Jest to właściwość domyślna obiektu Range

Tak, jak w przypadku metod obiektu Range chcąc wywołać daną właściwość, po nawiasie zamykającym oznaczenie obiektu wstawiamy kropkę i wybieramy z listy rozwijalnej daną właściwość.


 

Kurs Excel programowanie w VBA

Tabela w Excelu

Tabela w Excelu to nie tylko ładnie opisane, sformatowane i obramowane komórki – takie coś nazywam zawsze tylko tabelką. Prawdziwa tabela to obiekt, mający swoje właściwości  i metody.

Załóżmy, że mamy taką tabelkę:

Chcąc przekształcić te komórki w prawdziwą tabelę, zaznaczamy je, a następnie na karcie Wstawianie wciskamy przycisk Tabela. Można też skorzystać ze skrótu klawiaturowego  Ctrl+T.

Pojawi się formularz, w którym można zmienić/zatwierdzić zakres danych jakie mają być tabeli.

Po wstawieniu tabeli do arkusza, aktywacja dowolnej jej komórki powoduje wyświetlenie nowej karty Projektowanie.

kliknij, aby powiększyć

Domyślnie nadawana nazwa dla obiektu tabeli to Tabela1 (i dalej Tabela2, Tabela3…). Dostępne są też wzory formatowania, możliwość wstawienia wiersza podsumowania i.in.

Mają c już tabelę – na co warto zwrócić uwagę?  Jest kilka istotnych właściwości:

nazwy strukturalne

    • każda tabela musi mieć nagłówek. Jeżeli przy tworzeniu tabeli nie ma wiersza spełniającego takich kryteriów, zostanie automatycznie nadany z nazwami odnoszącymi się do numerów kolumn (Kolumna1, Kolumna2… )
    • nagłówki tabelki są nazwami strukturalnymi dla wartości w poszczególnych kolumnach. Widać to chociażby  w formułach, w których argumentami są wartości tabeli – nie ma tu odniesień to adresów komórek tylko właśnie do nazw strukturalnych
      właściwości ogólne
    • w wierszu nagłówka automatycznie wbudowane są znaczki autofiltra pozwalające na filtrowanie rekordów tabeli,
    • wstawienie formuły w pierwszym wierszu tabeli powoduje, że cała kolumna automatycznie zostaje wypełniona tą formułą, nie trzeba nic przeciągać czy kopiować,
    • chcąc dodać kolejny wiersz tabeli -ustawiamy się w ostatniej kolumnie ostatniego wiersza i naciskamy  Tab. Nowy wiersz zostanie automatycznie dodany na końcu tabeli, jeszcze przed wierszem podsumowania. W kolumnach z formułami, pojawią się one także w tym nowym wierszu.
    • w wierszu podsumowania można modyfikować funkcje agregacji. Nie musi to być suma, może być średnia, liczba rekordów itp.
    • po zastosowaniu filtra tabeli – automatycznie zmieniają się wartości wiersza podsumowania, uwzględniając tylko widoczne wartości.

UsedRange

UsedRange to jedna z właściwości arkusza. Zwraca obiekt Range obejmujący zakres używanych komórek. Zakres ten jest wyznaczany jako prostokąt, którego lewym górnym rogiem jest “niepusta” komórka. Istotne jest tu to, że komórką “niepustą” dla zakresu używanego może być komórka, w której nie ma żadnej wartości, ale jest np.sformatowana inaczej niż pozostałe komórki arkusza.
W kodzie VBA wywołanie UsedRange np. aktywnego arkusza wygląda tak:

Public Sub ZakresUzytkowy()
Dim ZakresA As Range
SET ZakresA=ActiveSheet.UsedRange
End Sub

Dla właściwości UsedRange można też wywołać adres:
UsedRange.Address

A gdzie jest właściwość UsedRange najczęściej używana? M.in. do sprawdzania i czyszczenia różnych śmieci, które czasem pojawiają się w arkuszu i niepotrzebnie obciążają pamięć i rozmiar pliku.


 

Kurs Programowanie VBA w Excelu dla zaawansowanych