Szöveg automatikus frissítése és javítása Wordben VBA segítségével

2016. április 26. - Office Guru

Bármikor könnyedén előfordulhat egy feladat elvégzése során, hogy mondjuk a végeredményt egy WORD dokumentumban szeretnénk látni, akár például ügyfelenként, csapatonként, városonként, amit aztán természetesen publikálni, levélben küldeni is szeretnénk. A következő rövid kis posztban azt fogom megmutatni, hogyan tudunk a WORD szövegszerkesztőjén belülről makróval megnyitni más WORD dokumentumokat, azokban kicserélni részeket, majd újra lementeni őket - értelemszerűen a levélküldésről már volt párszor szó itt a blogon, úgyhogy az a lépés már tisztázott.

A mostani példánk első lépéseként a "mesterfájlunkba" szúrjunk be egy szimpla gombot a Ribbon Developer füle alatt található Controls szekcióból, amit aztán formázzunk meg kedvünk szerint:

w1.jpgJobb gombbal kattintás után a View Code menü kiválasztásával a VBA-editorba jutunk, ahol a gombra kattintás eseményéhez fogunk egy kódot rendelni.

w2.jpgA már azért sokak által valószínűleg ismert Documents.Open metódussal kezdünk, amely után első és egyetlen kötelező paraméterként a FileName paramétert használjuk a fájlunk nevével és elérési útjával, ezzel fogjuk elérni a fájl megnyitását:

w3.jpgEnnek a metódusnak viszont van még jópár nem kötelező paramétere is, mint például a ReadOnly, ami lehetővé teszi, hogy írásvédettként nyithatjuk meg a fájlt, a Visible, ami lehetővé teszi, hogy úgy nyissuk meg a fájlt, hogy a képernyőn ne látszódjon vagy éppen a Revert, amivel azokat a helyzeteket tudjuk kezelni, ha már nyitva van egy ugyanilyen nevű fájlunk.

Ezután szimplán csak egy With...End With utasítást fogunk felhasználni, amelyen belül a Selection objektum Find tulajdonságát fogjuk paraméterezni. Alapesetben a Selection a szövegünk kijelölt részét jelenti, amennyiben pedig ilyen nincs, akkor egészen az insertion pontig (ez az a villogó karakterjel, ahol folytathatjuk gépelésünket) történő kijelölésként értelmezi. A Find tulajdonság pedig egy olyan objektumot ad vissza nekünk, amely keresésünk feltételeit tartalmazza.

w4.jpgAhogy látható ebből a rövid kis kódrészletből, a Find objektumnak aztán van bőven tulajdonsága, a Text értelemszerűen megkeresi a Lafayette szócskát a szövegünkben, a Replacement.Text lecseréli ezt OfficeGurura, de hogy ez ténylegesen meg is történjen, az Execute metódust is használnunk kell, ami lefuttatja a keresési-cserélési műveletünket.

w5.jpgEnnek is van jópár paramétere, például a Replace paraméter azt határozza meg, hogy az összes találatot cserélje-e (wdReplaceAll) vagy sem vagy mondjuk a Forward, ami a keresést folytatja tovább a dokumentumban a következő találatig.

Aztán utolsó lépésként lementhetjük más néven a dokumentumunkat és be is zárjuk, mintha mi sem történt volna:

w6.jpg

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr18666256

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.