Wprowadzenie do edycji makr w Excelu



Podobne dokumenty
Wprowadzenie do edycji makr w Excelu

Makropolecenia w Excelu

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

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

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

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

Makropolecenia w PowerPoint Spis treści

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.

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

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

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

PODSTAWY VBA Rinat Szepe ( )

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

Ćwiczenie 1 Obsługa makr

[WYSYŁANIE MAILI Z PROGRAMU EXCEL]

Aplikacje w środowisku VBA. Visual Basic for Aplications

Makra VBA w Excelu dla początkujących

Visual Basic w programie Excel dla Windows

Edytor tekstu MS Word podstawy

Visual Basic for Applications. Wstęp

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

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

LibreOffice Calc VBA

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Operacje na Wielu Arkuszach

edycja szablonu za pomocą serwisu allegro.pl

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

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

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

5.2. Pierwsze kroki z bazami danych

8. Generowanie raportów

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

5. Kliknij teraz na ten prostokąt. Powinieneś w jego miejsce otrzymać napis. Jednocześnie została wywołana kolejna pozycja menu.

Formuły formułom funkcji adresowania odwoływania nazwy Funkcja SUMA argumentami SUMA

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

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

VBA praca z makrami w Excelu

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

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

Kontrola poprawności danych:

Należy uruchomid program: Start-Wszystkie programy- Microsoft Office- Microsoft Office Access 2007

edycja szablonu za pomocą programu NVU

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

SIMULINK 2. Lekcja tworzenia czytelnych modeli

Przedmiot: Informatyka w inżynierii produkcji Forma: Laboratorium Temat: Zadanie 5. MessageBox, InputBox, instrukcja Select Case i instrukcje pętli.

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

VBA-podstawy cz. 1. Począwszy od wersji Office 2010 skoroszyty Excel wsparte makrami VB mają rozszerzenie.xlsm

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

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

Część I: Excel - powtórka

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

5.4. Tworzymy formularze

Tworzenie makr warunkowych

BAZY DANYCH Panel sterujący

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

EXCEL. Diagramy i wykresy w arkuszu lekcja numer 6. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 20

UONET+ moduł Dziennik

Instrukcja konfiguracji

a) Data spaceru psa z listy moich psów... 4 b) Data spaceru psa z poza mojej listy (np. wyprowadzonego na prośbę/w zastępstwie itp.)...

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

INSTRUKCJA OTWIERANIA PLIKU DPT (data point table)

Ćwiczenie 5 Menu programu

Szybka instrukcja tworzenia testów dla E-SPRAWDZIAN-2 programem e_kreator_2

Instrukcja szybkiej obsługi

1. Instalacja Programu

Temat: Organizacja skoroszytów i arkuszy

Rejestracja faktury VAT. Instrukcja stanowiskowa

Dlaczego stosujemy edytory tekstu?

Stosowanie, tworzenie i modyfikowanie stylów.

Informatyka II. Laboratorium Aplikacja okienkowa

Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Diagnozy rozszerzonej

14. TWORZENIE MAKROPOLECEŃ

Przenoszenie, kopiowanie formuł

Lekcja 5 - PROGRAMOWANIE NOWICJUSZ

Rys. 1. Aktywne linki będą wstawiane za pomocą rozwijanej listy

Teraz przechodzimy do zakładki Zarządzanie kolorami.

UONET+ moduł Dziennik

Najpierw należy sprawdzić parametry rozliczenia urlopu - zakładka -Firma

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

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

Przewodnik Szybki start

INSTRUKCJA KORZYSTANIA Z PLIKU KOSZTORYSU PRODUKCJI FILMU FABULARNEGO

INSTRUKCJA KORZYSTANIA Z PLIKU KOSZTORYSU PRODUKCJI FILMU FABULARNEGO. Ten sam plik jest zoptymalizowany do pracy w obu systemach operacyjnych.

Trik 1 Odchylenie procentowe w stosunku do minionego okresu

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

Moduł 1 Pliki i foldery

Rys.1. Technika zestawiania części za pomocą polecenia WSTAWIAJĄCE (insert)

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

Użycie Visual Basic for Applications ("VBA")

Instalacja i obsługa aplikacji MAC Diagnoza EW

Damian Daszkiewicz Tworzenie strony-wizytówki dla firmy XYZ

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Makra w arkuszu kalkulacyjnym

Kadry Optivum, Płace Optivum

Formularze w programie Word

Transkrypt:

Wprowadzenie do edycji makr w Excelu Zakładam, że chod teoretycznie wiesz coś na temat programowania. Dobrze by było, gdybyś w tej chwili miał otwartego Excela. Będę omawiał pewne rzeczy, które mógłbyś testowad od razu. Jeśli znasz VBA to nie czytaj. To będą podstawy podstaw. Poczekaj lepiej na kolejne części. Zakładam, że masz otwarty edytor VBA. Jeśli nie, to wciśnij proszę w Excelu ALT+ f11 ten skrót nie zmienił się na szczęście w Excelu 2007. Makra można wpisywad w kilku miejscach(o tym kiedy indziej). Nagrywanie makra powoduje automatyczne dodanie nowego modułu. My dodamy go ręcznie poprzez wybór w menu edytora INSERT->MODULE Nagrałem przykładowe makro, żebyśmy mieli co omawiad. Oto jego wynik, który możesz wkleid do edytora : Sub Makro1() ' ' Makro1 Makro ' ' ActiveCell.value = "ala ma kota" Range("A1").Select Selection.Copy Range("H12").Select ActiveSheet.Paste Rows("11:11").Select Selection.EntireRow.Hidden = True Columns("B:B").Select Selection.FormulaR1C1 = "1" Sheets.Add After:=Sheets(Sheets.Count) Po wciśnięciu klawisza f8 kolejne kroki są wykonywane pojedynczo. Excel dopuszcza edytowanie makra w pewnym zakresie pomiędzy wciśnięciami f8. Możesz także ustawiad znacznik wykonywania w dowolnym punkcie programu, pomijad jego części, lub powracad do wcześniejszych fragmentów. Jest więcej opcji, ale nie zdążę wszystkich przedstawid. Takie makro możemy w prawdzie wykorzystad, ale nie przyda nam się na wiele. Ktoś otworzy ważny plik, zobaczy, że jest makro o nic nie mówiącym tytule, odpali je i zniszczy ważne dane ( dobrze, że makro nie zapisuje pliku ). Zaczniemy więc od nazwy. Sub - określa nam jedną procedurę makro, czyli listę poleceo do wykonania. Taki blok kooczy się słowami end sub Nazwy w VBA mogą składad się z liter, cyfr i podkreślników, jednak zaczynad mogą się tylko od liter. To, co jest w nawiasach to parametry- na chwilę to zostawimy. Powiem tylko, że jeśli są jakieś parametry, to makro nie będzie widoczne w liście makr(ale nie tylko wtedy). Zmieo nazwę makra

W kolejnych kilku linijkach są komentarze. Wszystko w linijce po znaku jest komentarzem. W tym wypadku warto by było wpisad po nazwie makra krótki jego opis. VBA nie posiada czegoś takiego jak komentarze blokowe. Oznacza to,że jeśli chcesz pisad komentarz w kilku linijkach na początku każdej będziesz musiał dodad znak apostrofu. Zanim przejdziemy dalej, chciałbym zwrócid Twoją uwagę na drugie użycie komentarzy. W mojej pracy bywa tak, że muszę na chwilkę wyłączyd częśd działającego kodu. Ponieważ nie mam do dyspozycji komentarzy blokowych, muszę wstawid na początku każdej linijki, którą chcę chwilowo wyłączyd apostrof. Mógłbym robid to ręcznie, ale edytor może zrobid to za nas. Klikamy więc VIEV-> TOOLBARS->EDIT. Pasek,który się pojawił powinien byd, moim zdaniem, domyślnie włączony. Na początku mojej pracy z Excelem wstawiałem apostrofy ręcznie, co było uciążliwe. Na pasku masz przycisk Comment Block, z pomocą którego możesz zakomentowad zaznaczony fragment kodu. Przyjrzymy się pierwszej linijce z kodem. Jest to : ActiveCell.value = "ala ma kota" Oznacza to tyle co ustaw wartośd w aktywnej komórce na słowa Ala ma kota Jeśli znasz język angielski, czytanie kodu prostych makr powinno byd dla ciebie dośd łatwe. ActiveCell to aktywna komórka. Jeśli odpalisz makro, zdanie Ala ma kota pojawi się zawsze w komórce, którą miałeś zaznaczoną. Możesz to przetestowad. Do składowych obiektu, czy to składnika ( czyli zmiennej ), czy metody (czyli funkcji składowej) odwołujemy się za pomocą kropki. Jeśli wydało ci się to skomplikowane, to pomyśl po prostu, że jeśli chcesz coś zrobid z obiektem to używasz do tego kropki. W kolejnych wierszach także widzimy użycie kropki, czyli robimy coś na obiektach: Range("A1").Select zakres A1 zaznacz Selection.Copy Zaznaczenie skopiuj Range("H12").Select zakres h12 zaznacz ActiveSheet.Paste W aktywnym arkuszu wklej ( po prostu wklej tu gdzie jesteś ) Rows("11:11").Select zaznacz rzędy od 11 do 11 Selection.EntireRow.Hidden = True W zaznaczeniu,wybierz wszystkie rzędy i ustaw wartośd ukryte na prawda. '.. I tak dalej. Nawet jeśli nie rozumiesz wszystkiego, nie przejmuj się. Gdyby nauka przychodziła nam bez trudu, to pewnie wszyscy kochalibyśmy szkołę i byli geniuszami. Korzystaj z dostępnej w edytorze pomocy, jest dobrze napisana, chod na początku może sprawiad spore problemy. Po pewnym czasie powinieneś z łatwością odnajdywad to, czego szukasz i będziesz rozumiał skomplikowane na pierwszy rzut oka podpowiedzi.

Wródmy jednak do naszego makra. Nagrywając je chciałem ułatwid sobie wpisywanie tekstu w pierwszych dziesięciu polach ( od A1 do A10). Niestety, ponieważ jestem nie doświadczony, po drodze wykonałem sporo różnych zbędnych operacji, a makro nie robi tego, co chciałem. Niestety często tak bywa. Jesteśmy zmuszeni do edytowania makra, i do wyciągnięcia z tego co się nagrało, tylko tego co jest nam potrzebne. Analizując jeszcze raz kod, doszedłem do wniosku, że większośd linijek jest zbędna i robią tylko bałagan. Skasowad musiałem wszystko, oprócz pierwszej linijki, a i ta nie działa prawidłowo. Nie oznacza to, że niczego się nie nauczyłem. Poznałem podstawowe obiekty, takie jak: Range Zakres Sheet Lista Arkuszy ActiveSheet Aktywny Arkusz Selection zaznaczenie Columns kolumny Ta wiedza przyda nam się w kolejnych makrach. Nagrywanie makr to dobry sposób nauki. Widzimy co krok po kroku zrobił program. Trzeba jednak byd bardzo ostrożnym, żeby nie nagrywad niepotrzebnych rzeczy i nie zaciemniad sobie kodu. Chciałem mied w polach a1 do a10 napis Ala ma kota. Została mi tylko linijka : ActiveCell.value = "ala ma kota" No i co? Będę zaznaczał kolejne komórki i uruchamiał makro? To ja dziękuję za taką pomoc! Przypadek, który omawiamy jest trywialny i szybciej wykonalibyśmy go na piechotę (np. zaznaczając komórki, wpisując Ala ma kota i wciskając ctlr+enter), ale na razie się uczymy. Najkrótszy kod, którym moglibyśmy rozwiązad ten problem to : Range( a1:a10 ).value = Ala ma kota Przetestuj. Czy to działa? Jest sukces! To co? Kooczymy? O nie! Pomęczę was jeszcze. Nagle zachciało mi się, żeby w kolejnych linijkach wpisana była liczba przed zdaniem, i żeby te liczby były 2 razy większe niż numer wiersza. Będziemy musieli zmodyfikowad nasze makro. Masz już podstawową umiejętnośd edycji makr. Wiesz, że z obiektami możesz robid różne rzeczy. Im więcej będziesz poznawał obiektów, tym więcej rzeczy będziesz w stanie wykonad. Czego nam brakuje? Zmiennych, pętli i instrukcji warunkowych. W tak krótkim tekście nie poznamy wszystkiego, ale chcąc zarazid cię tematem pokażę wykorzystanie jednej pętli i jednej tylko zmiennej. Orientujesz się pewnie, co to są zmienne. Wiesz coś o typach zmiennych, albo o deklaracji zmiennych? Jeśli nie, to na razie nie szkodzi. Chod dobrą praktyką jest deklarowanie zmiennych ( moim zdaniem), to w VBA nie musisz tego robid. Nie musisz też definiowad ich typu (chod to

pomaga przy obiektach ). Co to oznacza? Że jeśli chcesz użyd zmiennej to po prostu jej używasz. Przykład: X = 2 Takiej zmiennej możesz użyd jako tekstu, lub jako liczby ( ma typ variant) Modyfikowad zmienne możesz w ten sam sposób X= X+1 Czyli jeśli x= 1 to po wykonani tej linijki x będzie wynosid 2 Żeby rozwiązad nasz problem będę musiał zrobid coś takiego: Licząc od jednego do dziesięciu wpisuj w kolejne wiersze numer liczby pomnożony przez 2 i Ala ma kota Wykorzystamy pętlę for For to taka pętla, którą przetłumaczyłbym jako: Dla zmiennych, od pewnej wartości do kolejnej, wykonaj zadane polecenia. To niefortunne tłumaczenie, dla mnie jednak prościej wygląda w kodzie. Na przykład : For x = 1 to 10 Tu będą instrukcje Next x Taka pętle zaczyanmy od słowa for, poźniej "mówimy" komputerowi od ilu do ilu ma liczyd, a następnie pokazujemy mu, gdzie kooczą się instrukcje które ma wykonad ( next x) Czyli komputer policzy od 1 do 10 i wykona tyle razy to co jest w środku. Tego potrzebujemy! Pozostaje nam wydrukowad wartości. Po wstawieniu naszego kodu drukującego mamy takie coś: For x = 1 to 10 ActiveCell.value = "ala ma kota" Next x Jak dodad do tego numer wiersza razy 2? Wszystkie teksty w VBA łączymy za pomocą znaku & (pamiętamy o dodaniu spacji ). Czyli nasz kod mógłby wyglądad tak: ActiveCell.value = x & " ala ma kota" wydrukuj x i spację i Ala ma kota Wystarczy, że pomnożymy x*2 i będziemy mięli to, o co nam chodziło:

ActiveCell.value = x *2 & " ala ma kota" wydrukuj x*2 i spację i Ala ma kota * to jest nie eleganckie rozwiązanie+ Jeśli puścisz makro instrukcja po instrukcji (F8), zauważysz, że makro drukuje 10 razy tekst w pierwszej linijce. Brakuje nam przejścia do kolejnej linijki. Przy pierwszym podejściu zrealizujemy to za pomocą metody offset. Offset to taka funkcja, która wskazuje na komórkę przesuniętą, o pewną liczbę komórek w danym kierunku. Przykład zilustruje to lepiej. selection.offset(0,1).select zaznaczy komórkę w prawo o jeden od zaznaczonej. Pierwsza liczba przesuwa w dół, druga w lewo. ( w górę i w prawo można przesuwad wpisując liczby ujemne) My chcemy komórkę w dół więc nasz kod będzie wyglądał tak: For x = 1 to 10 ActiveCell.value = x *2 & " ala ma kota" selection.offset(1,0).select Next x Działa! Tyle,że jeśli przed uruchomieniem, zaznaczę inną komórkę niż a1, to znów mam błąd. Mógłbym zaznaczyd za pomocą makra a1, ale wolałbym inaczej wskazywad na komórki. Pomoże nam słowo cells ( komórki ). Cells wskazuje na komórkę, na podstawie liczb. Na przykład cells(1,1) wskazuje na a1, a cells(1,2) na b1. Już wiesz jak będzie wyglądał nasz finalny kod? Spróbuj napisad go samemu. Jeśli udało Ci się napisad samemu to super powinno to wyglądad mniej więcej tak : For x = 1 to 10 Cells(x,1) = x *2 & " ala ma kota" Next x Każdy z nas powinien dbad o formę. W natłoku zdarzeo czasem trudno jest nam na to znaleźd czas, ale warto się starad. Dziś porozmawiamy o formach i zdarzeniach w VBA. Zapraszam do czwartej i ostatniej części trylogii o makrach w Excelu ;)

Wcześniej napisaliśmy prostą funkcję tworzącą log wejśd na nasz nowy raport. Nie wiem,czy pamiętasz, ale umieściliśmy ją w module Ten_skoroszyt, w makrze Workbook_Open(). Makro Workbook_Open odpowiada za obsługę otwierania skoroszytu. Zobaczmy zatem edytor makr i sprawdźmy, na jakie inne zdarzenia możemy zareagowad. W oknie eksploratora Projektu VBA, klikamy podwójnie na obiekt "ten_skoroszyt" i zmieniamy (general) na workbook w polu wyboru. Po prawej mamy listę dostępnych opcji. Aby obsłużyd jakieś zdarzenie wybieramy je z listy, a następnie wpisujemy nasz kod w wygenerowany szkielet makra. W liście dla zeszytu mamy np. makro before save ( przed zapisem ) Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) zwród uwagę na parametry makra SaveAsUI mówi nam czy zostanie wyświetlone okno zapisz jako,a Cancel mówi nam czy zapisywanie zostanie anulowane. Zapewne dostrzegłeś także słowo BYVAL, oznacza ono, że zmienna SaveASUI została przekazana przez wartośd i jej ewentualna zmiana na nic nie wpłynie(zagadnienie przekazywania zmiennych do funkcji wykracza poza ten wpis. Obiecałem się streszczad :) ) Cancel nie ma takiego przedrostka i możemy zmienid jego wartośd. Zróbmy to! Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) cancel = true i zapiszmy naszą pracę... ups. Nie da się! Przed zapisaniem do programu zostaje przekazana wartośd zmiennej Cancel(anuluj) i zapis zostaje anulowany. My powinniśmy móc dokonad zmian, sprawmy więc, żeby nikt, poza naszym użytkownikiem, nie mógł zapisad tego pliku. Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If Not Application.UserName = "molexor" Then ' wpisz własny username Cancel = True End If teraz żaden użytkownik nie zapisze tego pliku ( chyba że wyłączy obsługę makr). Poeksperymentuj troszkę ze zdarzeniami, jest ich naprawdę sporo, od otwarcia pliku, po zmianę selekcji arkuszy, czy przeliczanie zeszytu. Warto się z nimi zapoznad. Przykładowe praktyczne zastosowanie: raport, o którym mówiliśmy w poprzedniej części, jest bardzo rzadko odwiedzany. Jego uzupełnienie nie trwa długo i także zautomatyzowaliśmy je makrem, ale ponieważ raport jest mało istotny, nie pamiętamy o jego uzupełnianiu. Wykorzystując potęgę makr jesteśmy w stanie zaradzid temu problemowi. Kiedy szef otwiera raport, wywoływane jest makro

uzupełniające dane, które samo sprawdza,czy raport jest uzupełniony i w razie konieczności naprawia to karygodne zaniedbanie. Wszyscy są szczęśliwi. Zdarzenia zeszytu nie są jedyni na które możemy reagowad. Klikając podwójnie w eksploratorze projektu w dowolny arkusz i wybierając pozycję Worksheet w polu wyboru, zobaczymy listę dostępnych opcji dla arkusza. Zajmiemy się tylko jednym dla przykładu. Będzie to : Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Zmienna target to miejsce/komórka kliknięcia, a za pomocą zmiennej Cancel możemy powstrzymad program od domyślnego działania, którym jest w tym wypadku rozpoczęcie edycji komórki. Weźmy przykładową tabelkę z ocenami koocowymi uczniów ( liczby są losowe) Chciałbym, żeby po podwójnym kliknięciu na ocenie pokazało nam się okienko z ocenami ucznia z przedmiotu, który wskazaliśmy klikając. Dzięki obsłudze zdarzeo jesteśmy w stanie zrealizowad coś takiego w bardzo prosty sposób Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row > 2 And Target.Row < 10 And Target.Column > 2 And Target.Column < 8 Then oceny = pobierzoceny(cells(2, Target.Column).Value, Cells(Target.Row, 2).Value) strocen = "Oceny z przedmiotu: " & Cells(2, Target.Column).Value & Chr(10) & _ "Ucznia: " & Cells(Target.Row, 2).Value & Chr(10) & "To: " For Each el In oceny strocen = strocen & el & ", " Next el MsgBox strocen Cancel = True End If Function pobierzoceny(przedmiot, nazwiskoimie)

'zrezygnowałem z jakiejkolwiek logiki w funkcji. trzeba ją dopisad pobierzoceny = Array(1, 2, 3, 4, 5, 6) End Function za pomocą rozciągniętego ifa określiliśmy dla których kolumn i rzędów będziemy działad. Zmienna target ma typ Range, czyli z angielskiego zakres, stąd właściwości row i column( wiersz i kolumna) funkcja pobierzocenmy powinna wyglądad nieco inaczej, jednak na potrzeby naszego przykładu wystarczy taki mały implant. Podobnie obsługuję się zdarzenia w formach i kontrolkach ActiveX. Po dodaniu takiej kontrolki AX na arkusz, w edytorze będziemy mieli do wyboru zdarzenia z nią związane (do wyboru obok worksheet). Proponuję żebyś drogi czytelniku dodał sobie kilka kontrolek i spróbował je obsłużyd. Wprowadzenie kontrolek ActiveX pozwoli ci na tworzenie już całkiem ciekawych aplikacji w Excelu. Pamiętaj że kontrolki takie jak combobox należałoby w którymś momencie zainicjalizowad listą wyboru. Realizacja zależy już od danej aplikacji.