[VBA/WORD] Probleem met vinden van einde regels

Pagina: 1
Acties:
  • 179 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 29-05 09:01

Basszje

Reisvaap!]

Topicstarter
Goedenmiddag,

Ik moet op dit moment een macro coden in WORD VBA. Ik ben er echter niet helemaal in thuis :) .

De bedoeling is dat je bij een word document elke regel pakt en dan de witruimte aanvult tot aan het eind van de regel indien er op die regel een harde return is gegeven.

Output moet iets zijn als :
Kwam je er zelf of met de search niet uit, geef dan duidelijk en specifiek aan wat je wel gevonden en al geprobeerd hebt. -----[ hrRt ]
Die lijntjes moeten dus tot aan het eind van de regel staan indien er een harde return op de regel aanwezig is

Het probleem hierbij is dat je in een document wel kan zoeken binnen woorden, character, paragrafen en bijna alle elementen, maar ik kan er maar geen een ontdekken die dat kan voor een 'line' ( WDLine constante bestaat echter wel :? ) .

Daarnaast is het natuurlijk een mogelijk probleem dat een regel niet per definitie tot aan het eind is uitgevuld, maar eindigt bij het laatst ingevoerde character van die regel. Ik vermoed dat dat ook voor problemen kan zorgen.

Ik heb zelf al een beetje met selections en moveleft/ moverights / moveEnds zitten spelen, maar ik vermoed dat dit toch niet helemaal is waar ik naar zoek :?

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

Anoniem: 32767

vbCrLf misschien een uitkomst op om te gaan zoeken?

Acties:
  • 0 Henk 'm!

Anoniem: 95437

lees het faq!

.modbreak
Lees de Policy!

[ Voor 91% gewijzigd door drm op 04-11-2003 16:05 ]


Acties:
  • 0 Henk 'm!

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 13-02 14:20

Jaspertje

Max & Milo.. lief

offtopic:
Hmm lees m zelf dan ook maar, je kan het melden door op het handje te drukken...

Nu ontopic.. hey basszje hoe'st? :)

en nu echt.. het zal ook wel niet helpen maar ch(13) ?

Hmm ik lees niet goed.. Ander idee: Kan je niet kijken hoeveel karakters er op een regel kunnen ongeveer en daarmee iets doen?

[ Voor 20% gewijzigd door Jaspertje op 04-11-2003 15:40 ]


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 29-05 09:01

Basszje

Reisvaap!]

Topicstarter
Nou ja het probleem dus is dat ik niet echt kan zoeken op die VbCrlf rommel dus, omdat ik die zut per regel niet kan ophalen :? .

Tenminste ik krijg het niet voor elkaar om dat dus te doen ;) Ik kan wel van het hele document de tekst opvragen, maar dat lijkt mij ook niet helemaal de manier .

Het probleem daarmee dus is dat de characters van de regel die niet explicitiet bestaan ook niet in dat soort collecties wordt meegegeven. Dat is dus een beetje lastig aanvullen ;)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Kan je ook aangeven waarom je die regels wilt aanvullen, want het is binnen word afhankelijk van je letters (en lettertype) hoeveel characters er op een regel passen.

Als je een monotyped font gebruikt, dan is het wel te doen!


Enters zijn trouwens te vinden met ^p ;)

[ Voor 10% gewijzigd door BtM909 op 04-11-2003 15:51 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • KingRichard
  • Registratie: September 2002
  • Laatst online: 21-03 22:06

KingRichard

former Duke of Gloucester

Basszje schreef op 04 november 2003 @ 15:27:
Ik moet op dit moment [...]
Jij moet helemaal niks! ;)
Maarrehhhh, voor een moderator vind ik je startpost ook matig. Maar goed:
Ik neem aan dat je met harde return gewoon een return bedoeld. Het einde van een alinea dus. In dat geval kun je zoeken op Chr(wdKeyReturn) en vandaar achteruit zoeken/vervangen, tot je iets tegenkomt dat geen spatie is.

Ik heb je startpost nog eens doorgewerkt...
Basszje schreef op 04 november 2003 @ 15:27:
[...] en dan de witruimte aanvult [...]
Die lijntjes moeten dus tot aan het eind van de regel staan indien er een harde return op de regel aanwezig is
Lijntjes, witruimte, wat is het nou?
Ik begin opeens het vermoeden te krijgen dat je regels op het scherm wilt uitvullen met spaties tot ze allemaal even lang zijn... Zoals:
code:
1
2
3
4
5
6
7
8
Denkend aan Holland____
zie ik breede rivieren_
traag door oneindig____
laagland gaan,_________
rijen ondenkhaar_______
ijle populieren________
als hooge pluimen______
aan den einder staan;__

Bedoel je dit? Zo niet, wat dan wel?

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 29-05 09:01

Basszje

Reisvaap!]

Topicstarter
KingRichard schreef op 04 november 2003 @ 15:49:
[...]
Maarrehhhh, voor een moderator vind ik je startpost ook matig.
Mag je even aangeven waarom je dat precies vindt :) . Ik probeer een probleem uit te leggen wat ik heb. Maar omdat ik op het moment even niet helemaal het overzicht heb binnen de 1001 collecties en objecten van word komt het misschien wat verward over .. Je gestreep verklaart echter wel dat er meer in de TS zit dan op het eerste gezicht het geval lijkt ;)
Ik begin opeens het vermoeden te krijgen dat je regels op het scherm wilt uitvullen met spaties tot ze allemaal even lang zijn... Zoals:
code:
1
2
3
4
5
6
7
8
Denkend aan Holland____
zie ik breede rivieren_
traag door oneindig____
laagland gaan,_________
rijen ondenkhaar_______
ijle populieren________
als hooge pluimen______
aan den einder staan;__

Bedoel je dit? Zo niet, wat dan wel?
Dat is inderdaad precies wat ik bedoel. Echter waar ik dus tegen aan zit te hikken is bepalen hoeveel van die krengen je precies moet toevoegen tot je aan het eind van de regel zit.

Er zit een verschil in

code:
1
2
Denkend aan Holland________________
                  1^             2^


Kijk normaal zit de regeleinde ( en dus van functies als MoveEnd(wdline) ) bij ^1, terwijl ik dus tot 2 wil uitvullen.

[ Voor 3% gewijzigd door Basszje op 04-11-2003 16:00 ]

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Acties:
  • 0 Henk 'm!

  • KingRichard
  • Registratie: September 2002
  • Laatst online: 21-03 22:06

KingRichard

former Duke of Gloucester

Juist. Dat is iets wat in Word niet gebruikelijk is, vandaar de verwarring. Als je in Word zoiets wilt, gebruik je Opmaak -> Alinea -> Uitlijnen: Uitvullen
Maar als je platte tekst in een monotyped font wilt uitvullen tot een x aantal karakters, kan ik je ook wel helpen:
Zorg ervoor dat elke regel met een return eindigt. (De laatste alinea is dan automatisch leeg.)
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub RegelsAanvullen()

Dim n, intLengte As Integer

intLengte = 50 'Elke regel moet in totaal 50 karakters lang zijn.

For n = 1 To ActiveDocument.Paragraphs.Count - 1
    
    With ActiveDocument.Paragraphs(n)
        
        .Range.Text = Left(.Range.Text, Len(.Range.Text) - 1) _
            & Space(intLengte - .Range.Characters.Count) _
            & Chr(wdKeyReturn)
            
    End With
        
Next n

End Sub
Beetje ranzige code, maar zou moeten werken.
offtopic:

Basszje schreef op 04 november 2003 @ 15:59:
[KingRichard is een beetje bot...]
Mag je even aangeven waarom je dat precies vindt :) .
• Je begint met "Goedenmiddag, "• Je hebt het door elkaar over streepjes en witruimtes.• Je voorbeeld van de output bevat maar één regel, terwijl je probleem gaat over meerdere regels die eenzelfde eigenschap moet krijgen (lengte)• Ik snap niks van een zin als: "Daarnaast is het natuurlijk een mogelijk probleem dat een regel niet per definitie tot aan het eind is uitgevuld, maar eindigt bij het laatst ingevoerde character van die regel."• Je had gewoon kunnen vragen: "Ik heb een tekst met meerdere regels. Ik wil dat elke regel aan het eind wordt aangevuld met spaties tot een bepaalde lengte. Hoe doe ik dat in Word/VBA? Ik heb het volgende geprobeerd..."
Ik bedoel er verder niks mee hoor. Ik verwacht gewoon bovennatuurlijk goede topicstarts van mods. :)

a horse! a horse! my kingdom for a horse! (exeunt)
[got.profile] | [t.net.profile] | [specs]


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

KingRichard schreef op 04 november 2003 @ 16:51:
Visual Basic:
1
2
3
Sub RegelsAanvullen()

End Sub
Beetje ranzige code, maar zou moeten werken.
Dit kan ook inderdaad. Ik zat zelf nog te denken aan een right tab toevoegen en tot die positie underscores toe te voegen. :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 29-05 09:01

Basszje

Reisvaap!]

Topicstarter
Dank je wel :) Ik ga er zo meteen even naar kijken en bouwen. Kijken of het me lukt ;)

offtopic:
Het spijt me :'(, zal er wel op letten. Maar het is voor mij ook niet helemaal duidelijk ;)

[ Voor 14% gewijzigd door Basszje op 04-11-2003 17:26 ]

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.

Pagina: 1