VBA w Excelu10, excel


VBA w Excelu - kurs dla początkujących

0x01 graphic
Instrukcja For... Next

Pętla For... Next powtarza blok instrukcji określoną liczbę razy, stosujemy ją jeżeli z góry wiadomo ile razy pętla ma być wykonana. Podstawowa składnia pętli For... Next jest następująca.

0x01 graphic

Składnia:

For Licznik = Początek To Koniec Step Krok
 [blok instrukcji]
Next Licznik

0x01 graphic

Objaśnienie:

  • For - słowo kluczowe reprezentujące początek pętli.

  • Licznik - zmienna numeryczna, która pełni rolę licznika pętli.

  • Początek - jest to wartość początkowa licznika pętli.

  • To - słowo kluczowe separujące wartość początkową licznika od wartości końcowej licznika pętli.

  • Koniec - wartość końcowa licznika, liczba na której pętla się zatrzymuje.

  • Step - opcjonalne słowo kluczowe sygnalizujące istnienie Kroku.

  • Krok - element nieobowiązkowy, jest to wielkość o jaką zwiększany jest licznik przy każdym wykonaniu pętli. Jeśli wielkość ta nie jest podana przyjmuje się Krok równy 1.

  • Next - słowo kluczowe będące swego rodzaju nawiasem zamykającym pętle.

0x01 graphic

Informacje dodatkowe:

  • Krok (czyli wielkość o jaką zwiększany jest licznik przy każdym wykonaniu pętli) może być wartością dodatnią lub ujemną. Gdy Krok jest wartością ujemną to wartość początkowa licznika (Początek), powinna być większa od wartości końcowej licznika (Koniec).

  • Inną możliwością zakończenia wykonywania pętli jest umieszczenie w niej instrukcji Exit For. Instrukcja Exit For występuje przeważnie po sprawdzeniu pewnego warunku, np. w instrukcji If Then Else.

  • Pętle For... Next mogą być zagnieżdżane przez umieszczenie jednej pętli wewnątrz drugiej.

0x01 graphic

Przykład kod przykładu:

Sub PrzykładPętli()
 
Dim kolumna As Integer
 
For kolumna = 1 To 10
  Cells(1, kolumna) = kolumna
 
Next kolumna
End Sub

0x01 graphic

Przykład opis przykładu:

W przykładzie wstawiane są wartości liczbowe od 1 do 10 do komórek arkusza, odpowiednio od A1 do A10. Kod przykładu jest krótki jest to jedna z zalet pętli, które pozwalają wykonywać te same operacje wielokrotnie. W naszym przypadku zamiast oddzielnie określać wartość dla poszczególnych komórek tworzymy pętlę, która wstawia po kolei wartości do tych komórek. Poniżej przedstawiam opis poszczególnych linii kodu z przykładu.

  • Sub PrzykładPętli() - w tej linii kodu deklarujemy procedurę, w której Sub to słowo kluczowe Visual Basic określające, że dany blok to procedura. PrzykładPętli jest to nazwa naszej procedury. Procedura ta będzie wykonywana i instrukcje zawarte poniżej aż do słów End Sub, które wskazują koniec bloku kodu.

  • Dim kolumna As Integer - za pomocą instrukcji Dim deklarujemy zmienną o nazwie kolumna typu Integer. Zmienna ta w naszym przypadku będzie przechowywała wartości licznika pętli. Temat deklarowania zmiennych oraz typy danych opiszę w dalszej części kursu.

  • For kolumna = 1 To 10 - dalej występuje nasza właściwa pętla, w której wyraz kolumna jest to zmienna numeryczna pełniąca rolę licznika pętli. Przy pierwszym wykonaniu pętli wartość zmiennej kolumna równa się 1. Ponieważ nie określiliśmy wartości kroku pętli, przyjmowana jest wartość domyślna 1, czyli zmienna kolumna zwiększana jest o wartość 1 przy każdym wykonaniu pętli. Pętla jest wykonywana ostatni raz gdy wartość tej zmiennej osiągnie 10.

  • Cells(1, kolumna) = kolumna - jak już wspomniałem zmienna kolumna przybiera wartości numeryczne od 1 do 10 i pełni role licznika pętli, jak można zauważyć zmienną tą (jej wartości) wykorzystaliśmy jeszcze w tej linii kodu. W opisywanej linii właściwość Cells określa adres komórki i posiada dwa argumenty pierwszy określa numer wiersza, w którym znajduje się komórka a drugi numer kolumny. W naszym przypadku jest to pierwszy wiersz arkusza (pozostaje on niezmienny), numer kolumny zaś określany jest przez zmienną kolumna i jak wiemy przy każdym wykonaniu pętli jest inny. W tej linii kodu określamy adres komórki, jednocześnie też określamy wartość komórki o podanym adresie. Wartość określonej komórki jest to wartość reprezentowana przez aktualną wartość zmiennej kolumna. A tak po prostu przy pierwszym wykonaniu pętli do komórki A1 wstawiana jest liczba 1 przy drugim do komórki A2 stawiana jest wartość 2 i analogicznie dalej aż do komórki A10 arkusza.

  • Next kolumna - zamykamy i wychodzimy z pętli. W instrukcji tej nazwa licznika (kolumna) nie jest wymagana, jednak dzięki podaniu nazwy licznika w instrukcji kończącej pętle staje się ona bardziej czytelna.

0x01 graphic

Przykład informacje dodatkowe:

Zmienna kolumna w naszym przykładzie przybiera wartości liczbowe od 1 do 10 i jednocześnie spełnia trzy zadania.

  • pełni rolę licznika pętli.

  • określa numer kolumny, w którym znajduje się komórka.

  • określa wartość tej komórki.

0x01 graphic

Aby przetestować przykład wykonaj następujące czynności:

  • Uruchom Microsoft Excel.

  • Z menu Widok wybieramy Paski narzędzi a następnie opcje Visual Basic, (jeżeli pasek nie jest widoczny).

  • Z paska narzędzi Visual Basic wybieramy przycisk Edytor Visual Basic.

  • W nowo otwartym oknie Microsoft Visual Basic-Zeszyt1 z menu View (Widok) wybieramy opcję ProjectExplorer (Eksploator projektu). Powinno się otworzyć okno Project-VBAProject (Projekt-VBAProject) oczywiście punktu tego nie wykonujemy, jeżeli okienko było wcześniej otwarte.

  • Następnie z menu Insert (Wstaw) wybieramy opcję Module (Moduł). Wstawiony obiekt Module1 (Moduł1) powinien się pojawić oknie Project-VBAProject. Powinno się też pojawić okno Zeszyt1-Module1(Code) (Zeszyt1-Moduł1(Kod programu)). Jeżeli okno się nie pojawi aby je uaktywnić w oknie Project-VBAProject klikamy dwa razy lewym przyciskiem myszy na obiekt Module1 (Moduł1).

  • W nowo otwartym oknie Zeszyt1-Module1(Code) (Zeszyt1-Moduł1(Kod programu)) piszemy (wstawiamy) kod z przykładu.

  • Zamykamy Edytor VisualBasic (Alt+Q) i powracamy do Microsoft Excel.

Nasz kod możemy uruchomić na różne sposoby, ja wykorzystałem przycisk z paska narzędzi Formularze. Aby tego dokonać wykonaj następujące czynności.

  • Z menu Widok dokumentu Excela wybieramy Paski narzędzi a następnie opcję Formularze.

  • Z paska narzędzi Formularze wybieramy ikonę Przycisk a następnie miejsce w arkuszu gdzie chcemy go umieścić.

  • Powinno się otworzyć okno Przypisz makro, (jeżeli okno się nie otworzy klikamy prawym przyciskiem myszy na nasz wstawiony przycisk i wybieramy opcję Przypisz makro...). W oknie tym zaznaczamy PrzykładPętli i klikamy przycisk OK.

  • Kliknij na jakieś miejsce w arkuszu (celem zlikwidowania zaznaczenia przycisku) a następnie na przycisk (Przycisk 1) i przetestuj działanie przykładu.

  • Celem ponownego przetestowania przykładu wyczyść zawartość komórek od A1 do A10 arkusza i ponownie kliknij na przycisk.

0x01 graphic

0x01 graphic
Dla dociekliwych:

Dla dociekliwych przedstawiam kod przykładu, w którym tworzymy "tabliczkę mnożenia". Przy okazji chciałbym pokazać jak można zagnieżdżać pętle, czyli umieszczać jedną w drugiej. Dla celów wizualnych zmieniamy kolor zakresu komórek od A1 do J10 i od A2 do A10 na szary. Aby przetestować przykład wykonaj kroki jak w przykładzie opisanym wyżej.

Sub PrzykładPętli()
 
Dim wiersz, kolumna As Integer
  Range("A1", "J1").Interior.ColorIndex = 15
  Range("A2", "A10").Interior.ColorIndex = 15
 
For wiersz = 1 To 10
  
For kolumna = 1 To 10
   Cells(wiersz, kolumna) = wiersz * kolumna
  
Next kolumna
 
Next wiersz
End Sub

0x01 graphic

Słownictwo:

  • argument - dane dostarczające informacji dla akcji, zdarzenia, metody, właściwości lub procedury. Argument może być stałą, zmienną lub jakimś wyrażeniem.



Wyszukiwarka

Podobne podstrony:
VBA w Excelu, excel
VBA w Excel7, excel
VBA w Exce13, excel
VBA w Exce18, excel
VBA w Exce21, excel
VBA w Exce17, excel
VBA w Excel3, excel
Niestandardowe sortowanie danych w Excelu, excel
VBA w Exce14, excel
VBA w Exce16, excel
VBA w Exce11, excel
VBA w Excel4, excel
VBA w Excel1, excel
Szybkie wypełnienia dużych zestawień w Excelu, excel
VBA w Excel5, excel
VBA w Exce15, excel
VBA w Exce12, excel
VBA w Exce23, excel
VBA w Exce25, excel

więcej podobnych podstron