Vsaka beseda v svoji vrstici

Pomoč pri delu z MS Wordom
Odgovori
solata
Prispevkov: 22
Pridružen: Če Sep 01, 2005 10:31 am

Vsaka beseda v svoji vrstici

Odgovor Napisal/-a solata »

Vsaka beseda v svoji vrstici

Pozdravljeni,
kot zelenec in prvimi koraki z VBA prosim za naslednjo pomoč:

- wordov dokument (le za predstavo: dve strani, osem odstavkov)
- vsako besedo bi želel ''pretvoriti' tako, da bi bila v svoji vrstici
- med besedami so presledki (blenk)
- zanka od začetka do konca dokumenta

Hvala v naprej
admin
Site Admin
Prispevkov: 3690
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

:? Hm, a je to kakšna seminarska naloga? No, ker je rešitev tako trivialna, ne bom vrtal :):

Koda: Izberi vse

Sub VseBesede()
  For Each beseda In ActiveDocument.Words
    Debug.Print beseda
  Next
End Sub
lp,
Matjaž Prtenjak
Administrator
solata
Prispevkov: 22
Pridružen: Če Sep 01, 2005 10:31 am

Odgovor Napisal/-a solata »

admin napisal/-a::? Hm, a je to kakšna seminarska naloga? No, ker je rešitev tako trivialna, ne bom vrtal :):

Koda: Izberi vse

Sub VseBesede()
  For Each beseda In ActiveDocument.Words
    Debug.Print beseda
  Next
End Sub
Hvala za hitri odgovor :o
Ni seminarska, toda ko to kodo kopiram+prilepim kot novi macro (prekrijem neko moje igračkanje), ga zaženem, dokument ''ne trzne'' in nič se ne zgodi :P
kaj pomeni tista ''beseda'' ? je potrebna kašna definicija?
thx
GoldZ
Prispevkov: 137
Pridružen: Če Sep 01, 2005 10:20 am

Odgovor Napisal/-a GoldZ »

Poglejte v "intermediate" okno :)

Beseda "beseda" je že Ok... :wink:
Življenje je enostavno, če poznaš "The Secret".
GoldZ
solata
Prispevkov: 22
Pridružen: Če Sep 01, 2005 10:31 am

Odgovor Napisal/-a solata »

GoldZ napisal/-a:Poglejte v "intermediate" okno :)

Beseda "beseda" je že Ok... :wink:
iščem toda ne najdem tega "intermediate" okna.
lahko malce bolj konkretno, pliz.
thx
admin
Site Admin
Prispevkov: 3690
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Hm...

Očitno ste resnično začetnik in v tem primeru ste si zadali malce preteško nalogo. Vseh podrobnosti nimam časa razlagati, a prejšnji makro vam je vse besede zapisal v okono intermediate, ki se nahaja v VBA urejevalniku.

Vi pa očitno želite, da bi se vse besede zapisale v sam dokument, namesto obstoječega teksta. V tem primeru je makro malce daljši, saj morate najprej vse besede prebrati in jih nato zapisati v dokument. Če bi besede sproti pisali v dokument, bi bilo besed vedno več in stvar se nebi nikoli končala :). No kakorkoli, makro je spodaj:

Koda: Izberi vse

Sub VseBesede()
  Dim beseda, VseBesede
  For Each beseda In ActiveDocument.Words
    VseBesede = VseBesede & "#" & beseda
  Next
  
  Dim besede
  besede = Split(VseBesede, "#")
  
  Selection.WholeStory
  Selection.Delete

  For Each beseda In besede
    Selection.TypeText Text:=beseda
    Selection.TypeParagraph
  Next
End Sub
lp,
Matjaž Prtenjak
Administrator
solata
Prispevkov: 22
Pridružen: Če Sep 01, 2005 10:31 am

Odgovor Napisal/-a solata »

super - leti kot sneta skira !

hvala za trud :D
hoplit
Prispevkov: 2
Pridružen: Če Nov 29, 2007 10:31 am

Odgovor Napisal/-a hoplit »

Mi lahko prosim pomagate, kako se pa napravi da bi namesto ene besede v vrstici bile 3 besede (ali 4)?

In pa ali je razlika uporabiti makro v Wordu ali pa v Open Officeu?

Hvala za pomoč!
admin
Site Admin
Prispevkov: 3690
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Spodaj imate popravljen makro, kjer število besed v vrstici poveste tako, da spremenite številko pri (StBesedVVrstici = 4):

Koda: Izberi vse

Sub VseBesede()
  Dim beseda, VseBesede
  For Each beseda In ActiveDocument.Words
    VseBesede = VseBesede & "#" & beseda
  Next
 
  Dim besede
  besede = Split(VseBesede, "#")
 
  Selection.WholeStory
  Selection.Delete
  
  Dim StBesedVVrstici As Integer
  StBesedVVrstici = 4

  Dim i As Long, j As Long
  For i = LBound(besede) To UBound(besede) Step StBesedVVrstici
    For j = 0 To StBesedVVrstici - 1
      If (i + j <= UBound(besede)) Then Selection.TypeText Text:=besede(i + j)
    Next
    Selection.TypeParagraph
  Next
End Sub
Makro za OO pa je precej drugačen.
lp,
Matjaž Prtenjak
Administrator
hoplit
Prispevkov: 2
Pridružen: Če Nov 29, 2007 10:31 am

Odgovor Napisal/-a hoplit »

Najlepša hvala!
Odgovori