2. Wstaw przyciski: a. wykonujące funkcje z ćwiczenia 1 b. zastosuj różnorodne właściwości dla przycisku



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

LibreOffice Calc VBA

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

Działki Przygotowanie organizacyjne

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

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

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

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

Ćwiczenie 1 Obsługa makr

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

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

Informatyka w Zarządzaniu

Arkusze kalkulacyjne i VBA

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

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

Makropolecenia w PowerPoint Spis treści

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

Makropolecenia w Excelu

PRACA Z FORMULARZAMI UserForm

7.9. Ochrona danych Ochrona i zabezpieczenie arkusza. Pole wyboru

Arkusze kalkulacyjne i VBA

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.

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

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.

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

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Elektroenergetyki Technologie informatyczne

Kontrola poprawności danych:

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

MsgBox(Komunikat [, Przyciski] [, Tytuł] [, PlikHelp, HelpContext])

Visual Basic for Applications. Wstęp

Technologia informacyjna programowanie Janusz Uriasz

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

VISUAL BASIC W EXCELU

Arkusze kalkulacyjne i VBA

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Technologie informacyjne: Excel i VBA

Formatowanie warunkowe

BAZY DANYCH Panel sterujący

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

PROGRAMOWANIE MAKR W PROGRAMIE EXCEL W JĘZYKU VISUAL BASIC

Trik 1 Edycja wykresu bezpośrednio w dokumencie Worda

Visual Basic w programie Excel dla Windows

Właściwości i metody obiektu Comment Właściwości

LABORATORIUM 6: ARKUSZ MS EXCEL JAKO BAZA DANYCH

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

Spis tre ci. Rozdzia 1. Co to jest VBA Rozdzia 2. Makropolecenia Rozdzia 3. Jak uruchomi edytor Visual Basic... 31

Edytor tekstu OpenOffice Writer Podstawy

1. Wstawianie macierzy

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

1 Algorytmy. Algorytmy i VBA. 1. Zapoznaj się z symboliką schematów blokowych.

Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85

Zadanie 1. Stosowanie stylów

Przygotuj za pomocą tabulatorów element formularza. Utwórz pole tekstowe i sformatuj tak, aby dół napisu w polu był dokładnie nad kropkami.

Makra VBA w Excelu dla początkujących

Dodawanie grafiki i obiektów

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

Trik 1 Autorejestrowanie zmian dokonanych w obliczeniach

Arkusz kalkulacyjny EXCEL

Bazy danych Ćwiczenie 1 Instrukcja strona 1 Wersja ogólna

Podręczna pomoc Microsoft Excel 2007

INSTRUKCJA SKOKU GOTO

Trik 1 Odchylenie procentowe w stosunku do minionego okresu

Możliwości programu Power Point

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

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

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wstawianie i formatowanie tabel.

Zadanie 3. Praca z tabelami

VBA 1 VBA TYPY PROCEDUR (PODPROGRAM, FUNKCJA) ZMIENNE, DEKLARACJA ZMIENNYCH FUNKCJA MsgBox

Kadry Optivum, Płace Optivum

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

Część I: Excel - powtórka

Przygotuj za pomocą tabulatorów element formularza. Utwórz pole tekstowe i sformatuj tak, aby dół napisu w polu był dokładnie nad kropkami.

4.1. Analiza AWN jest dokonywana na poziomie VBA

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

Temat: Organizacja skoroszytów i arkuszy

FORMULARZE I FORMANTY MS EXCEL 1. TEORIA

Skróty klawiaturowe w programie Microsoft Excel 2013

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Żeby dodać artykuł, trzeba się na portalu zarejestrować i w menu użytkownika na stronie portalu kliknąć: Nowy artykuł. W swoim menu zobaczą ten link

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

Formularze w programie Word

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

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

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

NAGŁÓWKI, STOPKI, PODZIAŁY WIERSZA I STRONY, WCIĘCIA

Jak korzystać z Excela?

Aplikacje w środowisku VBA. Visual Basic for Aplications

Makropolecenia. Makropolecenia zastosowanie w MS Excel

NAGŁÓWKI, STOPKI, PODZIAŁY WIERSZA I STRONY, WCIĘCIA

MS Access formularze

Edytor tekstu MS Word podstawy

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

Excel. Tworzenie zaawansowanych aplikacji.

Lp. Nazwisko Wpłata (Euro)

UONET+ - moduł Sekretariat. Jak wykorzystać wydruki list w formacie XLS do analizy danych uczniów?

Rozwiązanie ćwiczenia 8a

M a k r a i d o d a t k o w e f o r m a n t y

Transkrypt:

MAKRA W EXCEL-u 1. Pierwsza funkcja użytkownika Wybieramy z menu: "NARZĘDZIA/MAKRA/EDYTOR VISULA BASIC", a następnie wstawmy moduł makr - menu: "INSERT/MODULE". Moduł to taki arkusz w którym są przechowywane makra. Wpiszmy tam następujący kod: Public Function obwodkola(r) Pi = 3.1415926535 obwodkola = 2 * Pi * R End Function W excel-u wpisz np. =obwodkola(a1), gdy w A1 jest wpisana wartość, funkcja jest dostępna w grupie funkcji użytkownika w oknie kreatora funkcji 2. Procedury wykorzystanie funkcji MsgBox Wpiszmy w module taki kod: Sub Proba() MsgBox "Sie ma!" Do arkusza dodamy przycisk wywołujący komunikat. Z paska "przybornik formantów" wybierz przycisk polecenia (CommandButton) i osadźmy go w arkuszu excela. Prawym klawiszem klikamy na przycisku i wybieramy "właściwości". Zmieniamy właściwości np. "caption" z "CommandButton1" na dowolny tekst, np. "Pozdrowienia". Zamknijmy okno właściwości. Ponownie klikamy prawym klawiszem na przycisk i wybieramy "kod". Otworzy się nam okno edytora VBA z początkiem i końcem procedury: Private Sub CommandButton1_Click() Pomiędzy dwie linie wpiszmy nazwę procedury Proba Private Sub CommandButton1_Click() Proba Na pasku "przybornik formantów" wyłączmy jeszcze tryb projektowania (przycisk z ekierką). Teraz kliknij utworzony przycisk polecenia. Zobacz efekt. 3. Procedury rozbudowanie funkcji MsgBox Korzystając z pomocy Office rozbuduj funkcję MsgBox, np. Sub Proba() komunikat = MsgBox("Hello World!", vbinformation + vbokcancel) If komunikat = 1 Then 'jeżeli zostanie wybrany przycisk OK to wyświetl komunikat Dzień Dobry! MsgBox "Dzień Dobry!" Else 'w przeciwnym wypadku wyświetl Do widzenia! MsgBox "Do widzenia!" 'koniec "jeżeli" 1. Napisz dwie funkcje obliczające: a. pole trójkąta b. pole prostokąta i zastosuj je do obliczania objętości brył i pola powierzchni. 2. Wstaw przyciski: a. wykonujące funkcje z ćwiczenia 1 b. zastosuj różnorodne właściwości dla przycisku Sub wpis() a = InputBox("Policzymy", "Zabawa", "tu wpisz a") Range("b1:c10") = a End sub 3. Zastosuj różne okna dialogowe: Msgbox (Komunikat [, Przyciski] [, Tytuł] [, PlikHelp, HelpContext]) InputBox(Pytanie [, Tytuł] [, DomyślnyTekst] [, XPos] [, YPos] [,PlikHelp, HelpContext])

4. Uruchomienie makra formułą Nie jest możliwe bezpośrednie uruchomienie makra za pomocą formuły, czyli np. =JEŻELI(B1="xyz";MAKRO1;MAKRO2) Można natomiast to zrobić pośrednio: krok 1) np. napisać w komórce A1: =JEŻELI(B1="xyz";1;0) krok 2) W kodzie arkusza należy wpisać: Private Sub Worksheet_Calculate() 4. Wykorzystaj procedury poprzednie sprawdz = Range("A1").Value Select Case sprawdz Case 1 Call Makro1 nazwa makra1 dla wartości Prawda Case 0 Call Makro2 'nazwa makra2 dla wartości Fałsz End Select Każde zmiana wartości w komórce A1 (gdzie jest formuła)) spowoduje uruchomienie kodu - sprawdzenie wartości w komórce A1 i uruchomienie odpowiedniego makra! 5. Cofanie makra Wykonanie makra nie umożliwia jego cofnięcia. Odpowiednie napisanie kodu może umożliwić cofanie makra. Poniższy kod jest tylko przykładem. Cofamy tutaj makro zmieniające format liczbowy aktywnej komórki. /w Module/ 5. Zabawy np. Range("A1:A6").Interior.Color = RGB(200, 160, 35) Private oldformat As String Range("c6:e10").NumberFormat = oldformat Sub Format() oldformat = ActiveCell.NumberFormat 'zapamiętuje jaki był poprzedni format liczbowy ActiveCell.NumberFormat = "#,##0.00" 'zamienia format liczbowy Application.OnUndo "Cofnij formatowanie", "UndoFormat" 'przysuje metodzie undo makro przywracające stary format Sub UndoFormat() ActiveCell.NumberFormat = oldformat 'wstawia stary format liczbowy 6. Funkcja zwracająca kolor wypełnienia komórki Funkcja zwracająca kolor wypełnienia komórki w postaci indexu (numeru) koloru. Nie przelicza w momencie zmiany formatu komórki /w Module/ Function kolorkomorki(adres As Range) kolorkomorki = adres.interior.colorindex End Function 6. Zadania a. Wypełnij kolorem kilka komórek b. sprawdź ich kod c. utwórz też funkcję określającą kolor czcionki Sub kolor_tła() For a = 1 To 56 Cells(a + 1, 1).Interior.ColorIndex = a Cells(a + 1, 1).Value = a Next Sub kolor_czcionki() For a = 1 To 56 ' najwyżej 56 Cells(a + 1, 3).Font.ColorIndex = a Cells(a + 1, 3).Value = a Next

7. Makro działające po wybraniu określonej komórki Makro działające tylko wtedy, gdy aktywowana będzie dowolna komórka w np. w kolumnie B Kod należy wpisać do odpowiedniego arkusza: Private Sub Worksheet_SelectionChange(ByVal Target As Range) nrkolumny = 2 'np. numer kolumny B=2 If Target.Column = nrkolumny Then MsgBox "Działa!" 'tutaj może być inne Makro 6. Ustaw podobne działanie dla wiersza oraz dla dwóch kolumn np. If Target.Column > 2 And Target.Column < 10 Then 8. Migająca komórka Kod zmienia w odstępach co jedną sekundę formatowanie komórki dając efekt migającej czcionki, albo zmieniającego się tła komórki: /w Module/ uruchom makro Private zmiana As Boolean Sub UpdateClock() Dim zakres As Range Set zakres = Range("A1:c10") If zmiana Then zakres.interior.colorindex = xlnone zakres.font.color = vbblack Else zakres.interior.color = vbred zakres.font.color = vbwhite zmiana = Not zmiana NextTick = Now + TimeValue("00:00:01") Application.OnTime NextTick, "UpdateClock" 8. Rozpocznij w NOWYM Arkuszu 9. Nazwa kolumny w postaci literowej Trochę to dziwne, ale chyba nie ma właściwości zwracającej nazwę kolumny w postaci literowej. Poniższy kod zwraca nazwy kolumn zaznaczonego zakresu w postaci literowej: Sub nazwa_kolumny() Dim mrange As Range Set mrange = Selection kolumny = "" For Each komorka In mrange nazwa = Application.Substitute(Cells(1, komorka.column).address(false, False), "1", "") kolumny = kolumny & " " & nazwa Next komorka MsgBox kolumny

10. Filtr w wierszu /szukanie ciągu znaków/ Czasami potrzebujemy filtrować /wyszukiwać/ w wierszu. Brak jest takiego wbudowanego mechanizmu w excelu. Oto makro rozwiązujące ten problem (kod należy wstawić w arkusz, w którym chcemy mieć tę funkcjonalność): Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 'Kliknij wiersz poszukiwań prawym klawiszem myszy If Selection.Rows.Count <> 1 Or Selection.Cells.Count = 1 Then End ' Cancel = True ciag = InputBox("Podaj szukany ciąg.") If ciag = "" Then End Application.ScreenUpdating = False With Selection Set c =.Find(ciag, LookIn:=xlValues) If Not c Is Nothing Then pierw_adr = c.address Columns.ColumnWidth = 0.05 Do Range(c.Address).EntireColumn.AutoFit Set c =.FindNext(c) Loop While Not c Is Nothing And c.address <> pierw_adr If c Is Nothing Then MsgBox "Ciąg >> " & ciag & " << nie występuje!" Application.ScreenUpdating = True Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) ' kliknij 2x lewym = pokaż wszystkie kolumny Columns("A:IV").ColumnWidth = 8.43 Selection.CurrentRegion.EntireColumn.AutoFit

Menu - VBA Aby dodać przy pomocy VBA nową pozycję menu: Sub dodaj_nowemenu() 'dodaje NoweMenu do paska menu Set NoweMenu = CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, before:=10) 'before:=10 - określa w którym miejscu wstawia NoweMenu NoweMenu.Caption = "&NoweMenu" 'dodaje pozycję do nowego menu Set poz1 = NoweMenu.Controls.Add With poz1.caption = "&Poz1".OnAction = "mojemakro5".faceid = 160 'dodaje pozycję rozwijaną do menu NoweMenu Set poz2 = NoweMenu.Controls.Add(Type:=msoControlPopup) With poz2.caption = "&Poz2" Set podpoz1 = poz2.controls.add With podpoz1.caption = "&Podpoz1".Style = msobuttoniconandcaption.onaction = "mojemakro3".faceid = 1096 Set podpoz2 = poz2.controls.add With podpoz2.caption = "&Podpoz2".Style = msobuttoniconandcaption.onaction = "mojemakro4".faceid = 126 'rozpoczyna grupę dla Poz2 poz2.begingroup = True Kod usuwający nasze menu: Sub usun_nowemenu() On Error GoTo koniec Set NoweMenu = CommandBars("Worksheet Menu Bar").Controls("&NoweMenu") NoweMenu.Delete koniec: