VBA #1 – Jak zacząć pisać makra w Excelu? – kopiowanie

Potrzebowałem nauczyć się pisać makra w Excelu, lecz z dostępnych darmowych kursów nie najlepiej wychodziło w końcu sięgnąłem po artykuł Pana Tomka Kuchta z ExcelForum.pl w którym porównuje szybkość algorytmów sortowań który mnie olśnił i pokazał w jaki sposób pisać makra. Artykuł dostępny pod tym linkiem.

Na samym początku powiedzmy sobie co to VBA w Excelu, to środowisko dla programisty w którym dosłownie możemy programować Excela. W tej części wytłumaczę parę zagadnień oraz obsługę.

Excel dla Dewelopera.

Uruchamiamy program Excel, tworzymy sobie nowy pusty arkusz, następnie sprawiamy aby naszym oczom w pasku narzędzi pojawiła się opcja Deweloper.

Wybieramy w Menu Plik -> Opcje

W kolejnym oknie przechodzimy w lewym panelu do opcji Dostosowywanie Wstążki i zaznaczamy opcje jak ww. screenie Deweloper klikamy OK i naszym oczom objawi się opcja dla Deweloperów.

Z panelu narzędzi wybieramy opcje Deweloper i uruchamiamy w lewym górnym rogu Visual Basic.

Po lewej stronie znajduje się podgląd projektu.

Aby zacząć pisać makro musimy stworzyć moduł wybierając z górnego Menu Insert -> Module.

W podglądzie projektu pojawi się nasz stworzony moduł i otworzy zawartość, w której będziemy pisać kod programu.

Tworzymy arkusz do pracy.

Stwórzmy sobie arkusz podobny do mojego A1 – Nr części, B2 – Nazwa, B3 – Cena i uzupełnijmy z 10 wierszy pod nimi.

Dla przykładu:

Uzupełniony arkusz

Stwórzmy dodatkowy skoroszyt o nazwie Kopia, a pierwszy nazwijmy Baza.

Programowanie VBA procedura kopiowanie, makro i objaśnienie.

Sub kopiowanie(baza, kopia, ilosc_wierszy, ilosc_kolumn) ' procedura Sub kopiowanie przejmująca 4 zmienne
    Dim i As Integer ' deklaracja i typu integer
    Dim j As Integer ' deklaracja j typu integer

    ' 2 pętle zagnieżdżone for, kopiowanie '

    For i = 1 To ilosc_wierszy ' rozpoczęcie pętli for i = 1 do ilosc_wierszy
        For j = 1 To ilosc_kolumn ' rozpoczęcie pętli for j = 1 do ilosc_kolumn
        ' przypisanie wartości komórki(i,j) kopii do komórki bazy '
        kopia.Cells(i, j).Value = baza.Cells(i, j).Value 
        Next ' zakończenie pętli dla j
    Next ' zakończenie pętli dla i

End Sub ' zakończenie procedury kopiowanie
Sub makro()

    Dim baza As Worksheet ' deklaracja nazwy baza
    Dim kopia As Worksheet 
    Dim ilosc_wierszy As Integer 
    Dim ilosc_kolumn As Integer
    
    Set baza = Sheets("Baza") ' przypisanie dla zmiennej baza skoroszytu "Baza"
    Set kopia = Sheets("Kopia") ' jw
    
    ilosc_wierszy = baza.UsedRange.Rows.Count ' przypisanie ilosci wierwszy dla zmiennej
    ilosc_kolumn = baza.UsedRange.Columns.Count ' jw
    
    Call kopiowanie(baza, kopia, ilosc_wierszy, ilosc_kolumn) ' wywolanie makra
    

End Sub

W komentarzach większość rzeczy została wytłumaczona, teraz wystarczy poczytać i rozszyfrować, ten program naprowadził mnie do dalszej przygody z VBA, jest czytelny i przypomina inne języki programowania.

Jeżeli podobał Ci się ten artykuł i chciałbyś kolejne, zostaw komentarz 🙂

5/5 - (1 vote)

Dodaj komentarz