Corel FORUM Strona Główna Corel FORUM
Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
MAKRO ZAZNACZ WYTNIJ WKLEJ JEDNO POD DRUGIM
Autor Wiadomość
nikiel 
Początkujący


Wiek: 45
Dołączył: 06 Mar 2012
Posty: 10
Skąd: bxl
Wysłany: 12 Czerwiec 2012, 15:53   MAKRO ZAZNACZ WYTNIJ WKLEJ JEDNO POD DRUGIM

Czesc
moze ktos mi pomoc napisac makro dla dokumentu wielostronicowego
ktore bedzie:
- zaznaczac wszystko na stronie
- wytnie zawartosc
- wklei na pierwszej stronie zawartosc z wycietych stron jeden pod drugim

czyli dok ma 100 stron z zawartoscia a ja to chce pozbierac wszystko po kolei
dzieki i pozdrawiam
 
 
maroQ 
Doradca


Pomógł: 16 razy
Wiek: 40
Dołączył: 08 Lut 2011
Posty: 117
Skąd: Kalisz
Wysłany: 18 Czerwiec 2012, 22:30   

nikiel napisał/a:
moze ktos mi pomoc napisac makro

Pomóc mogę :)
nawet za darmo, ale musisz sam zacząć ;) lub dopytać z czym masz problem.

Mówią na mnie "szaman" bo nie lubię robić za darmo i nie zdradzam wszystkich sekretów :)

Cytat:
- zaznaczac wszystko na stronie

łatwe
nikiel napisał/a:
- wytnie zawartosc

łatwe
nikiel napisał/a:
- wklei na pierwszej stronie zawartosc z wycietych stron

łatwe
nikiel napisał/a:
jeden pod drugim

nie specjalnie łatwe... Corel ma ograniczony obszar roboczy i nie można w nieskończoność wklejać, więc trzeba sprawdzać czy się nie przekroczyło obszaru... to już nie takie fajne....

Kod:
Sub copyAll(ByVal p As Page)
    p.Shapes.All.Copy
End Sub

Sub paste(ByVal p As Page, ByVal l As Layer)
    p.Activate
    l.paste
End Sub

Sub game()
    Dim ap As Page, p As Page
    Dim l As Layer
    Dim wrum As Double
    Dim dist As Integer
    ActiveDocument.Unit = cdrMillimeter
    ActiveSelectionRange.RemoveFromSelection
    Set l = ActiveLayer
    Set ap = ActivePage
    ap.Shapes.All.CreateSelection
    wrum = ActiveSelection.SizeHeight
    dist = 10
    For Each p In ActiveDocument.Pages
        If p.Index <> ap.Index Then
            ActiveSelectionRange.RemoveFromSelection
            Call copyAll(p)
            Call paste(ap, l)
            Call ActiveSelectionRange.Move(0, wrum)
            wrum = wrum - ActiveSelection.SizeHeight - dist
        End If
    Next p 'można pisać poprostu Next, ale Next p jest ładniej bo jak się ma n-forów to ciężko się połapać co jest do czego
End Sub

To nie do końca jest to o co prosisz. :)
Makro wstawia co prawda dane na stronę, ale nie przesuwa ich bezwzględnie za figurę tylko przesuwa je względnie. Wiem jak to poprawić, ale nie chce mi się tego robić bo:
a) jestem leniwy
b) nie mam czasu
c) jestem Szaman :P

Masz klocki to teraz się nimi pobaw :D
 
 
nikiel 
Początkujący


Wiek: 45
Dołączył: 06 Mar 2012
Posty: 10
Skąd: bxl
Wysłany: 21 Czerwiec 2012, 10:30   szaman

MaroQ alias Szaman ja juz Ciebie lubie


PS
Rozumiem ze ustawianie jedno pod drugim to zmiana parametru dist
ale dziala poprawnie to tylko na pierwsze trzy linie a pozniej podwaja dystans
mam x5
a ogolnie jestem bardzo szczesliwy ze mi pomogles


mam rowniez pytanie czy orientujecie sie dlaczego print merge dodaje mi kropke i zero na plikach importowanych z excela mam liczbe i dozuca .0
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.08 sekundy. Zapytań do SQL: 13