Podstawowymi działaniami w VBA są działania na obiektach takich jak komórka lub zakres (range), cały wiersz (row), kolumna (column), arkusz (sheet), skoroszyt (workbook).
Obiekty posiadają metody, które właściwie są komendami dotyczącymi tych obiektów
np.
Range(„C7”).Select - Zaznaczenie komórki C7
Range(„C7”).Copy - skopiowanie
Range(„C7”).Clear – usunięcie zawartości
Sheets("styczeń").Select – przejście na arkusz o nazwie styczeń
Activeworkbook.Close – zamknięcie aktywnego skoroszytu
Poruszanie się po arkuszu
ActiveCell.Offset(1, 0).Select – zaznaczenie komórki znajdującej się bezpośrednio pod komórką aktualnie zaznaczoną. W nawiasie 1 oznacza o ile wierszy, 0 oznacza o ile kolumn od bieżącej
ActiveCell.Offset(-3, 2).Select - zaznaczenie komórki o 3 w górę i o 2 kolumny w prawo
ActiveCell.Offset(4, -1).Select - zaznaczenie komórki o 4 w dół i 1 w lewo
Przejście w dół do komórki poprzedzającej pustą
Selection.End(xlDown).Select
Przejście w dół do komórki poprzedzającej pustą z zaznaczeniem całego zakresu
Range(Selection, Selection.End(xlDown)).Select
Przejście w dół do pierwszej pustej komórki, rozpoczynając od A1
Range("A1").Select
Do While Activecell <> ""
ActiveCell.Offset(1, 0).Select
Loop
Zaznaczenie obszaru od bieżącej komórki do komórki o trzy kolumny w prawo licząc łącznie z obecną komórką
ActiveCell.Range("A1:C1").Select
Zaznaczenie obszaru od komórki niższej o 1 (A2 - dwie łącznie z aktywną) do komórki o trzy kolumny w prawo i dwa wiersze w dół
ActiveCell.Range("A2:C3").Select
Włączenie ochrony arkusza
ActiveSheet.Protect
Wyłączenie ochrony
ActiveSheet.Unprotect
Wyłączenie odświeżania ekranu (żeby podczas pracy makra np. przeskakiwaniu pomiędzy arkuszami, zaznaczaniu komórek itp. Nie widzieć tych wszystkich czynności. Wtedy po uruchomieniu makra ekran pozostaje nieruchomy a wszystko odbywa się w tle. Dobrze jest na końcu dopisać załączenie odświeżania)
Application.ScreenUpdating = False
Załączenie
Application.ScreenUpdating = True
Przykład:
Sub jakies_makro()
Application.ScreenUpdating = False
Tutaj wiele różnych komend
Application.ScreenUpdating = True
End sub
Wyłączenie odświeżania przyspiesza pracę makra
Przejście do komórki o jeden wiersz w dół
ActiveCell.Offset(1, 0).Select
Przejście do komórki o jeden wiersz w górę i trzy kolumny w prawo
ActiveCell.Offset(-1, 3).Select
Ścieżki dostępu (komendy otwierające wskazany plik)
ścieżka bezwzględna do pliku o nazwie "plik.xls"
Workbooks.Open Filename:="C:\Documents and Settings\user\Pulpit\zadanie\plik.xls"
ścieżka do pliku o nazwie "plik.xls" w tym samym katalogu co aktywny skoroszyt
Workbooks.Open Filename:=ActiveWorkbook.Path & "\plik.xls"
do pliku w folderze "podfolder" podrzędnym do bieżacego miejsca
Workbooks.Open Filename:=ActiveWorkbook.Path & "\podfolder\plik.xls"
do pliku w folderze nadrzędnym
Workbooks.Open Filename:=ActiveWorkbook.Path & "\..\plik.xls"
wyjście z bieżącego folderu i wejście do innego o nazwie "podfolder"
Workbooks.Open Filename:=ActiveWorkbook.Path & "\..\podfolder\plik.xls"
wyjście kilka poziomów w górę i wejście do folderu "podfolder"
Workbooks.Open Filename:=ActiveWorkbook.Path & "\..\..\..\podfolder\plik.xls"
Przełączanie się między oknami (jeżeli są otwarte np. dwa pliki w osobnych oknach)
Windows("magazyn.xls").Activate
Przełącza się na okno zawierające plik „magazyn.xls”
Zapisanie zmian i zamknięcie pliku
ActiveWorkbook.Save
ActiveWindow.Close
Bez zapisywania
ActiveWorkbook.Close Savechanges:=False
Wyczyszczenie zawartości schowka
Application.CutCopyMode = False
Drukowanie
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1
Wydrukuje 1 stronę