Makra programowanie w Visual Basic

background image

Autor

Pawe³ Bia³ka

specjalista ds. aplikacji i oprogramowania

Konsultant

Marcin Krawczak

konsultant w firmie TiMSI

(Tworzenie i Modernizacja Systemów Informatycznych)

Makra – programowanie w Visual Basic M 02/001

ì

Gdzie znajdziecie gotowe, przydatne
w codziennej pracy makra?

M 02/003

ì

Od czego powinniœcie zacz¹æ pisanie makra?

M 02/005

ì

Jak uruchomiæ napisane makro?

M 02/012

ì

Dlaczego powinniœcie u¿ywaæ komentarzy?

M 02/007

ì

Co powinniœcie zrobiæ, aby Wasze makro
by³o dostêpne we wszystkich dokumentach?

M 02/019

ì

Jak utworzyæ makro zamieniaj¹ce cyfry
na s³owa w dokumencie Excela?

M 02/006

W tym haœle:

background image

Dlaczego

powinniœcie

przeczytaæ

to has³o?

Co to s¹

makra

i po co siê

je tworzy?

M 02/002

Makra – programowanie w Visual Basic

Codziennie wykonujecie jakieœ d³ugotrwa³e ruty-

nowe operacje, na które tracicie mnóstwo czasu.

Czêsto nie mo¿ecie przyspieszyæ i uproœciæ Wa-

szej pracy, korzystaj¹c z opcji dostêpnych w u¿y-

wanych przez Was aplikacjach – nawet nagrywa-

j¹c makro. Rozwi¹zaniem jest napisanie w³asnego

makra w jêzyku VBA. Jak to zrobiæ, dowiecie siê

z tego has³a.

Makro jest zapisanym przez u¿ytkownika ci¹giem

operacji czêsto przez niego wykonywanych. Je¿eli

nie chcecie za ka¿dym razem powtarzaæ ca³ej se-

kwencji operacji (np. sortowania danych w arku-

szu Excela, wstawiania firmowych nag³ówków

w faksach tworzonych przy pomocy Worda), mo-

¿ecie raz napisaæ lub nagraæ makro, które bêdzie

potrafi³o zrobiæ dan¹ rzecz i zawsze, gdy zajdzie

potrzeba jej wykonania, po prostu je wywo³acie.

PROGRAMOWANIE W JÊZYKU VISUAL BASIC

Pisanie makr w Visual Basicu for Application

(w skrócie VBA), który jest jêzykiem programowa-

nia wbudowanym do aplikacji Microsoft Office

wymaga trochê wiedzy teoretycznej, ale za to daje

du¿o wiêksze mo¿liwoœci ni¿ zwyk³e nagrywanie.

Nie wszystko, co mo¿na zrobiæ w Waszej aplikacji,

da siê nagraæ. Na przyk³ad, aby zaznaczyæ wszyst-

kie rysunki i coœ z nimi zrobiæ (choæby podpisaæ

i ponumerowaæ), musicie napisaæ makro w VBA –

nie uda siê Wam nagraæ takiego makra.

Styczeñ 2002 (14)

Wiedza i Praktyka

background image

Panel

Project

EDYTOR VISUAL BASIC

Aby zacz¹æ pisaæ makro, musicie uruchomiæ edy-

tor Visual Basic dla aplikacji.

" Z menu Narzêdzia (aplikacji, dla której chcecie

zrobiæ makro) wybierzcie Makro, a nastêpnie

z rozwijanego menu Edytor Visual Basic.

" Na ekranie zobaczycie okno edytora, które

dzieli siê na trzy czêœci – tak zwane panele.

W lewym górnym rogu znajduje siê panel Project.

Podobnie jak Eksplorator Windows wyœwietla on

elementy (otwarte projekty VBA) w formie drzewa.

Ka¿dy otwarty dokument i do³¹czony do niego

szablon nale¿¹ do osobnych projektów. W sk³ad

ka¿dego projektu wchodz¹: dokument, modu³

standardowy, modu³ klas, formularze, odwo³ania.

Makra – programowanie w Visual Basic

M 02/003

Wiedza i Praktyka

Poradnik Komputerowy ©

Na stronie internetowej Poradnika Komputerowe-

go (www.poradnikkomputerowy.pl) znajdziecie

przydatne, gotowe do zaimportowania makra.

WSKAZÓWKA

Edytor Visual Basic mo¿ecie tak¿e otworzyæ, na-

ciskaj¹c kombinacjê klawiszy Alt-F11 (musicie

u¿yæ lewego klawisza Alt, gdy¿ prawy standar-

dowo s³u¿y do uzyskania polskich liter).

WSKAZÓWKA

background image

M 02/004

Makra – programowanie w Visual Basic

Modu³ standardowy (Modules) zawiera procedu-

ry ogólne (funkcje i podprogramy) – mog¹ to byæ

makra zdefiniowane przez Was lub programy po-

mocnicze, z których korzystaj¹ inne programy. Tu-

taj w³aœnie bêd¹ siê znajdowaæ definicje wszyst-

kich makr, które stworzycie (nagrywaj¹c b¹dŸ pi-

sz¹c w VBA). Modu³y klas, formularze i odwo³ania

dotycz¹ rzeczy, o których na razie nie bêdziemy

mówiæ – programowanie obiektów MS Office jest

materia³em na osobny artyku³.

Funkcja jest wygodnym sposobem logicznego

wydzielenia pewnych dzia³añ programu, zamkniê-

cia ich w „czarnej skrzynce”. Najczêœciej funkcja

dzia³a w ten sposób, ¿e dostaje na wejœciu jakieœ

parametry, przetwarza je i zwraca wynik. Dziêki

Styczeñ 2002 (14)

Wiedza i Praktyka

Rys. 1. Edytor VBA

background image

Panel

Properties

Panel Code

funkcjom nie musicie wiedzieæ, w jaki sposób coœ

zosta³o zrobione, wystarczy Wam wynik dzia³ania

funkcji, czyli co zosta³o zrobione. Przyk³adem

funkcji jest dodawanie: funkcja dodawania dostaje

kilka parametrów i zwraca sumê.

Podprogramy lub procedury dzia³aj¹ podobnie

jak w przypadku funkcji – tylko procedura nie

zwraca wyniku.

W lewym dolnym rogu znajduje siê panel Proper-

ties, czyli W³aœciwoœci. Wyœwietlane s¹ tam w³aœci-

woœci edytowanego obiektu, jak np.: nazwa obiek-

tu, odleg³oœæ miêdzy kolejnymi znakami tabulacji

(w punktach) – DefaultTabStop, czy dokument zo-

sta³ sprawdzony pod wzglêdem poprawnoœci gra-

matycznej – GrammarChecked itp. Mo¿ecie te¿ je

tam zmieniæ. Jeœli edytowanym obiektem jest mo-

du³ standardowy, to panel Properties zawiera tylko

nazwê modu³u (Name), która jest jego jedyn¹ w³a-

œciwoœci¹.

Trzecim, najwiêkszym panelem jest Code, czyli

Edytor Kodu. Jest to najwiêksze na naszym rysun-

ku okno z rozwijanymi polami (General) i (De-

clarations). Wpisujecie tam treϾ (kod) programu

w VBA.

PISANIE MAKRA

Przedstawiamy Wam dwa makra napisane w jêzy-

ku VBA, jedno dla Worda 2000 i jedno dla Excela

2000.

Makra – programowanie w Visual Basic

M 02/005

Wiedza i Praktyka

Poradnik Komputerowy ©

background image

Makro

dla Excela

M 02/006Makra – programowanie w Visual Basic

¯eby zrobiæ Wasze makro musicie stworzyæ nowy

modu³:

" W tym celu naciœnijcie drug¹ od lewej ikonê na

pasku narzêdzi i z rozwijanego menu wybierz-

cie Module. To samo uzyskacie, naciskaj¹c

w oknie Project prawy klawisz myszy i wybie-

raj¹c Insert/Module.

" Aby zmieniæ nazwê stworzonego modu³u, klik-

nijcie na niego i w panelu Properties w polu

Name zast¹pcie nazwê domyœln¹ (np. Module1)

Wasz¹ w³asn¹ nazw¹.

" Teraz powinniœcie zacz¹æ pisaæ Wasze makro.

Poni¿sze makro zamienia w arkuszu kalkulacyj-

nym Excela wszystkie cyfry na odpowiadaj¹ce im

s³owa np. 2 zostaje zamienione na „Dwa”, 173 na

„JedenSiedemTrzy”, „k5” na „kPiêæ”, „Zielona 2” na

„Zielona Dwa”.

Styczeñ 2002 (14)

Wiedza i Praktyka

Rys. 2. Polecenie: Module

background image

" Na pocz¹tku wpiszcie:

" Nastêpnie wpiszcie nag³ówek procedury, czyli

nazwê Waszego nowego makra:

" Teraz musicie zadeklarowaæ zmienne u¿ywa-

ne w tym makrze. Pierwszy raz spotykacie typ

danych Range – zmienne tego typu dotycz¹

komórek arkusza kalkulacyjnego. Zmienna

Range mo¿e okreœlaæ zarówno jedn¹ komór-

kê, np. „B5”, jak i kolekcjê komórek, np.

wszystkie komórki z wiersza drugiego oraz

komórki R53, L13 itd. Wpiszcie:

Makra – programowanie w Visual Basic

M 02/007

Wiedza i Praktyka

Poradnik Komputerowy ©

Option Explicit

Sub zmieñ_cyfry_na_s³owa()

'makro zmienia w ca³ym bie¿¹cym arkuszu

cyfry na

'odpowiadaj¹ce im s³owa np. 2 -> dwa; 32 ->

Trzy_Dwa

Tekst napisany przez Was za znakiem apostrofu

' traktowany jest jako komentarz. U¿ywajcie ko-

mentarzy, aby ³atwiej póŸniej dotrzeæ do przy-

datnych informacji o Waszym makrze. Ka¿da

nowa linijka w edytorze UBA jest traktowana

jako nowy element kodu. Dlatego zawsze do-

k³adnie oznaczajcie pocz¹tek wiersza.

WSKAZÓWKA

background image

M 02/008

Makra – programowanie w Visual Basic

" Teraz makro musi wybraæ spoœród wszystkich

komórek aktywnego arkusza te, które zawiera-

j¹ cyfry. Wpiszcie:

Powy¿sze wywo³anie mo¿na podzieliæ na cztery

czêœci:

1. ActiveSheet – mówi komputerowi, ¿e dalsze

operacje maj¹ siê odbywaæ na aktywnym arku-

szu (tzn. tam gdzie jest kursor).

2. .Cells – wybiera z okreœlonego arkusza komór-

ki. Sposób wybierania jest okreœlony w kolejnej

czêœci formu³y.

3. .SpecialCells(typ) – wybiera tylko te komórki,

które s¹ okreœlonego typu.

Styczeñ 2002 (14)

Wiedza i Praktyka

Dim i As Integer

'zadeklarowanie i jako liczby ca³kowitej

Dim d³ugoœæ As Integer

'd³ugoœæ jako liczbê ca³kowit¹

Dim komórka As Range

'komórkê jako zmien-

n¹ przechowuj¹c¹ zakres komórek

Dim napis As String

'napis jako zmienn¹ tekstow¹

Dim znak As String

'znak jako zmienn¹ tekstow¹

Dim s³owo As String

's³owo jako zmienn¹tekstow¹

ActiveSheet.Cells.SpecialCells(xlCellTypeCon-

stants).Select

background image

3.

Typy komórek to:

3.

– xlCellTypeComments – komentarze;

3.

– xlCellTypeFormlas – formu³y;

3.

– xlCellTypeConstants – komórki z danymi (np.

napisy, liczby);

3.

– xlCellTypeBlanks – komórki puste;

3.

– xlCellTypeVisible – wszystkie widoczne ko-

mórki.

3.

Je¿eli jako typ wybierzecie formu³y lub dane to

mo¿ecie u¿yæ opcji podtyp. Wtedy funkcja bê-

dzie wygl¹da³a tak: SpecialCells (typ, podtyp).

Podtypem mog¹ byæ: xlNumbers (liczby) lub

xlTextValues (napisy). Zatem aby wybraæ tylko

komórki zawieraj¹ce liczby, musicie napisaæ Spe-

cialCells(xlCellTypeConstants, xlNumbers) – jeœli

tak zamienicie wywo³anie funkcji SpecialCells

w tym makrze, to na s³owa zostan¹ zamienione

jedynie cyfry tworz¹ce liczby (nie zamieni¹ siê

cyfry bêd¹ce czêœci¹ napisu np. „Zielona 2”).

4. .Select – powoduje zaznaczenie wybranych ko-

mórek.

" Teraz dla ka¿dej wybranej komórki trzeba za-

mieniæ wystêpuj¹ce w niej cyfry na odpowiada-

j¹ce im s³owa. Wpiszcie:

l

Instrukcja For Each komórka in Selection prze-

chodzi przez wszystkie wybrane komórki.

Makra – programowanie w Visual Basic

M 02/009

Wiedza i Praktyka

Poradnik Komputerowy ©

For Each komórka In Selection

napis = komórka.Value

d³ugoœæ = Len(napis)

s³owo = „...”

background image

M 02/010

Makra – programowanie w Visual Basic

l

Funkcja wbudowana Len – zwraca d³ugoœæ napi-

su, czyli liczbê znaków – np. wiersz programu –

d³ugoœæ = Len(„Kowalski”) przypisze zmiennej

D³ugoœæ wartoœæ 8.

" Teraz wpiszcie:

l

Dla ka¿dego znaku znajduj¹cego siê w aktualnie

zmienianej komórce, wybieranego za pomoc¹

Mid(napis,i,1), wywo³ujecie funkcjê zmieñ_jed-

n¹_cyfrê(znak) – jeœli podany jej znak jest cyfr¹,

wówczas zostaje zamieniony na odpowiednie

s³owo, jeœli jest to jakiœ inny znak (np. litera), nie

jest zmieniany. Ze zmienionego napisu jest two-

rzone s³owo, które nastêpnie zastêpuje dotych-

czasowy napis w komórce.

" Aby powy¿sze makro dzia³a³o, musicie wpisaæ

jeszcze treœæ funkcji zmieñ_jedn¹_cyfrê.

Styczeñ 2002 (14)

Wiedza i Praktyka

For i = 1 to d³ugoœæ

'zmienna i przyjmuje

w pêtli wartoœci od 1 do wartoœci zmiennej

d³ugoœæ, która w tym przypadku jest d³ugo-

œci¹ tekstu zapisanego w zmiennej napis

znak = Mid(napis, i, 1)

'wyciêcie jednego znaku ze zmiennej napis i

przypisanie go do zmiennej znak

s³owo = s³owo + zmieñ_jedn¹_cyfrê(znak)

'zamiana na s³owo i do³¹czenie

Next i

'do zmiennej s³owo

komórka.Value = s³owo

'wpisanie wyniku

operacji do zaznaczonej komórki

Next

End Sub

background image

" Funkcja ta dostaje jako parametr jeden znak.

– Instrukcja Select Case okreœla, co ma zostaæ

zrobione w zale¿noœci od wartoœci zmiennej

znak. Opcja Case Else definiuje, co ma zo-

staæ zrobione, jeœli wartoœæ zmiennej znak

jest inna od wszystkich podanych powy¿ej.

"

– Instrukcja zmieñ_jedn¹_cyfrê = okreœla, jaki

napis ma zostaæ zwrócony jako wynik dzia³a-

nia funkcji.

" Po napisaniu makra powinniœcie je zapisaæ.

Kliknijcie na ikonê Zapisz. Mo¿ecie teraz za-

mkn¹æ okno Edytora Visual Basic.

Makra – programowanie w Visual Basic

M 02/011

Wiedza i Praktyka

Poradnik Komputerowy ©

Select Case znak

Case „0”: zmieñ_jedn¹_cyfrê = „Zero”

Case „1”: zmieñ_jedn¹_cyfrê = „Jeden”

Case „2”: zmieñ_jedn¹_cyfrê = „Dwa”

Case „3”: zmieñ_jedn¹_cyfrê = „Trzy”

Case „4”: zmieñ_jedn¹_cyfrê = „Cztery”

Case „5”: zmieñ_jedn¹_cyfrê = „Piêæ”

Case „6”: zmieñ_jedn¹_cyfrê = „Szeœæ”

Case „7”: zmieñ_jedn¹_cyfrê = „Siedem”

Case „8”: zmieñ_jedn¹_cyfrê = „Osiem”

Case „9”: zmieñ_jedn¹_cyfrê = „Dziewiêæ”

Case Else: zmieñ_jedn¹_cyfrê = znak

End Select

End Function

Function zmieñ_jedn¹_cyfrê (znak As String) As

String 'funkcja zmienia cyfrê na odpowiadaj¹

ce jej s³owo

background image

Makro

dla Worda

M 02/012

Makra – programowanie w Visual Basic

" Teraz mo¿ecie uruchomiæ Wasze makro. Aby to

zrobiæ z menu Narzêdzia, wybierzcie Ma-

kro/Makra/zmieñ_cyfry_na_s³owa i naciœnijcie

przycisk Uruchom.

Poni¿sze makro formatuje tekst dokumentu

MS Word tak, aby uzyska³ on szablon standardo-

wego podania. Aby wypróbowaæ jego dzia³anie,

powinniœcie uruchomiæ go dla dokumentu z napi-

sanym tekstem – makro wstawi odpowiednie na-

g³ówki, ponumeruje strony oraz wstawi zakoñcze-

nie z miejscem na podpis.

Po zrobieniu nowego modu³u à Pisanie makra mo-

¿ecie zacz¹æ pisaæ Wasze makro:

" Pamiêtajcie, aby zawsze na pocz¹tku pisania

makra wstawiæ poni¿sz¹ linijkê – ustrze¿e Was

to przed wieloma b³êdami.

" Teraz wpiszcie nag³ówek procedury, czyli na-

zwê nowego makra – Zrób Podanie.

" Jak zawsze na pocz¹tku makra musicie zade-

klarowaæ potrzebne zmienne. W tym makrze

przyda siê Wam zmienna przechowuj¹ca datê

w postaci tekstu. Wpiszcie:

Styczeñ 2002 (14)

Wiedza i Praktyka

Option Explicit

Sub ZróbPodanie()

'procedura dodaje do tekstu stosowne ele-

menty tak, aby uzyska³ on postaæ podania

background image

" Powy¿sza instrukcja przypisze zmiennej data

aktualn¹ datê (pobran¹ z zegara systemowego

w Waszym komputerze) w postaci dzieñ.mie-

si¹c.rok.

" Teraz wpiszcie fragment makra wstawiaj¹cy nu-

meracjê stron. W stopce ka¿dej strony zostanie

umieszczony napis Strona... z... .

l

Powy¿sza linia prze³¹cza widok na stopkê bie¿¹-

cego dokumentu, podobnie jak wybranie z me-

nu Widok/Nag³ówek i stopka.

l

ActiveWindow oznacza aktywne okno w Wor-

dzie (mo¿e byæ kilka otwartych dokumentów),

l

SeekView to parametr oznaczaj¹cy, która czêœæ

dokumentu jest wyœwietlana, mog¹ to byæ:

l

– wdSeekCurrentPageFooter,

l

– wdSeekCurrentPageHeader,

l

– wdSeekEndnotes,

l

– wdSeekEvenPagesFooter,

l

– wdSeekEvenPagesHeader,

Makra – programowanie w Visual Basic

M 02/013

Wiedza i Praktyka

Poradnik Komputerowy ©

Dim i As Integer

'deklaruje i jako liczbê ca³kowit¹

Dim data As String

'deklaruje zmienn¹ o na-

zwie data jako zmienn¹ tekstow¹

data = Format(Date, „dd.mm.yyyy”)

'przypisuje zmiennej data bie¿¹c¹ datê w po-

staci dzieñ.miesi¹c.rok

ActiveWindow.ActivePane.View.SeekView =

wdSeekCurrentPageFooter

background image

M 02/014

Makra – programowanie w Visual Basic

l

– wdSeekFirstPageFooter,

l

– wdSeekFirstPageHeader,

l

– wdSeekFootnotes,

l

– wdSeekMainDocument,

l

– wdSeekPrimaryFooter,

l

– wdSeekPrimaryHeader.

l

Selection jest obiektem, który wskazuje zazna-

czon¹ czêœæ tekstu lub miejsce, gdzie stoi kursor,

je¿eli nic nie jest zaznaczone.

l

ParagraphFormat pozwala na formatowanie

akapitu zgodnie z ustawieniami jego parame-

trów, np. Alignment, FirstLineIndent, KeepToge-

ther, KeepWithNext, Alignment pozwala na

ustawienie wyrównania tekstu: do lewej, pra-

wej, centralnie.

" Teraz wpiszcie:

l

NormalTemplate jest obiektem wskazuj¹cym na

szablon Normal Worda, dziêki niemu mo¿ecie

u¿ywaæ w³aœciwoœci szablonu Normal.

AutoTextEntries jest kolekcj¹ tzw. Autotekstów

w podanym szablonie, mo¿na je zobaczyæ lub

wstawiæ, wybieraj¹c z menu Wstaw/Autotekst.

Styczeñ 2002 (14)

Wiedza i Praktyka

Selection.ParagraphFormat.Alignment = wdAli-

gnParagraphCenter

'wyrównanie tekstu – centrowanie

NormalTemplate.AutoTextEntries(„Strona

X z Y”).Insert _Where:=Selection.Range

background image

" Kolejny fragment makra ustawi parametry napi-

sanego przez Was tekstu. Wpiszcie:

" Styl czcionki zostanie ustawiony na Book Anti-

qua CE, rozmiar liter na 12, tekst zostanie wy-

Makra – programowanie w Visual Basic

M 02/015

Wiedza i Praktyka

Poradnik Komputerowy ©

ActiveWindow.ActivePane.View.SeekView =

wdSeekMainDocument

Selection.WholeStory

'zaznacza ca³y tekst g³ównego dokumentu

(bez stopek, nag³ówków, przypisów – równo-

wa¿ny naciœniêciu Ctrl+A)

Selection.Font.Name = „Book Antiqua CE”

'ustawia czcionkê dla zanaczonego fragmentu

Selection.Font.Size = 12

'ustawia rozmiar

czcionki dla zanaczonego fragmentu

With Selection.ParagraphFormat

'with oznacza, ¿e wszystkie poni¿sze w³aœci-

woœci (po kropce) bêd¹ siê odnosi³y do

obiektu Selection.ParagraphFormat, czyli do

w³aœciwoœci akapitu zaznaczonego tekstu

Alignment = wdAlignParagraphJustify

'ustawia wyrównanie – justowanie

FirstLineIndent = CentimetersToPoints(0.75)

'przekszta³ca podan¹ iloœæ centymetrów na

punkty, których u¿ywa Word. 1cm = 28,35 pkt.

W tym wypadku chcemy ustawiæ wysuniêcie

pierwszej linii akapitu o 0,75 cm

LineSpacingRule = wdLineSpace1pt5

'ustawia odstêp pomiêdzy wierszami na 1,5

wiersza

End With

background image

M 02/016Makra – programowanie w Visual Basic

równany do obydwu stron kartki (wyjustowa-

ny), a odstêpy pomiêdzy wierszami zostan¹

ustawione na 1,5 linii.

" Teraz wpiszcie poni¿szy fragment programu.

Przesunie on Wasz tekst o 9 linijek w dó³, aby

powsta³o miejsce na potrzebne nag³ówki.

" Teraz wpiszcie poni¿szy tekst, który jest odpo-

wiedzialny w Waszym makrze za wstawienie

w lewym górnym rogu pierwszej strony napisu

Warszawa dn. i aktualnej daty (oczywiœcie, je-

¿eli chcecie, aby wstawiana by³a nazwa innej

miejscowoœci, wpiszcie j¹ zamiast Warszawa).

Styczeñ 2002 (14)

Wiedza i Praktyka

Selection.MoveUp Unit:=wdLine, Count:=1

'przesuwa kursor o jedn¹ liniê w górê

Selection.HomeKey Unit:=wdStory

'ustawia kursor na pocz¹tku zadanego frag-

mentu tekstu, w tym wypadku wdStory =

ca³y dokument

For i = 1 To 9

Selection.TypeParagraph

'wstawia 9 pustych akapitów (9 x Enter)

Next i

Selection.MoveUp Unit:=wdLine, Count:=1

'przesuwa kursor o 1 liniê w górê

Selection.MoveUp Unit:=wdLine, Count:=10,

Extend:=wdExtend

'przesuwa kursor 10 linii w górê, zaznaczaj¹c je

Selection.ParagraphFormat.FirstLineIndent =

CentimetersToPoints(0)

'usuwa wysuniêcie

pierwszej linii akapitu (ustawia je na 0 pkt.)

background image

Nie przeoczcie spacji na koñcu napisu Warsza-

wa dn., która zapewni wam lepsz¹ czytelnoœæ

tego napisu.

" Teraz wpiszcie:

" W górnej prawej czêœci pierwszej strony zostaje

wpisane imiê i nazwisko autora podania i jego

adres. Musicie odpowiednie dane w cudzys³o-

wach zast¹piæ Waszymi.

Makra – programowanie w Visual Basic

M 02/017

Wiedza i Praktyka

Poradnik Komputerowy ©

Selection.HomeKey Unit:=wdStory

'ustawia kursor na pocz¹tku dokumentu

Selection.TypeText Text:=„Warszawa dn.” + data

'wpisuje podany tekst, na koñcu datê, która

by³a sformatowana na pocz¹tku makra

Selection.ParagraphFormat.Alignment = wdAlign-

ParagraphRight

'wyrównanie akapitu do prawej strony

Selection.MoveDown Unit:=wdLine, Count:=1

'kursor jedn¹ liniê w dó³

Selection.TypeText

Text:=„Pawe³

Bia³ka”

'wpisywanie tekstu

Selection.MoveDown Unit:=wdLine, Count:=1

'kursor jedn¹ liniê w dó³

Selection.TypeText Text:=„ul. Komputerowa

8/88”

'wpisywanie tekstu

Selection.MoveDown Unit:=wdLine, Count:=1

'kursor jedn¹ liniê w dó³

Selection.TypeText Text:=„88-888 Krzemowa

Dolina”

'wpisywanie tekstu

background image

M 02/018

Makra – programowanie w Visual Basic

" Teraz wpiszcie poni¿szy tekst:

" Pierwsze trzy linijki wstawiaj¹ w dokumencie

s³ówko Do i robi¹ miejsce na wpisanie adresu,

kolejne trzy linijki wstawiaj¹ nag³ówek

„P O D A N I E” ustawiony na œrodku strony.

" Teraz wpiszcie ju¿ ostatni¹ czêœæ waszego makra:

Styczeñ 2002 (14)

Wiedza i Praktyka

Selection.MoveDown Unit:=wdLine, Count:=1

'kursor jedn¹ liniê w dó³

Selection.ParagraphFormat.LeftIndent = Centi-

metersToPoints(8.5)

'ustawienie wysuniêcia

pierwszej linii akapitu na 8,5 cm.

Selection.TypeText Text:=„Do”

'wpisywanie tekstu

Selection.MoveDown Unit:=wdLine, Count:=3

'kursor 3 linie w dó³

Selection.ParagraphFormat.Alignment = wdAli-

gnParagraphCenter

'wycentrowanie akapitu

Selection.TypeText Text:=„P O D A N I E”

’wpisywanie tekstu

Selection.EndKey Unit:=wdStory

'ustawienie kursora na koñcu dokumentu

Selection.TypeParagraph

'2 x pusty akapit

Selection.TypeParagraph

Selection.ParagraphFormat.LeftIndent = Centi-

metersToPoints(11)

'ustawienie wysuniêcia

pierwszej linii akapitu na 11 cm.

Selection.TypeText Text:=„Z

powa¿aniem”

'wpisywanie tekstu

background image

" Powy¿sze siedem linii jest odpowiedzialne za

wstawienie na koñcu dokumentu po prawej

stronie napisu Z powa¿aniem. Je¿eli chcecie,

aby ten tekst znajdowa³ siê po lewej stronie

kartki, musicie w linijce czwartej jako parametr

dla CentimetersToPoints zmieniæ 11 na 1.

" Teraz pozostaje wam ju¿ tylko zakoñczyæ pro-

cedurê. Wpiszcie:

" Wasze nowe makro jest przygotowane do pra-

cy. Ilekroæ bêdziecie chcieli stworzyæ podanie,

napiszcie jego treœæ i uruchomcie powy¿sze

makro, które automatycznie nada mu w³aœciwy

format.

Aby uruchomiæ makro z menu Narzêdzia wybierz-

cie polecenie Makro, nastêpnie: Makra i ZróbPoda-

nie i naciœnijcie przycisk Uruchom.

ZAPISYWANIE MAKRA W SZABLONIE

NORMAL.DOT

Aby Wasze makro by³o dostêpne we wszystkich

dokumentach danej aplikacji musicie przenieϾ

makro z bie¿¹cego dokumentu do Normal.dot.

Makra – programowanie w Visual Basic

M 02/019

Wiedza i Praktyka

Poradnik Komputerowy ©

Selection.TypeParagraph

'pusty akapit

Selection.HomeKey Unit:=wdStory

'ustawienie kursora na pocz¹tku dokumentu

End Sub

background image

M 02/020

Makra – programowanie w Visual Basic

Aby to zrobiæ:

" Otwórzcie edytor Visual Basic (Alt+F11).

" Rozwiñcie drzewo obiektów w panelu Project

tak, aby by³ widoczny modu³ z Waszym ma-

krem.

" Nastêpnie kliknijcie lewym klawiszem na ten

modu³ i trzymaj¹c klawisz, przeci¹gnijcie ten

modu³ nad szablon Normal, po czym zwolnij-

cie klawisz (czyli zwyk³e Drag &Drop).

CO ZROBIÆ, GDY PROGRAM LE DZIA£A?

Gdy ju¿ napiszecie swoje makro i je uruchomicie,

mo¿e siê zdarzyæ (a zdarza siê to czêsto), ¿e Wasz

program nie dzia³a lub dzia³a niepoprawnie.

W tym celu twórcy Edytora Visual Basic wyposa-

¿yli go w narzêdzia przydatne w szukaniu b³êdów

i diagnozie niepoprawnego dzia³ania.

Styczeñ 2002 (14)

Wiedza i Praktyka

Rys. 3. Szablon: Normal

background image

B³êdy

podczas

pisania

programu

B³êdy

podczas

kompilacji

Jeœli próbowaliœcie pisaæ jakieœ makro, z pewno-

œci¹ zauwa¿yliœcie, ¿e komputer sprawdza ka¿dy

Wasz ruch i czêsto podkreœla coœ na czerwono,

wyœwietlaj¹c równoczeœnie komunikat o b³êdzie.

Jeœli przez przypadek napiszecie np. i==6 zamiast

i=6, komputer od razu to zauwa¿y i wyœwietli sto-

sowny komunikat.

W ten sposób program wychwytuje proste b³êdy

sk³adniowe.

Du¿o powa¿niejszym rodzajem b³êdów s¹ b³êdy

etapu kompilacji. Przed uruchomieniem napisane-

go przez Was makra komputer musi je sobie prze-

t³umaczyæ na swój w³asny jêzyk i ten proces nazy-

wamy kompilacj¹. Jest on wykonywany zawsze,

gdy chcecie wykonaæ swoje makro. Mo¿ecie rów-

nie¿ skompilowaæ program na w³asne ¿yczenie,

wybieraj¹c Compile VBA Project z menu Debug.

l

Jeœli w programie wywo³aliœcie jakiœ podprogram

(procedurê lub funkcjê), który nie istnieje, kom-

puter zaprotestuje, gdy¿ nie bêdzie wiedzia³, co

Makra – programowanie w Visual Basic

M 02/021

Wiedza i Praktyka

Poradnik Komputerowy ©

Opcje sprawdzania na bie¿¹co poprawnoœci

sk³adniowej mo¿ecie wy³¹czyæ, wybieraj¹c

Options z menu Tools i w zak³adce Editor

odznaczaj¹c Auto Syntax Check.

WSKAZÓWKA

background image

M 02/022

Makra – programowanie w Visual Basic

ma zrobiæ. Jest to bardzo popularny b³¹d powo-

dowany literówk¹ – gdy np. zamiast funkcji loso-

wa_liczba() napiszecie losoaw_liczba().

l

Drugim popularnym Ÿród³em b³êdów wychwyty-

wanych podczas kompilacji jest próba przypisa-

nia do zmiennej czegoœ, co tam nie pasuje. Jeœli

do zmiennej typu „Integer” spróbujecie przypisaæ

napis, to komputer zaprotestuje, wyœwietlaj¹c

okienko z opisem b³êdu (ang. Type mismatch

oznacza niezgodnoœæ typów).

Jest oczywiœcie wiele innych rodzajów b³êdów eta-

pu kompilacji, najwa¿niejsze jednak jest to, ¿e kom-

puter pokazuje miejsce, w którym jest b³¹d i wy-

œwietla komunikat, jakiego jest on typu (gdy nie

wiecie, co zrobiæ, mo¿ecie skorzystaæ z Pomocy).

Op³aca siê pamiêtaæ:

H

Przydatne w praktyce makra znajdziecie na na-

szej stronie internetowej (www.poradnikkompu-

terowy.pl) za has³em.

H

Pisanie makra zacznijcie od stworzenia nowego

modu³u.

H

Komentarze, które wstawiacie do makra u³atwi¹

Wam znalezienie niezbêdnych informacji o nim.

H

W panelu Properties mo¿ecie zobaczyæ w³aœci-

woœci edytowanego obiektu.

H

Komentarze, czyli tekst za apostrofem, nie

wp³ywaj¹ na dzia³anie Waszego makra.

Styczeñ 2002 (14)

Wiedza i Praktyka


Wyszukiwarka

Podobne podstrony:
programowanie w Visual Basic, Pomoce naukowe, studia, informatyka
Mastering Visual Basic NET Database Programming
Visual Basic Platforma programistyczna, Studia i nauka, Visual Basic
Visual basic, Programowanie VBA
Kurs Visual Basic dla początkujących, Języki programowania
Visual Basic i DirectX Programowanie gier w Windows
Visual Basic i DirectX Programowanie gier w Windows vbdirx
Visual Basic 2005 Zapiski programisty vb25np
Programowanie obiektowe w Visual Basic NET dla kazdego povbnd
Programowanie obiektowe w Visual Basic NET dla kazdego 2
Visual Basic i DirectX Programowanie gier w Windows vbdirx
Visual Basic 2005 Zapiski programisty vb25np
Visual Basic 2005 Programowanie 2
Visual Basic 2005 Programowanie vb25pr
Programowanie obiektowe w Visual Basic NET dla kazdego 2

więcej podobnych podstron