Wikipédia:Wikipédia szerkesztés MS Word makrókkal
Ez a technikai leírás a Microsoft Word program használatát mutatja be, melynek segítségével gyakran ismétlődő, unalmas szerkesztési műveleteket egyszerűsíthetünk le és gyorsíthatunk fel. A cikk tartalmaz egy példát is a Word makrók használatához is.
A Microsoft Wordben lehetőségünk van ún. makrókat írni és futtatni. Ezek az apró kicsi programok a hosszabb szövegek átalakítását segítik elő. Lehetőség van egy hosszabb szöveg vagy szövegrész szavainak automatikus cseréjére is, mely jól jöhet, ha idegen nyelvű szöveget veszünk át más Wikipédiából (pl.: egy infoboxot).
Makró írásához programozási tudás nem szükséges, ugyanis a beépített makrórögzítő képes a gyorsgombokkal vagy az egérrel végzett műveletek rögzítésére is. Így elég csak végiggondolnunk, hogy mit szeretnénk, elindítjuk a makrórögzítőt, sorba megoldjuk a feladatot, majd leállítjuk a rögzítést. A kész programot menthetjük csak egy bizonyos dokumentumba, így az csak ott fog működni, vagy a normal.dot sablonba. Ekkor bármely megnyitott dokumentumban lefuttathatjuk a programot.
Példaprogram
[szerkesztés]A repülőterekről szóló angol cikkek gyakran tartalmaznak a kifutópályákról is adatokat (hossz, szög, anyag). Ezeket azonban kézzel átmásolni a magyar cikkekbe meglehetősen unalmas feladat, ráadásul könnyedén el is hibázhatjuk a másolást. Ebben az esetben egy makró nagy segítséget nyújt.
Angol infobox tartalma
[szerkesztés]| r1-number = 4L/22R | r1-length-f = 7,500 | r1-length-m = 2,286 | r1-surface = [[Asphalt]] | r2-number = 4R/22L | r2-length-f = 8,075 | r2-length-m = 2,461 | r2-surface = Asphalt | r3-number = 9L/27R | r3-length-f = 7,500 | r3-length-m = 2,286 | r3-surface = Concrete | r4-number = 9R/27L | r4-length-f = 7,967 | r4-length-m = 2,428 | r4-surface = Asphalt/Concrete | r5-number = 10C/28C | r5-length-f = 10,800 | r5-length-m = 3,291 | r5-surface = Concrete | r6-number = 10L/28R | r6-length-f = 13,001 | r6-length-m = 3,962 | r6-surface = Asphalt/Concrete | r7-number = 14L/32R | r7-length-f = 10,005 | r7-length-m = 3,050 | r7-surface = Asphalt | r8-number = 14R/32L | r8-length-f = 9,685 | r8-length-m = 2,952 | r8-surface = Asphalt/Concrete
Az infoboxnak a fenti részét bemásoljuk egy üres Word dokumentumba, majd lefuttatjuk az alábbi makrót:
Makró
[szerkesztés]Megjegyzés: a makrórögzítővel készített Visual Basic program nem épp tömör és optimális kódot eredményez, de legalább áttekinthető és működőképes. Ez a példa nyolc hasonló cserét végez, továbbá eltávolítja azokat a sorokat, mely nem szerepel a magyar infoboxokban. Az első nyolc cserét ciklussal is meg lehetne oldani ebben az esetben, ám ha másféle, nem ennyire egyforma cseréket végzünk, akkor a ciklus nem jó megoldás. A kódot testre szabhatjuk és saját cserélendő szavakkal módosíthatjuk. A .Text = "r1-number" a keresett és cserélendő kifejezést mutatja, a példában az r1-number szót idézőjelek között, míg a .Replacement.Text = "kifutó_szög1" a helyettesítő szöveget mutatja, a példánkban kifutó_szög1, szintén idézőjelek között.
Sub kifutópályák() ' ' kifutópályák Makró ' Kifutópályák adatainak fordítása magyarra ' Selection.HomeKey Unit:=wdLine Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "r1-number" .Replacement.Text = "kifutó_szög1" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r2-number" .Replacement.Text = "kifutó_szög2" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r3-number" .Replacement.Text = "kifutó_szög3" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r4-number" .Replacement.Text = "kifutó_szög4" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r5-number" .Replacement.Text = "kifutó_szög5" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r6-number" .Replacement.Text = "kifutó_szög6" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r7-number" .Replacement.Text = "kifutó_szög7" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r8-number" .Replacement.Text = "kifutó_szög8" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "r8-number" .Replacement.Text = "kifutó_szög8" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "r1-length-m" .Replacement.Text = "kifutó_hossz1" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r2-length-m" .Replacement.Text = "kifutó_hossz2" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r3-length-m" .Replacement.Text = "kifutó_hossz3" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r4-length-m" .Replacement.Text = "kifutó_hossz4" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r5-length-m" .Replacement.Text = "kifutó_hossz5" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r6-length-m" .Replacement.Text = "kifutó_hossz6" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r7-length-m" .Replacement.Text = "kifutó_hossz7" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r8-length-m" .Replacement.Text = "kifutó_hossz8" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "r1-surface" .Replacement.Text = "kifutó_burkolat1" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r2-surface" .Replacement.Text = "kifutó_burkolat2" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r3-surface" .Replacement.Text = "kifutó_burkolat3" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r4-surface" .Replacement.Text = "kifutó_burkolat4" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r5-surface" .Replacement.Text = "kifutó_burkolat5" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r6-surface" .Replacement.Text = "kifutó_burkolat6" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r7-surface" .Replacement.Text = "kifutó_burkolat7" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "r8-surface" .Replacement.Text = "kifutó_burkolat8" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "asphalt" .Replacement.Text = "aszfalt" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "concrete" .Replacement.Text = "beton" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll With Selection.Find .Text = "Grass" .Replacement.Text = "Fű" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting For x = 1 To 8 With Selection.Find .Text = "length" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Selection.EndKey Unit:=wdLine Selection.HomeKey Unit:=wdLine, Extend:=wdExtend Selection.TypeBackspace Selection.TypeBackspace Next x End Sub
Lefordított sablon
[szerkesztés]A makró futtatása után a Wordben az alábbi szöveget kapjuk:
| kifutó_szög1 = 4L/22R | kifutó_hossz1 = 2,286 | kifutó_burkolat1 = [[Aszfalt]] | kifutó_szög2 = 4R/22L | kifutó_hossz2 = 2,461 | kifutó_burkolat2 = Aszfalt | kifutó_szög3 = 9L/27R | kifutó_hossz3 = 2,286 | kifutó_burkolat3 = Beton | kifutó_szög4 = 9R/27L | kifutó_hossz4 = 2,428 | kifutó_burkolat4 = Aszfalt/Beton | kifutó_szög5 = 10C/28C | kifutó_hossz5 = 3,291 | kifutó_burkolat5 = Beton | kifutó_szög6 = 10L/28R | kifutó_hossz6 = 3,962 | kifutó_burkolat6 = Aszfalt/Beton | kifutó_szög7 = 14L/32R | kifutó_hossz7 = 3,050 | kifutó_burkolat7 = Aszfalt | kifutó_szög8 = 14R/32L | kifutó_hossz8 = 2,952 | kifutó_burkolat8 = Aszfalt/Beton
Ezt már csak be kell másolni egy magyar cikkbe és kész is vagyunk.
A példában szereplő makrót úgy tudjuk használni, hogy elindítjuk a Word-öt, Fejlesztőeszközök menü, Makrók gomb, majd a megjelenő párbeszédablakon a Létrehozás gombra kattintunk és bemásoljuk a makró kódját, felülírva az ott szereplő rövid kódrészletet.
A futtatáshoz pedig: Fejlesztőeszközök, Makró, Indítás gomb.