Tworzenie makr w VBA dla Excela 2010 2013 cwiczenia 2

background image
background image

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu
niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą
kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym,
magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź
towarowymi ich właścicieli.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte
w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej
odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie
praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.

Redaktor prowadzący: Ewelina Burska
Projekt okładki: Maciej Pasek
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.

Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/cwvba3
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

ISBN: 978-83-246-8932-3

Copyright © Helion 2014

Printed in Poland.

Kup książkę

Poleć książkę

Oceń książkę

Księgarnia internetowa

Lubię to! » Nasza społeczność

background image

Spis treĂci

Opisz swój problem

5

Rozdziaï 1. Zabawy z rejestratorem makr

7

Wprowadzenie

7

ParÚ sïów o wstÈĝkach i paskach narzÚdzi

8

Bezpieczeñstwo makr

12

Rejestrowanie makr

16

Uruchamianie zapisanych projektów

20

Szybkie sortowanie danych

29

Rozdziaï 2. Podstawy

45

Interakcja ze skoroszytem. Zmienne i staïe

45

Zmienne i staïe

50

Deklarowanie typów zmiennych

53

Deklarowanie typów zmiennych

za pomocÈ znaków specjalnych

54

Deklarowanie typów zmiennych zaleĝnie od ich nazw

55

OkreĂlanie zasiÚgów zmiennych

56

Co bÚdzie, jeĂli?

63

PÚtle

67

Idě do, idě i wróÊ

76

Dialog z uĝytkownikiem

79

Formularze

85

Obsïuga bïÚdów

91

Makro a funkcja

94

Kup książkę

Poleć książkę

background image

4

Tworzenie makr w VBA dla Excela 2010/2013 • mwiczenia

Rozdziaï 3. Przykïady

101

Z ĝycia wziÚte

101

Sïowo o Windows API

123

Praca z wieloma skoroszytami

140

WstÈĝka w Office. RibbonX to nie VBA, ale...

146

Rozdziaï 4. Dodatki

151

Okno edytora VBA

151

Zdarzenia

154

Skróty klawiaturowe uĝywane w Excelu

170

Skróty klawiaturowe uĝywane w edytorze VBA

175

Kup książkę

Poleć książkę

background image

2

Podstawy

Pierwszy rozdziaï podpowiadaï, jak moĝna sobie uïatwiÊ co-
dziennÈ pracÚ z Excelem i zautomatyzowaÊ czÚsto powta-
rzane czynnoĂci. WïaĂciwie niezbyt przydaïa siÚ wiedza na

temat VBA — wystarczyïo Ci uruchomienie rejestratora makr i poka-
zanie, czego oczekujesz od komputera.

Jak juĝ zdÈĝyïeĂ siÚ przekonaÊ, rejestrator — choÊ bardzo pomocny
— nie oferuje moĝliwoĂci zapisania operacji warunkowej, przypisania
zmiennej czy wyĂwietlenia okien dialogowych. Nie mówiÈc juĝ o pÚtli.
CzynnoĂci te musieliĂmy wykonywaÊ z poziomu edytora. Dobrze byïoby
zatem poznaÊ podstawowe polecenia i struktury odpowiedzialne za
wykonywanie operacji, których rejestrowanie jest niemoĝliwe lub przy-
najmniej karkoïomne.

Interakcja ze skoroszytem.
Zmienne i staïe

CzÚsto zdarza siÚ, ĝe napisane przez Ciebie makro umieszcza dane
w arkuszu roboczym lub pobiera je stamtÈd. VBA oferuje kilka sposo-
bów adresowania komórek arkusza w zaleĝnoĂci od tego, jakie dane sÈ
dla uĝytkownika dostÚpne.

Kup książkę

Poleć książkę

background image

46

Tworzenie makr w VBA dla Excela 2010/2013 • mwiczenia

m W I C Z E N I E

2.1

Czytanie i umieszczanie danych

Utwórz arkusz tabliczki mnoĝenia w zakresie od 1 do 10 wedïug ry-
sunku 2.1. Pomiñ formatowanie.

Rysunek 2.1.
Arkusz tabliczki
mnoĝenia

RozwiÈzanie

1.

Otwórz nowy skoroszyt, uruchom edytor VBA (Alt+F11)
i wstaw moduï (Insert/Module).

2.

W module wprowadě nastÚpujÈcy kod:

Sub tabliczka_mnoĝenia()
For wiersz = 1 To 10
For kolumna = 1 To 10
Cells(wiersz, kolumna) = wiersz * kolumna
Next kolumna
Next wiersz
End Sub

3.

Ustaw kursor w obrÚbie makra i naciĂnij klawisz F5, aby
uruchomiÊ makro.

WyjaĂnienia

Zastosowane tu zostaïy instrukcje pÚtli (struktury

For...Next

). Po-

znasz je w dalszych rozdziaïach tego podrÚcznika. Wpisanie warto-
Ăci do komórki wykonywane jest w poniĝszym wierszu kodu:

Cells(wiersz, kolumna) = wiersz * kolumna

WïaĂciwoĂÊ

Cells

, okreĂlajÈca adres komórki, ma dwa argumenty.

Jak widaÊ w instrukcji

For...Next

, zmienne

wiersz

i

kolumna

przyjmujÈ

Kup książkę

Poleć książkę

background image

Rozdziaï 2. • Podstawy

47

wartoĂci od

1

do

10

. W poleceniu

Cells

zatem zarówno wiersz, jak

i kolumna sÈ okreĂlane za pomocÈ wartoĂci liczbowych.

’atwo pomyliÊ kolejnoĂÊ wspóïrzÚdnych. Z pomocÈ przyjdzie wtedy
edytor (patrz rysunek 2.2), który sam podpowie, czego od Ciebie
oczekuje.

Rysunek 2.2.
Podpowiedzi edytora VBA
bywajÈ bardzo pomocne

m W I C Z E N I E

2.2

Wpïywanie na wyglÈd arkusza

Zaciemnij wnÚtrza komórek od

A1

do

J1

i od

A2

do

A10

, jak pokazano

na rysunku 2.1.

RozwiÈzanie

Wprowadě do moduïu nastÚpujÈcy kod i uruchom go:

Sub wypeïnij()
Range("A1", "J1").Interior.ColorIndex = 15
Range("A2:A10").Interior.ColorIndex = 15
End Sub

Wskazówki

T

Zauwaĝ, ĝe w róĝny sposób wpisano argumenty

Range

.

Obydwa sposoby sÈ poprawne.

T

Jak widaÊ, za pomocÈ

Range

moĝemy zaznaczaÊ caïe zakresy

komórek.

T

Jako argumentów moĝemy uĝywaÊ zmiennych (jeĝeli ich
wartoĂÊ bÚdzie siÚ skïadaÊ z liter i cyfr) lub znanych Ci
juĝ poleceñ

Cells

. Nasze makro mogïoby wiÚc wyglÈdaÊ tak:

Sub wypeïnij()
a = "A1"
b = "J1"
Range(a, b).Interior.ColorIndex = 15
Range(Cells(1, 1), Cells(10, 1)).Interior.ColorIndex = 15
End Sub

Odczytywanie wartoĂci z komórek odbywa siÚ w sposób odwrotny, niĝ
sÈ umieszczane. PrzeÊwiczymy to na bardziej uĝytecznym przykïadzie.

Kup książkę

Poleć książkę

background image

48

Tworzenie makr w VBA dla Excela 2010/2013 • mwiczenia

Dla chÚtnych

Wykonaj to Êwiczenie, korzystajÈc na poczÈtku z rejestratora makr.
Zobacz, jakich wpisów dokona rejestrator, jeĝeli wymyĂlisz sobie
bardziej finezyjne wypeïnienie komórek (patrz rysunek 2.3).

Rysunek 2.3. Zakres A1:J10 zostaï zdefiniowany jako tabela danych
(Zakïadka NarzÚdzia gïówne/Formatuj jako tabelÚ). Zauwaĝ, ĝe gdy jesteĂ
w takim zakresie, na wstÈĝce pojawia siÚ zakïadka NarzÚdzia tabel.
Oprócz fajnej predefiniowanej grafiki warto zauwaĝyÊ fakt, ĝe Excel dodaï
ten zakres do kolekcji obiektów. Tabela zatem bÚdzie przez niego inaczej
traktowana niĝ zestaw niepowiÈzanych komórek. Kod opisujÈcy jej stronÚ
graficznÈ teĝ wyglÈda zupeïnie inaczej

Kup książkę

Poleć książkę

background image

Rozdziaï 2. • Podstawy

49

m W I C Z E N I E

2.3

Pobieranie danych z arkusza

Na podstawie tabliczki mnoĝenia, utworzonej w Êwiczeniu 2.1, utwórz
procedurÚ, która pobierajÈc dane o adresie zaznaczonej komórki, bÚ-
dzie pobieraÊ dane z:

T

zaznaczonej komórki;

T

komórki z pierwszego wiersza aktywnej kolumny;

T

komórki z pierwszej kolumny aktywnego wiersza.

Dane zostanÈ wyĂwietlone w postaci komunikatu (patrz rysunek 2.4).
Dodatkowo niech procedura wyĂwietla komunikaty tylko w przypadku
klikniÚcia komórki z zakresu od

A1

do

J10

.

RozwiÈzanie

Sub pobieraj_dane()
If ActiveCell.Row <= 10 And ActiveCell.Column <= 10 Then
a = ActiveCell.Value
mnoĝn1 = Cells(ActiveCell.Row, 1)
mnoĝn2 = Cells(1, ActiveCell.Column)
MsgBox (mnoĝn1 & " razy " & mnoĝn2 & " = " & a)
End If
End Sub

Rysunek 2.4.
W oknie komunikatu
wyĂwietlane sÈ dane
z pierwszych komórek
aktywnego wiersza
i kolumny oraz
z aktywnej komórki

Wskazówki

T

W pierwszym wierszu procedurze nadawana jest nazwa. Makro
zawsze rozpoczyna siÚ sïowem kluczowym

Sub

, po którym

podawana jest jego nazwa i ewentualnie parametry.

Kup książkę

Poleć książkę

background image

50

Tworzenie makr w VBA dla Excela 2010/2013 • mwiczenia

T

W nastÚpnym wierszu zawarty jest warunek, ĝe dalsze czynnoĂci

bÚdÈ wykonane tylko wtedy, gdy aktywna komórka znajduje siÚ
nie niĝej niĝ w

10

wierszu i nie dalej niĝ w

10

kolumnie arkusza.

T

W trzech kolejnych wierszach z aktywnej (zaznaczonej)
komórki oraz pierwszych komórek kolumny i wiersza dane sÈ
pobierane i przypisywane zmiennym. Przypisanie wartoĂci

komórek zmiennym uïatwi Ci zapisanie argumentu dla polecenia

MsgBox

w nastÚpnym wierszu kodu. Jak widaÊ, pobranie danych

z komórek arkusza nie wymaga ĝadnych poleceñ. Wystarczy
operacja przypisania.

T

Po wyĂwietleniu okna dialogowego (skïadniÚ polecenia

MsgBox

poznasz w dalszej czÚĂci podrÚcznika) nastÚpuje zamkniÚcie

sekwencji operacji warunkowych, czyli wykonywanych po
speïnieniu warunku poczÈtkowego (

End If

).

T

Ostatnie sïowo kluczowe informuje o koñcu procedury (makra).

Pozostaje jeszcze pytanie: jak sprawiÊ, aby makro byïo uruchamiane

po kaĝdym klikniÚciu myszÈ? DecydujÈ o tym procedury zdarzeniowe,
których opis zawarty jest w rozdziale 4. podrÚcznika.

Zmienne i staïe

Korzystanie ze staïych ma sens wtedy, gdy czÚsto stosujesz tÚ samÈ
wartoĂÊ w procedurze. Moĝesz na przykïad za pomocÈ staïej wyraziÊ
czÚĂÊ komunikatu czÚsto wyĂwietlanego w oknie dialogowym. Staïe
definiuje siÚ za pomocÈ sïowa kluczowego

Const

:

Const a = "WartoĂÊ komórki wynosi: "
Const b = 13

NiewÈtpliwÈ zaletÈ staïej jest to, ĝe próba jej zmiany w jakikolwiek spo-

sób jest niemoĝliwa i koñczy siÚ wyĂwietleniem komunikatu o bïÚdzie.

W VBA rozpoznawanych jest kilka typów zmiennych:

T

Boolean

— zmienna logiczna — przybiera wartoĂci

true

lub

false

.

T

Byte

— wartoĂci caïkowite — przybiera wartoĂci od

0

do

255

(czyli tyle, ile jeden bajt).

T

Integer

— wartoĂci caïkowite — przybiera wartoĂci od

–32 768

do

32 767

.

Kup książkę

Poleć książkę

background image
background image

Wyszukiwarka

Podobne podstrony:
Tworzenie makr w VBA dla Excela 2010 2013 cwiczenia
Tworzenie makr w VBA dla Excela 2002 XP PL cwiczenia zaawansowane
Tworzenie makr w VBA dla Excela 2002 XP PL cwiczenia zaawansowane cwvbae
Tworzenie makr w VBA dla Excela 2002 XP PL cwiczenia zaawansowane cwvbae
Tworzenie makr w VBA dla Excela 2002 XP PL cwiczenia zaawansowane 2
Tworzenie makr w VBA dla Excela 2002 XP PL cwiczenia zaawansowane cwvbae
Tworzenie makr w VBA dla Excela 2002 XP PL cwiczenia zaawansowane cwvbae
VBA dla Excela 2010 Leksykon kieszonkowy vbe1lk
VBA dla Excela 2010 PL 155 praktycznych przykladow vbae10
VBA dla Excela 2010 PL 155 praktycznych przykladow vbae10

więcej podobnych podstron