PODSTAWY VBA Rinat Szepe (21.02.2013)



Podobne dokumenty
Makropolecenia w Excelu

Operacje na Wielu Arkuszach

Makropolecenia w PowerPoint Spis treści

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Nagrywanie Makr. Na karcie Dostosowywanie Wstążki zaznaczamy kartę Deweloper.

Zastanawiałeś się może, dlaczego Twój współpracownik,

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Ćwiczenie 1 Obsługa makr

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

14. TWORZENIE MAKROPOLECEŃ

Jak korzystać z Excela?

Makra VBA w Excelu dla początkujących

Rys. 1. Zestawienie rocznych kosztów ogrzewania domów

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Wprowadzenie do edycji makr w Excelu

Visual Basic w programie Excel dla Windows

Przykład 1. (Arkusz: Sortowanie 1 )

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

INSTRUKCJA OTWIERANIA PLIKU DPT (data point table)

Część I: Excel - powtórka

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

Aplikacje w środowisku VBA. Visual Basic for Aplications

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 4. Instrukcja warunkowa.

Co to jest arkusz kalkulacyjny?

Rys. 1. DuŜa liczba nazw zakresów. Rys. 2. Procedura usuwająca wszystkie nazwy w skoroszycie

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

AUTOMATYZACJA PRACY Z UŻYCIEM MAKR. Tom XII NPV WSP.KORELACJI ROZKŁ.EXP JEŻELI COS KOMÓRKA VBA DNI.ROBOCZE ILOCZYN LOG SUMA CZY.

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Zajęcia: VBA TEMAT: VBA PROCEDURY NUMERYCZNE Metoda bisekcji i metoda trapezów

BIBLIOGRAFIA W WORD 2007

Informatyka w Zarządzaniu

Kontrola poprawności danych:

Arkusz kalkulacyjny EXCEL

SPIS ILUSTRACJI, BIBLIOGRAFIA

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

VBA w Excel Lekcja ta ma przybliżyć pojęcia związane z programowaniem w pakiecie Office. Poniższe przykłady związane są z wersją Office2007.

Wprowadzenie do MS Excel

opracował: Patryk Besler

Utworzenie interfejsu graficznego za pomocą formularza użytkownika w VBA

Arkusz kalkulacyjny MS EXCEL ĆWICZENIA 4

ZASTOSOWANIE ARKUSZA KALKULACYJNEGO EXCEL DO ANALIZY ABC/XYZ

ZASTOSOWANIE ARKUSZA KALKULACYJNEGO EXCEL DO ANALIZY ABC/XYZ

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Laboratorium 6. 1 Makropolecenia wprowadzenie. 2 Formatowanie komórek. 2.1 Rejestrowanie makra. Legenda: tekst do wpisania

Moduł 1 Pliki i foldery

Trik 1 Podsumowanie kwot występujących w co drugim wierszu

FORMULARZE I FORMANTY MS EXCEL 1. TEORIA

Tworzenie prezentacji w MS PowerPoint

Rejestracja faktury VAT. Instrukcja stanowiskowa

Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p ).

Excel 2016 PL w biurze i nie tylko / Sergiusz Flanczewski. Gliwice, cop Spis treści

Maxima i Visual Basic w Excelu

VISUAL BASIC W EXCELU

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Jeżeli pole Krawędź będzie zaznaczone uzyskamy obramowanie w całej wstawianej tabeli

Część I: Przypisanie makr do obiektu (przycisku).

[WYSYŁANIE MAILI Z PROGRAMU EXCEL]

VBA praca z makrami w Excelu: piszemy kod! Ulepszamy program! 0. Parę uwag o samym edytorze

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wykonywanie działań matematycznych.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Wykład 2: Arkusz danych w programie STATISTICA

Obliczenia inżynierskie w arkuszach kalkulacyjnych

5.4. Tworzymy formularze

Edycja szablonu artykułu do czasopisma

Praktyczne wykorzystanie arkusza kalkulacyjnego w pracy nauczyciela część 1

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji liniowej, współczynnik korelacji wielorakiej

Dane w poniższej tabeli przedstawiają sprzedaż w dolarach i sztukach oraz marżę wyrażoną w dolarach dla:

Instrukcja obsługi Nowego Punktatora

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Kodu z klasą. Skarb w zatrutej wodzie, cz. 2. Scenariusz 6

Struktura dokumentu w arkuszu kalkulacyjnym MS EXCEL

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

Arkusze kalkulacyjne i VBA

Nawigacja po długim dokumencie może być męcząca, dlatego warto poznać następujące skróty klawiszowe

INSTRUKCJA UŻYTKOWNIKA PORTALU SIDGG

Dodawanie grafiki i obiektów

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Działki Przygotowanie organizacyjne

Dostosowanie szerokości kolumn

Podczas tej lekcji przyjrzymy się, jak wykonać poniższy rysunek przy pomocy programu BobCAD-CAM

Arkusz kalkulacyjny MS Excel 2010 PL.

tutaj Poniższe makro nie zadziała dla pakietu Open lub Libre Office! O co chodzi?

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

5.4. Efekty specjalne

VBA praca z makrami w Excelu

Kurs Adobe Photoshop Elements 11

Zarejestruj makro w trybie względnego adresowania które będzie wpisywało bieżącą datę w

Trik 1 Odchylenie procentowe w stosunku do minionego okresu

Dokumentacja programu. Zoz. Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ. Wersja

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Edytor tekstu MS Word podstawy

Instrukcja instalacji programu serwisowego NTSN krok po kroku

Przypisy i przypisy końcowe

Spis treści Szybki start... 4 Podstawowe informacje opis okien... 6 Tworzenie, zapisywanie oraz otwieranie pliku... 23

5.2. Pierwsze kroki z bazami danych

Transkrypt:

Programowanie w VBA pozwala stworzyć MAKRA, które automatyzują pewne procesy/zadania, które chcemy wykonać w Excelu. Szczególnie przydatne w symulacjach. 1. NAGRYWANIE MAKRA. Załóżmy, że chcemy stworzyć makro, które zaznaczoną komórkę koloruje na żółto i wpisuje w nią wartość 1. Zaczynamy od dowolnej zaznaczonej komórki: Excel 2003: Narzędzia -> Makra -> Rejestruj nowe makro Excel 2007/2010. Uruchomienie w opcjach programu Excel zakładki DEWELOPER. Następnie Rejestracja nowego makra: Po kliknięciu, pojawi się okno do opisania makra i startu rejestracji. Nazwa makra: domyślnie Makro1, Makro2, Z racji tego, że nasze makro koloruje komórkę i wpisuje 1, nazwaliśmy je kolorjeden Strona 1 z 13

Nadaliśmy również skrót klawiszowy CTRL+SHIFT+A to jest fakultatywne. Klikamy OK.. Ikonka rejestracji makra zmieniła się na: REJESTROWANIA MAKRA. Jej kliknięcie spowoduje ZATRZYMANIE UWAGA! W czasie nagrywania makra, Excel rejestruje WSZYSTKIE KLIKNIĘCIA MYSZKĄ. Należy więc uważać na to, co robimy. Rejestrujemy makro: kolorujemy komórkę na żółto i wpisujemy w nią 1. Po wciśnięciu ENTER wartość się potwierdza, podświetlona jest komórka niżej. KOŃCZYMY REJESTRACJĘ MAKRA, klikając na ikonę. 2. KONSOLA VBA Operacje, które zostały dokonane w trakcie nagrywania makra zostały spisane w postać pewnego kodu, opisującego dane procedury. Ten kod jest elementem Visual Basic for Applications. Spójrzmy teraz na nagrane makro od wewnątrz, czyli na nasz kod. Wejście do konsoli VBA dokonuje się przez wciśnięcie kombinacji ALT + F11. Zauważmy, że kolejne wciskanie Alt + F11 pozwala na szybkie przemieszczanie się pomiędzy arkuszem kalkulacyjnym a konsolą. Nagrane makro znajdziemy w menu po lewej stronie, w folderze Modules : Strona 2 z 13

Podwójne kliknięcie na Module1 wywoła w oknie po prawej stronie kolejne okienko, w którym znajdziemy kod naszego makra: Można zauważyć, że konstrukcja makr w VBA jest oparta na bardzo łatwym języku. Wystarczy podstawowa znajomość języka angielskiego, by domyślić się, która procedura oznacza jaką czynność. Zauważmy, że samo makro zawiera się pomiędzy znacznikami: Sub kolorjeden() End Sub Strona 3 z 13

Znaczniki Sub oraz End Sub wyznaczają granice makra cały kod pomiędzy nimi wykona procedury, gdy makro zostanie uruchomione. Zauważmy, że po Sub występuje wcześniej zdefiniowana nazwa makra (kolorjeden). Po nazwie makra zawsze dajemy (). Każde stworzenie nowego makra musi zacząć się od wpisania komendy: Sub nazwa_makra(). Wciśnięcie ENTER spowoduje, że konsola automatycznie zamknie nam znacznik makra i jednocześnie oddzieli nowoutworzone od wcześniej zapisanych makr w tym samym oknie Module1. WSKAZÓWKA: Kiedy w oknie Module1 jest zbyt dużo makr, możemy otworzyć nowe okno konsoli poprzez kliknięcie z paska menu: INSERT -> MODULE. Otwarcie nowego okienka nie usuwa nam danych z poprzedniego. W ten sam sposób tworzy się nowe makra od podstaw, bez wcześniejszych rejestracji. Zauważmy, że po Sub kolorjeden() znajduje się szereg zielonych komend, poprzedzonych apostrofem ( ). Znak ten stwarza komentarze w VBA. Każda komenda/zdanie poprzedzone nie zostanie wzięte pod uwagę przy uruchamianiu makra. Komentarze można dodawać w każdej wolnej linii, ale również w tej samej linii, w której jest polecenie, ale bezpośrednio po tym poleceniu. Jeżeli uważniej się przyjrzymy dalszej, zasadniczej części kodu, można zauważyć sposób konstrukcji makra i procedur, które zadaliśmy. VBA ZAWSZE ODNOSI SIĘ NAJPIERW DO PEWNYCH OBIEKTÓW. Następnie, do danego obiektu przypisuje się pewną jego cechę, którą będziemy się dalej zajmować. Wszystkie odwołania są rozdzielone KROPKAMI. Każda kropka schodzi na głębszy poziom danej procedury/cechy. W naszym przykładzie, z pomięciem struktury With / End With o której wspomniane będzie przy innych spotkaniach odniesienie jest następujące: Selection.Interior./dalsza_część_kodu/ Można zatem zauważyć, że w tym kodzie odnosimy się do AKTUALNEGO ZAZNACZENIA (Selection), a następnie do jego wnętrza (Interior). Zatem można się domyślić, że będziemy robić coś z wnętrzem danej komórki. Jedyne, co chcieliśmy zrobić, to wypełnienie jest kolorem żółtym. W całym kodzie jedynie jedna procedura kojarzyć się może z kolorem:.color=65535 gdzie ciąg tych cyfr oznacza kolor żółty. Pozostałe procedury w ramach struktury With nie wskazują na użycie koloru można zatem je usunąć. Ostateczna formuła pozwalająca na nadanie komórce koloru żółtego może przejawiać się kodem: Selection.Interior.Color=65535 Warto jednak dodać, że zamiast formuły Selection, można odnieść się do aktualnie aktywnej komórki (klikniętej, podświetlonej). Oznaczenie aktywnej komórki w VBA to ActiveCell. Wobec tego, kod może przedstawiać się następująco: ActiveCell.Interior.Color=65535 Widać również, że w dalszej części kodu pojawia się wartość 1, w części: ActiveCell.FormulaR1C1= 1 Strona 4 z 13

Generalnie rzecz biorąc, pojęcie FormulaR1C1, które jest mało intuicyjne, w przypadku konkretnych wartości lub tekstu wpisywanego w komórkę (tekst musi być objęty cudzysłowiem!) można zamienić na Value. Wobec tego, kod oznaczający wpisanie wartości 1 do aktualnie aktywnej komórki, będzie przedstawiać się następująco: Ostatnia wartość w pierwotnym kodzie (Range ) wynikła z wciśnięcia Entera po wpisaniu wartości 1. W naszym przypadku nagraliśmy makro uzupełniając komórkę B24, a ENTER spowodował przeniesienie się do B25. Należy ją usunąć. Skoro szereg wielu procedur został zastąpiony de facto zaledwie dwiema linijkami, nic nie stoi na przeszkodzie, żeby zoptymalizować nasze makro. Im mniej procedur, tym szybciej makro się wykona. Ostateczna wersja makra będzie wyglądać następująco: Sub kolorjeden() ActiveCell.Value= 1 ActiveCell.Interior.Color = 65535 ActiveCell.Value = "1" End Sub 3. URUCHAMIANIE MAKRA Przede wszystkim, możemy przejść do arkusza (alt + F11) i wciskać zadane wcześniej kombinacje: ctrl + shift + A. W innych przypadkach, można wcisnąć z poziomu konsoli przycisk: Ten sposób jednak nie pokazuje rezultatów makra trzeba przejść do Excela i tam zobaczyć, czy makro wykonało się dobrze. Inną opcją jest wcześniejsze przejście do Arkusza, a następnie wciśnięcie kombinacji ALT + F8, gdzie wybieramy z listy interesujące nas makro i je uruchamiamy: Strona 5 z 13

Jak widać, makro działa dokładnie tak samo jak wcześniej, a składa się z zaledwie dwóch linijek. 4. ODWOŁANIE SIĘ DO DANYCH KOMÓREK Podstawową czynnością w VBA jest odwołanie się do jakiegoś obiektu uzupełnienie wartością, przesunięcie o pewien wektor, itd. W Excelu podstawowym obiektem jest pojedyncza komórka, która w VBA traktowana jest jako OBSZAR/ZAKRES. To samo dotyczy zaznaczenia większej ilości komórek wszystkie są ZAKRESEM (ang. RANGE). Odwołanie się do danej komórki dokonuje się zatem przez wykorzystanie komendy Range( adres_komorki ). Przykładowo, chcielibyśmy komórkę B13 uzupełnić jakimś tekstem, np. to jest komórka B13. Kod będzie przedstawiał się następująco: lub w skróconej wersji: Range( B13 ).Value= to jest komórka B13 Range( B13 )= to jest komórka B13 W ten sam sposób można odwołać się do dowolnej komórki lub zakresu komórek (od D2 do E5): Range( D2:E5 )= tekst Należy pamiętać, że kody te powinny być objęte znacznikami Sub nazwa_makra() / End Sub 5. CZYSZCZENIE ARKUSZA Oczywiście, czyszczenie arkusza można dokonać poprzez zaznaczenie wszystkiego i wyczyszczenie wszystkich elementów (alt -> g -> 8 -> w). VBA jednak w bardzo prosty sposób pozwoli na zrobienie przycisku, który będzie czyścił arkusz. Czyszczenie arkusza odbywa się dzięki jednej linijce i dwóm słowom. Najpierw należy zaznaczyć cały arkusz (innymi słowy, odnieść się do wszystkich komórek). W VBA pozwala na to komenda Cells (czyli dosłownie komórki wszystkie komórki). Czyszczenie arkusza wywołuje procedura Clear. Tak więc, czyszczenie całego arkusza to makro (o nazwie czysc ): Sub czysc() Cells.Clear End Sub Proponuję dodać przycisk, który pozwoli poprzez jedno kliknięcie wywołać to makro. Przyciski i inne formanty (np. paski przewijania, rozwijane listy itd.) dodaje się poprzez (w Excel 2007/2010): Deweloper -> Wstaw: Strona 6 z 13

Wybór pierwszej opcji pozwoli na narysowanie w arkuszu przycisku. Po narysowaniu, od razu pojawi się okno z prośbą o przypisane makra. Wybieramy odpowiednie i akceptujemy: W arkuszu pojawi się przycisk (któremu można zmienić nazwę), po wciśnięciu którego arkusz zostanie wyczyszczony: Strona 7 z 13

Po aktywacji makra: Strona 8 z 13

6. PRZESUNIĘCIE OBSZARU / ODNIESIENIE SIĘ DO KOMÓRKI ZNAJDUJĄCEJ SIĘ W JAKIEJŚ ODLEGLOŚCI OD INNEJ KOMORKI. Poniższe funkcje mają istotne znaczenie dla symulacji i modelowania finansowego. W punkcie ósmym będzie pokazany przykład wykorzystania. W VBA można odnieść się do danej komórki (przesunąć o wektor) na kilka różnych sposobów. Najbardziej charakterystyczne to: Offset[rowindex, colindex] oraz Cells[rowindex, colindex]. Istotną różnicą jest to, że OFFSET przenosi daną komórkę o wektor o współrzędnych rowindex oraz colindex. Przykładowo, Offset(2,3) przenosi pewną komórkę o dwie komórki w dół oraz trzy komórki w prawi (liczby dodatnie oznaczają poruszanie się do końca arkusza, wraz z przyrostem numeru wiersza i indeksu kolumny). Offset(-1,-3) pozwala na odniesienie się do komórki znajdującej się o jeden wiersz wyżej i 3 kolumny w lewo od danej komórki. Funkcja Cells z kolei, odnosi się do komórki, znajdującej się w danym wierszu i w danej kolumnie (jak w macierzy). Przykładowo, jeżeli zaznaczyliśmy obszar A1:B3 (6 komórek), to Cells(2,1) to komórka A2, a cells (3,2) to B3: UWAGA w Cells nie występują indeksy ujemne, zatem nie można poruszać się w górę i w lewo Powiedzmy, że chcemy teraz, aby w komórce D7 pojawił się tekst komórka D7, a następnie chcemy w komórce F13 wpisać wartość wynik. Można zrobić to na dwa sposoby. Pierwszy, to offset. F13 powstaje poprzez przesinięcie D7 o 6 wierszy w dół oraz 2 kolumny w prawo. Zatem kod w VBA będzie wyglądał następująco (z komentarzami w VBA): Sub offset() Range( D7 )= to jest komórka D7 Range( D7 ).Offset(6,2).Value= wynik End Sub Kod jest bardzo przejrzysty. Pierwsza linijka w komórce D7 wpisuje tekst to jest komórka D7. W drugiej linijce mamy kod, który najpierw wyszukuje komórkę D7, następnie przenosi się o 6 komórek w dół i 2 w prawo (F13) i uzupełnia tą komórkę tekstem wynik. Screen: Strona 9 z 13

Podobnie będzie przedstawiać się użycie Cells, ale pamietając, że D7 to pierwszy wiersz i pierwsza kolumna w danym zakresie. F13 to będzie 7 wiersz i 3 kolumna: Sub offset() Range( D7 )= to jest komórka D7 Range( D7 ).Cells(7,3).Value= tekst_cells End Sub Strona 10 z 13

7. ZASADNICZE ELEMENTY KODU VBA Najważniejszy, to już wcześniej wspomniane ramy makra: Sub / End Sub W makrach często jednak możemy oznaczać pewne elementy i obiekty poprzez nazwy, albo określonym nazwom przyporządkować ich działanie/rodzaj zmiennej. Dokonuje się to poprzez wpisanie: Dim nazwa_zmiennej As rodzaj_zmiennej Przykładowo, chcieliśmy operować w symulacji na liczbach naturalnych (ang. Integer) Zatem ustalenie jakiejś zmiennej (np. i lub n ) jako liczby naturalnej dokonuje się poprzez kod: Dim i As Integer Dim n As Integer Podobnie możemy sobie określoną komórkę oznaczyć inną nazwą, żeby nie pisać za każdym razem Range( adres ).. Komórka jest obiektem typu Range (obszar): Dim rng_komorka As Range Możemy danej nazwie, kiedy została zdefiniowana, przyporządkować obiekt, który nas interesuje. Dokonuje się to poprzez polecenie Set nazwa_obiektu= Powiedzmy, że chcemy, aby nasza nazwa rng_komorka oznaczała komórkę B2. Po wszystkich procedurach Dim, wpisujemy kod: Set rng_komorka=range( B2 ) Od tego momentu, gdziekolwiek nie posłużymy się kodem rng_komorka, będzie to oznaczać ZAWSZE komórkę B2. 8. PROSTA PĘTLA WYPEŁNIAJĄCA KOMÓRKI Powiedzmy, że chcemy wypełnić 10 kolejnych komórek w jednej kolumnie liczbami 1-10, poczynając od komórki C3. Należy najpierw zdefiniować zmienne. Pętle ZAWSZE działają poprzez zmianę pewnej zmiennej w pewnym zakresie (np. i od 1 do 10). Kod takiej pętli będzie przedstawiać się następująco: Strona 11 z 13

Sub petla() Dim i As Integer Dim n As Integer Dim rng_komorka As Range Set rng_komorka=range( C3 ) n=10 For i=1 to n rng_komorka.cells(i,1)=i Next i End Sub Co znajduje się w powyższym kodzie? Pierwsze trzy linijki to ustalenie zmiennych i, n jako liczby naturalne, oraz rng_komorka jako obiekt typu Range (obszar, zakres). W czwartej linijce zdefiniowaliśmy, że dalej rng_komorka będzie oznaczać komórkę C3 (odwołanie zgodne z punktem 4. tego opracowania). Następnie, konstrukcja n=10 oznacza, że naszej zmiennej n (jako liczbie naturalnej) przyporządkowaliśmy liczbę 10, więc za każdym razem, jak w kodzie użyjemy n, będziemy mieć na myśli 10. W tym miejscu możemy edytować ile chcemy wypełnić elementów (5,10,100,100 000?) Następnie mamy pierwszą podstawową konstrukcję pętli w VBA: For zmienna= to [kod] Next zmienna Istotą tej pętli jest to, że początek wyznacza zakres zmiany zmiennej. W przypadku makra powyżej, zmienna to i i ona zmienia się od 1 do 10 (bo n=10). Jeżeli zdefiniowaliśmy zmienną o innej nazwie (np. t ), to konstrukcja pętli będzie: For t=1 to n / / Next t. Wszystko, co znajduje się pomiędzy znacznikami pętli będzie się wykonywać tak długo, aż i przejdzie od 1 do 10 po kolejnych liczbach naturalnych, czyli 1,2,3,4,,9,10. Next i powoduje powrót do początku pętli. Wewnątrz pętli mamy procedurę: rng_komorka.cells(i,1)=i. Co oznacza ten kod? Zależy od i. Najpierw pętla zaczyna się od i=1, zatem formuła w pętli wygląda tak: rng_komorka.cells(1,1)=1. Oznacza to nic innego, jak komórkę C3, w którą wpisuje się wartość 1. (Bo Cells odnosi się do pierwszego elementu w tablicy, którym jest tutaj C3!). W kolejnym kroku i=2, zatem mamy formulę: rng_komorka.cells(2,1)=2, zatem w stosunku do komórki C3 (oznaczonej jako rng_komorka ) przenosimy się do drugiego rzędu (C4) i tam wpisywana jest wartość 2. Analogicznie mamy Cells(3,1)=3, Cells(4,1)=4, itd. aż do Strona 12 z 13

rng_komorka.cells(10,1)=10, czyli dziesiąta komórka w danej kolumnie (od C3) będzie mieć wartość 10. Jeżeli chcielibyśmy, aby liczby zmieniały się nie w rzędach, a po kolumnach, to wystarczy indeksy w Cells zamienić miejscami. Wtedy zmienny będzie indeks kolumny, a nie wiersza: rng_komorka.cells(1,i)=i Co więcej, w VBA można dokonywać podstawowych działań matematycznych typu dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie. Przykładowo, jeżeli damy funkcję: rng_komorka.cells(i,i)=i^2 to arkusz zostanie wypełniony od komórki C3, po przekątnej, wartościami kwadratów kolejnych liczb naturalnych: 1,4,9,,81,100. Strona 13 z 13