Co to są makra?

REKLAMA:
Jeśli chcesz się nauczyć tworzyć strony internetowe, a nie masz o tym pojęcia wejdź na bezpłatny blog www.VideoWebmaster.pl

Jeśli już potrafisz tworzyć strony internetowe, wejdź na blog z poradami dla średnio-zaawansowanych webmasterów www.PomocnikWebmastera.pl

Wiele osób, które używają Worda, albo Excela zastanawia się, co to są makra. Często zdarza się tak, że mając jakąś monotonną czynność do zrobienia biedny użytkownik się męczy, zamiast napisać makro. Makra są wręcz idealne do wykonywania monotonnych czynności. Poniżej zaprezentuję kilka ciekawych przykładów.

Często w pismach urzędowych nie wolno pozostawiać spójnika na końcu linijki (np. w, z, na itp.). Często o tym zapominamy i sobie przypominamy o tym po napisaniu pisma. Oczywiście można zawsze po każdym spójniku używać niepodzielnej spacji (CTRL+SHIFT+SPACJA) i wtedy jeśli spójnik ma być na końcu linii, to automatycznie zostanie wciągnięty do nowej linii (bo pomiędzy spójnikiem a wyrazem za spójnikiem jest niepodzielna spacja). Tylko że ja jestem nauczony stawiać normalne spacje a nie niepodzielne i tu jest problem: po napisaniu pisma muszę sprawdzać, czy są jakieś spójniki na końcu linijek i ewentualnie wstawiać niepodzielne spacje, jak nie daj Boże zmienię rozmiar czcionki, to cała zabawa zacznie się od nowa. Pół biedy, jeśli to pismo ma 1 stronę, ale jeśli ma 20, to czeka mnie kilkanaście (kilkadziesiąt) minut ciężkiej pracy. A przecież można napisać proste makro, które odwali czarną robotę za mnie. Poniżej prezentuję treść przykładowego makra:

'Główna procedura
Sub UsuwajSpojnikiZKoncaLinii()
Call Niepodz("z")
Call Niepodz("w")
Call Niepodz("na")
Call Niepodz("do")
Call Niepodz("po")
Call Niepodz("od")
Call Niepodz("i")
Call Niepodz("o")
Call Niepodz("a")
End Sub

'procedura pomocnicza
Sub Niepodz(P As String)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " " + P + " "
.Replacement.Text = " " + P + Chr$(160)
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Uwaga: tutaj jest najnowsza, poprawiona wersja tego makra

Jak widzisz, napisanie takiego makra zajmuje może 15 minut a później każde jego uruchomienie oszczędza mi średnio 10 minut. Po 2 użyciach makra oszczędzam swój cenny czas (a czas to pieniądz). Zresztą najbardziej nielubiane czynności to nie te, które się długo robi, a te które są monotonne. A makro pozwala zaoszczędzić masę czasu!!

Są też inne ciekawe zastosowania makr. Np. jeśli prowadzisz swój sklep internetowy, to możesz udostępniać cennik w pliku XLS (Excel). Jednak ręczne przepisywanie cen z sklepu internetowego jest męczące i monotonne (zamiast co tydzień marnować godzinę czasu lepiej jest iść oglądać telenowele ;-). Można napisać makro, które łączy się z naszym sklepem internetowym, pobiera informacje z bazy danych, z której korzytsa nasz sklep internetowy i generuje arkusz z cennikiem. Być może napisanie takiego makra zajmie kilka godzin, ale dizęki temu później będziesz oszczędzał kupę czasu a czas to pieniądz (no i jeśli makro nie posiada błędów, to wyeliminujesz błędy tego typu, że człowiek zobaczy cenę 59 zł, ale ze zmęczenia wpisze np. 69 zł i tego nie zauważy).

Nie będę tutaj zachwalał mechanizmu makr, sam często coś piszę tylko po to, aby przetworzyć jakąś informację :-) Ciekawe makra znajdziesz na stronie: http://vb4all.canpol.pl/workshop/vba.htm (jeśli masz swoje ciekawe makra, możesz je wysłać a pojawią się na VB4all).

wstecz