6 Makrodefinicje

Ważne, pliki Excela z makrami nagrywamy w innym formacie o rozszerzeniu xlsm. W zależności od ustawień bezpieczeństwa czasem musimy się zgodzić na ich używanie.

Makra

Korzystamy z zakładki Deweloper (jak dodać, patrz rozdział 5)




1  zaznaczamy obszar danych które chcemy modyfikować
2 wybierz "zarejestruj makro"
3 nazwij makro i wciśnij OK, ...nagrywanie rozpoczęte

wykonaj czynności które chcesz dodać do makro, np w zakładce Narzędzia wybierz sortowanie
wróć do zakładki Deweloper o w tym samym miejscu kliknij zatrzymaj rejestrowanie

Teraz klikając ikonkę Makra - 1


możesz wybrać - 2 czy chcesz makro uruchomić czy edytować

Makro będzie zawsze odnosić się do komórek zaznaczonego WCZEŚNIEJ obszaru, jeśli chcemy stworzyć makro odnoszące się obszarów które zaznaczamy przed uruchomieniem a nie stworzeniem makra (czyli dowolnych) to przed tworzeniem/nagrywaniem należy zaznaczyć opcję "użyj odwołań względnych" (pod ikonką zarejestruj makro)


Dodawanie makra do przycisku

Po stworzeniu makra, w zakładce Deweloper rozwijamy ikonę Wstaw (od formularzy z roz.5)
wybieramy pierwszą ikonę "Przycisk (format formularza)" i nadajemy mu stworzone wcześniej makro.

Można dodać stworzone makro również do wstążki. wybierz OPCJE i Dostosowanie Wstążki.
W oknie zmien "Wybierz Polecenia z" na "Makra"

Wybrać makro i przeciągnąć na dowolną kartę.



Visual Basic VBA

Tworzymy dwa makra (np jedno nadaje kolor komórce, drugie dodaje ramkę w koło komórki)

Po wybraniu ikony Makra, wybieramy Edycja.

Otwiera się nam okno Visual Basic:





Aby Stworzyć swoje proste makro wywołujące dwa wcześniej stworzone wystarczy wpisać:

Sub nazwamakra()
'
'po cudzysłowach możemy komentować
'
'
kolor1
ramka

End Sub




sub nazwa tworzy nowe makro, inne makra wywołujemy przez wpisanie ich nazwy
zakończenie treści makra wpisujemy End Sub, komentarze po cudzysłowu

Teraz możemy wywoływać swoje nowe makro które wykonywać będzie jednocześnie makro kolor1 i makro ramka



Pętle w VBA

przykład makra z pliku marcin7b z folderu przykłady 10

Sub konto()

Dim ile As Integer
Dim kwota As Double
Dim opro As Double
Dim odsetki As Double
Dim wplata As Double
Dim wiersz As Integer
'pobranie zmiennych z arkusza

ile = Cells(2, 2)
kwota = Cells(1, 2)
wplata = Cells(1, 5)
opro = Cells(3, 2)
odsetki = 0
'określenie wartości zmiennych, jeśli z cells (x,x) to pobiera z komórki x,x


Range("a6:c1000").Clear
'czyści to co w komórkach, np po poprzednich wyliczeniach,
'od 6tego wiersza  w dół

Do While kwota < 1000000        'pętla wykonuje się az kwota=1000000

Cells(i + 5, 1) = i              'wpisz do okreslonej komórki wartość i
kwota = kwota + odsetki + wplata   'kwota=stara kwota + odsetki + wplata


Cells(i + 5, 2) = kwota             ' wpis kwotę do komórki

odsetki = kwota * opro / 12        'oblicz odsetki dla kwoty
Cells(i + 5, 3) = odsetki          'wpisz odsetki do komórki
i = i + 1                          'zwiększ i o jeden

Loop                           ' koniec pętli


End Sub

Opis programu w komentarzach, dim - tworzenie nowej zmiennej o określonym typie




Przykłady

Link

Przykładowe pliki Makr - folder 10, nie otwieraj w przeglądarce, ściągnij plik i uruchom w Excelu.
Możesz mieć zablokowane uruchamianie plików z makrami ściągniętymi z sieci (względy bezpieczeństwa), potwierdź i uruchom plik ponownie.