logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Makro Word. Jak zrobić, aby za każdym uruchomieniem makra linijki były mieszane?

henryk251 04 Gru 2007 12:48 2009 1
REKLAMA
  • #1 4550302
    henryk251
    Poziom 14  
    Posty: 89
    Pomógł: 7
    Ocena: 20
    Witam

    Podczas przygotowywania pewnych dokumentów w Wordzie pewna czynność często się powiela. Próbowałem wykorzystać do tego edytor makr, ale... pojawił się problem. Najlepiej jeśli wyjaśnię całość na przykładzie. Mam tekst składający się z 10 linijek:

    To jest pierwsza linijka.
    To jest druga linijka.
    To jest trzecia linijka.
    To jest czwarta linijka.
    To jest piąta linijka.
    ...
    ...
    To jest dziesiąta linijka.

    Po uruchomieniu makra chciałbym aby linijki były losowo wymieszane. Za każdym uruchomieniem makra położenie linijek ma być inne.
    Niestety nie wiem jak się do tego zabrać.
    Może ktoś podpowie jak rozwiązać problem?

    Pozdrawiam
    Henryk
  • REKLAMA
  • #2 4568483
    aligatormp
    Poziom 14  
    Posty: 99
    Pomógł: 10
    Ocena: 7
    Witam
    Założyłem, że linie to zdania (paragraph) - w przypadku gdyby zdanie zawierało kilka linii zmiana kolejności linii zmieni szyk zdania. W moim przypadku zmieni się kolejność zdań. Makro uruchamia się przez alt+X. Zaznaczany jest cały zapisany tekst i losowo zmieniana jest kolejność zdań w tekście.

    
    Sub Makro1()
    '
    ' Makro1 Makro
    ' Makro zapisane 07-12-09 przez MP
    '
    ' makro uruchamiam klawiszem alt+X
    '
    Dim lCountPar As Long
    Dim sNumPar As Single
    Dim sTekst As String
    Do
        Selection.HomeKey Unit:=wdStory
        Selection.EndKey Unit:=wdStory, Extend:=wdExtend
        lCountPar = Selection.Paragraphs.Count
        sNumPar = Int(Math.Rnd * lCountPar)
        Selection.HomeKey Unit:=wdStory
        Selection.Move Unit:=wdParagraph, Count:=sNumPar
        Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
        sTekst = sTekst + Selection.Text
        Selection.Delete
    Loop Until lCountPar = 1
    Selection.Text = sTekst
    Selection.EndKey Unit:=wdStory
    Selection.Delete
    End Sub


    Załącznik zawiera uruchomione makro.
    Pozdrawiam
    Załączniki:
    • aa.doc (34 KB) Musisz być zalogowany, aby pobrać ten załącznik.
REKLAMA