Vraag & Antwoord

Anders (software)

Hoe tekst selecteren in macro Word 2000

3 antwoorden
  • Ik wil in een rapportage middels een macro een deel van de tekst selecteren en elders weer in dat document plakken. Ik was gewend dat met bladwijzers te doen, doch gaf dat al problemen met thuiswerkversie en kantoorversie (lokatie bestanden en op kantoor Off XP) maar dit is een samenvoegdocument (haalt data uit Excelbestand) en dat loopt gewoon vast. Hoe kan ik nu via een macro een deel van de tekst selecteren. Deze tekst kan varieren in grootte en alineas. Als er nog andere opties zijn hoor ik dat graag. Alvast bedankt.
  • Makkelijkste manier die in alle versies van Word zou moeten werken is toch echt met een bladwijzer. Je zet de bladwijzer over het stuk tekst dat je nodig hebt en selecteert die tekst dan met: ActiveDocument.Bookmarks("Bladwijzernaam").Range.Select Als je de bladwijzer echter niet hebt omdat je bijv. net het bestand hebt getypt ofzo, dan kun je door wandelen met de cursor evt. het juiste stuk tekst selecteren. Naar begin van document gaan: Selection.HomeKey wdStory Teken naar rechts gaan: Selection.MoveRight wdCharacter, 1 Woord naar rechts gaan: Selection.MoveRight wdWord, 1 Alinea naar rechts gaan: Selection.MoveRight wdParagraph, 1 Teken naar rechts gaan en selecteren: Selection.MoveRight wdCharacter, 1, wdExtend Daarvan een combinatie maken en je komt al een heel eind. Als ook dat niet mogelijk is, bijv. als je de tekst tussen de eerste en laatste witregel van een document wil hebben, of de tekst tussen "Vraag 1:" en "Vraag 2:", dan kun je tijdelijke bladwijzers gebruiken en bijv zoiets doen: [code:1:d811877c50] Selection.Find.Text = "Vraag 1:" Selection.Find.Execute Selection.MoveRight wdCharacter, 2 Do While Right(Selection.Text, 8) <> "Vraag 2:" Selection.MoveRight wdCharacter, 1, wdExtend Loop Selection.MoveLeft wdCharacter, 8, wdExtend [/code:1:d811877c50] Dat kun je nog beveiligen tegen het ontbreken van een van de twee teksten (hij blijft dan in de loop hangen) door bijv. achteraan het document "##" te typen voor je begint en in de loop te controleren of je daar niet bent aanbeland: [code:1:d811877c50] Selection.EndKey wdStory Selection.TypeText "##" Selection.HomeKey wdStory Selection.Find.Text = "Vraag 1:" Selection.Find.Execute Selection.MoveRight wdCharacter, 2 Do While Right(Selection.Text, 8) <> "Vraag 2:" And Right(Selection.Text, 2) <> "##" Selection.MoveRight wdCharacter, 1, wdExtend Loop Selection.MoveLeft wdCharacter, 8, wdExtend [/code:1:d811877c50] En daar dan nog wat meer foutafhandeling bijmaken...
  • Het is eindelijk gelukt om meerdere blokken tekst naar andere delen te kopieëren, maar...... Ik heb de makro gezet in een aparte *.dot, zodat ik niet afhankelijk ben van verschillende normal.dot's, waarin de makro normaal komt. Ik had de aparte *.dot gekoppeld aan Alt-H. De *.dot heb ik aan mijn basisdocument gekoppeld via "sjablonen en invoegtoepassingen". Het pad is korrekt alleen is het daaronder niet aangevinkt. Na samenvoeging naar een nieuw document (basisdocument leest info vanuit een Excelbestand) start de makro niet op met alt-H. Als ik via het menu naar macro ga kan ik de macro (wel in de lijst) niet opstarten. Vak is grijs. Als ik in dit samengevoegde document hat sjabloon *.dot aanvink start de makro nog niet met alt-H en via het menu krijg ik te horen dat de makro's in dit project zijn uitgeschakeld. Wat doe ik fout? Het is de bedoeling dat ik in het samengevoegde document met alt-H de makro kan starten.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.