• Nie Znaleziono Wyników

Arkusze kalkulacyjne i VBA

N/A
N/A
Protected

Academic year: 2021

Share "Arkusze kalkulacyjne i VBA"

Copied!
11
0
0

Pełen tekst

(1)

Uniwersytet Łódzki

Wydział Matematyki i Informatyki

Arkusze kalkulacyjne i VBA

Lekcja 4

OKNA DIALOGOWE + DODATKOWE INFORMACJE

www.math.uni.lodz.pl/~krasinsk

Tadeusz Krasiński

(2)

Dodatkowe informacje o oknach dialogowych 1.Przypomnienie o oknach dialogowych.

Ćwiczenie. W arkuszu umieścić przycisk o tytule Wybierz liczbę który powoduje pojawienie się okna dialogowego z listą liczb od 1 do 10. Po wyborze liczby okno znika ale w aktywnej komórce (lub konkretnej np. H8) pojawia się wybrana wartość.

2. Przyciski w formularzu można połączyć i przenieść do okna Toolbox jako nowy przycisk.

Ćwiczenie. Utworzyć nowe okno dialogowe, umieścić w nim np. 3 przyciski CheckBox, połączyć je i przenieść do okna Toolbox.

Wypróbować ten nowy wielokrotny przycisk w nowym oknie dialogowym.

(3)

3. Wpisywanie danych z okna w arkuszu.

Wybrane dane lub dokonane wybory w oknie możemy umieszczać w arkuszu.

Ćwiczenie. Utworzyć okno dialogowe proszące o podanie nazwiska, imienia i wyboru liczby. Dane te kolejno umieszczać w kolejnych wierszach arkusza po zatwierdzeniu wyborów.

Wsk. Wykorzystać instrukcję

Cells(Rows.Count,1).End(xlUp).Row

podającą numer ostatniej niepustej komórki w pierwszej kolumnie

(4)

4. Skoki do podprogramów

1.

Gdy chcemy przejść do innej instrukcji w programie:

…….

GoTo Podprogram3

……..

Podprogram3:

Instrukcje Exit Sub

…..

Nie ma End Podprogramu – wykonywane są dalsze instrukcje.

Ćwiczenie. Napisać proste makro z instrukcjami i skokami do

podprogramów z wstawionymi między instrukcjami Exit Sub

Makro Skoki np. w zależności od wartości liczbowej w danej

komórce pojawia się inny komunikat.

(5)

Debugowanie

Gdy chcemy wykonać makro krok po kroku (by znaleźć np.

błąd) i obserwować co się dzieje w arkuszu) to debugujemy makro:

1. Umieszczamy kursor w kodzie makro.

2. Zmniejszamy okno Visual Editor by widzieć odpowiednią część arkusza

3. Klikamy Debug/Step Into lub F8.

4. I tak dalej klikamy F8.

5. Wyłączamy debugowanie Step Out

Ćwiczenie. Wypróbować działanie debugowania na dowolnym makro (najlepiej pętli) np. wpisać w przekątną kwadratu liczby 1,2,3,…,10 i debugować makro.

Dodatkowe opcje:

1. Na szarym marginesie okna z makrami możemy umieszczać punkty brązowe . Uruchomione makro działa do tego punktu.

2. Na szarym marginesie okna z makrami możemy

przesuwać żółtą strzałkę.

(6)

Obsługa błędów

Podstawowe instrukcje obsługujące błędy w makrach:

1.On Error Resume Next – pomiń ten błąd.

Przykład Sub Bledy1()

Worksheets("Arkusz5").Name = "Dane"

On Error Resume Next

Worksheets("Arkusz5").Range("A5").Select End Sub

Instrukcja On Error Resume Next pomija wszystkie dalsze błędy w makro. By wyłączyć to musimy wpisać instrukcję On Error GoTo 0

Przykład.

Sub Bledy2()

Worksheets("Arkusz5").Name = "Dane"

On Error Resume Next

Worksheets("Arkusz5").Range("A5").Select On Error GoTo 0

Worksheets("Arkusz5").Range("A5").Select End Sub

3. On Error GoTo Instrukcja – przeskok do specjalnej instrukcji np. MsgBox z ostrzeżeniem.

Przykład

(7)

Sub Bledy3()

Worksheets("Arkusz5").Name = "Dane"

On Error GoTo Ostrzezenie

Worksheets("Arkusz5").Range("A5").Select Exit Sub

Ostrzezenie:

MsgBox "Zmieniłeś nazwę arkusza"

End Sub

(8)

Filtrowanie danych za pomocą Makr

Gdy mamy dane w tabeli to możemy filtrować te dane za pomocą makr z użyciem metody AutoFilter z parametrami:

AutoFilter([Field], [Criteria1], [Operator As XlAutoFilterOperator = xlAnd], [Criteria2], [VisibleDropDown])

Przykład.

Makro które wybiera wiersze aktualnego zakresu zawierające w kolumnie 3 podsłowo „ford” lub „12”

Sub filtr1()

Range(„A1”).CurrentRegion.Autofilter Field:=3, Criteria1:=”*ford*”,Operator:=xlOr, Criteria2:=”12”

End Sub

Inne operatory można zobaczyć w Browser Objects np. wybierający 3 największe rekordy w kolumnie 4

Sub filtr3()

Range(„A1”).CurrentRegion.Autofilter Field:=4, Criteria1:=”3”,Operator:=xlTop10Items

End Sub

Z „odfiltrowanym„ zakresem możemy wykonać różne czynności np.

pokolorować. Wracamy do pierwotnej postaci instrukcją Range("A1").CurrentRegion.AutoFilter

(9)

Sub ser()

Range("A1").CurrentRegion.AutoFilter Field:=2, Criteria1:="sd"

Range("A1").CurrentRegion.Interior.Color = RGB(0, 255, 0) Range("A1").CurrentRegion.AutoFilter

End Sub

Ćwiczenie.

Wpisać pewne dane, odfiltrować pewnym kryterium i usunąć te wiersze. Makro Usun

(10)

R1C1 numeracja komórek

W Excelu komórki numerujemy literami i liczbami np. komórka A3, czyli 1 kolumna i 3 wiersz. W stylu R1C1 jest to komórka R3C1 – wiersz (Row) 3, kolumna (Column) 1. Odwołania względne R[3]C[1].

Na przykład 2 makra dają ten sam rezultat:

Sub obliczenia1()

Range("B1").Formula = "=A2 * A3"

End Sub

Sub obliczenia2()

Range("B1").FormulaR1C1 = "=R2C1 * R3C1"

End Sub

Uwaga. Można globalnie zmienić numerację komórek w Opcjach/Formuły.

Zaleta:

Dla ustalonej komórki komórka R[-1]C[1] to komórka powyżej i na prawo, RC[-1] to komórka w tym samym wierszu pierwsza na lewo Makro

Sub obliczenia3()

Range("I3:I12").FormulaR1C1 = "=RC[-2] * RC[-1]"

End Sub

Wymnaża liczby z dwóch komórek na lewo w całym zakresie.

Ćwiczenie.

W nowym arkuszu utworzyć tabliczkę mnożenia od 1 do 100 używając styl R1C1.

(11)

System Pomocy

Podstawowe sposoby otrzymania informacji o VBA:

1. Rejestrujemy automatycznie Makro z czynnościami które nas interesują i przeglądamy kod programu.

Ćwiczenie. Sprawdzić kod kopiowania i przenoszenia zakresu komórek.

2. W Object Browser znajdujemy odpowiednie pojęcie (lub wpisujemy w okno wyszukiwania) i wciskamy F1.

Ćwiczenie. Znaleźć informacje na temat AutoFilter

3. W internetowej systemie pomocy (angielskiej):

Help/Microsoft VBA ffor Appl./Excel VBA Reference/

Np. o oknach dialogowych w Office Developments/Office Clients/Offic Shared/ Office VBA language

reference/Reference/Objects

Cytaty

Powiązane dokumenty

Program tego makra możemy zobaczyć w oknie edytora Visual Basic na karcie Deweloper..

Gdy chcemy wykonać makro krok po kroku (obserwując np.w innym oknie co się dzieje) to debugujemy makro:. Zmniejszamy okno Visual Editor by widzieć

Pod pewnym przyciskiem w oknie (np. CommandButton z napisem OK), po jego kliknięciu, wykona się makro które korzysta z danych wybranych w oknie i w którym końcową instrukcją

Program tego makra możemy zobaczyć w oknie edytora Visual Basic na karcie Deweloper..

Napisaną przez siebie funkcję wykorzystaj do uzupełnienia odpowiedniej kolumny w tabeli z Arkusza3 (plik lekcja2.xlsx.). Napisz funkcję VBA o podobnym nagłówku, lecz

Pod pewnym przyciskiem w oknie (np. CommandButton z napisem OK), po jego kliknięciu, wykona się makro które korzysta z danych wybranych w oknie i w którym końcową instrukcją

Przyciski w formularzu można połączyć i przenieść do okna Toolbox jako nowy przycisk.. Utworzyć nowe okno dialogowe, umieścić w

Na miejscu okazało się, że osobą zakłócającą ciszę nocną jest 54-letni Jeremiasz S., który w chwili interwencji Policji znajdował się w stanie wskazującym.. Ponadto groził im