Makro zmiany rozmiaru wg % |
Autor |
Wiadomość |
kadoesdoi
Początkujący
Dołączył: 10 Cze 2015 Posty: 7 Skąd: Warszawa
|
Wysłany: 30 Listopad 2022, 14:03 Makro zmiany rozmiaru wg %
|
|
|
Hej Wszystkim
Próbowałem zrobić skrypt i makro który zmniejszałby obiekt m. in. o 4%.
Niestety okazało się, że na innych obiektach nie działa poprawnie ponieważ mimo że wpisywałem 96% w polu procentowym to skrypt zapamiętuję rozmiar obiektu a nie to o ile procent zmniejszyłem obiekt.
Czy jest możliwość stworzenia takiego skryptu? |
|
|
|
|
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 1 Grudzień 2022, 08:37
|
|
|
Witam.
Ale po co skrypt?
Wystarczy, że zaznaczysz obiekt, a następnie w oknie "Współczynnik skalowania" wpiszesz o ile chcesz zmniejszyć/zwiększyć dany obiekt.
Np. w oknie masz 100% dopisujesz -4 (100-4), i obiekt zmniejszy się o 4%.
Jeśli w oknie masz inną liczbę niż 100, to dorysuj w obiekcie jakiś kwadracik, który późnij wykasujesz, i później zaznaczając całość masz w okienku procentów 100. Dalej postępujesz jak na początku pisałem, a na koniec usuwasz dodany element i gotowe. |
|
|
|
|
kadoesdoi
Początkujący
Dołączył: 10 Cze 2015 Posty: 7 Skąd: Warszawa
|
Wysłany: 1 Grudzień 2022, 12:13
|
|
|
Hej.
I tak teraz pracuję. :)
Mam trzy stałe wartości które się powtarzają w mojej pracy.
Chciałbym mieć skrypt do każdej z nich aby ustawić skróty klawiaturowe.
W zaawansowanej formie chciałbym, aby skrypt obiekt z pierwszej strony skopiował na druga i zmniejszył o 4 lub 15%, a oryginał z pierwszej zmniejszył o 73 % i zmienił położenie, dopasowując grafikę do wizualizacji. :)
Nie wiem w ogóle czy to jest możliwe, ale taki chciałbym skrypt.
Póki co zatrzymałem się na procentowym zmniejszaniu. |
|
|
|
|
kadoesdoi
Początkujący
Dołączył: 10 Cze 2015 Posty: 7 Skąd: Warszawa
|
Wysłany: 6 Styczeń 2023, 10:16
|
|
|
Hej
Informatyk z mojej pracy chcąc pomóc podesłał taki skrypt, ale coś nie działa.
Macie może pomysł dlaczego?
VBA script dla CorelDraw
Sub ResizePercentage(percentage As Double)
Dim sel As Selection
Set sel = ActiveSelectionDim obj As Shape
For Each obj In sel
Dim newWidth As Double
newWidth = obj.Width * (percentage / 100)
Dim newHeight As Double
newHeight = obj.Height * (percentage / 100)
' Resize the object
obj.SetSize newWidth, newHeight
Next
End Sub
Pozdro. |
|
|
|
|
Martin Nez
Doradca Grafik?
Wersja CorelDRAW: 2019
Pomógł: 14 razy Dołączył: 29 Sty 2011 Posty: 114 Skąd: Czmoń
|
Wysłany: 4 Marzec 2023, 01:47
|
|
|
Witam,
spróbuj tego - nie jest to rozwiązanie Twojego problemu z resetowaniem pola procentowego, ale chyba nada się do tego co chcesz stworzyć.
Kod: | Sub test()
ksi 90
End Sub
Sub ksi(procent As Double)
ActiveSelection.SetSize ActiveSelection.SizeWidth * (procent / 100), 0#
End Sub |
Pozdr,
MN |
|
|
|
|
krof
Początkujący
Wersja CorelDRAW: 2021
Dołączył: 05 Gru 2023 Posty: 2 Skąd: Czerwionka
|
Wysłany: 5 Grudzień 2023, 14:55
|
|
|
Sub nowa_warstwa()
' Tworzenie nowej warstwy
Dim la2
la2 = "Warstwa-4%" 'Nazwa warstwy
Set newLayer = ActiveDocument.ActivePage.CreateLayer(la2)
If ActiveSelectionRange.Shapes.Count = 0 Then
MsgBox "Nie zaznaczono obiektów do przeskalowania", 16, "Uwaga"
Else
'kopiowanie z warstwy podstawowej do warstyw la2
Set sr = ActiveSelectionRange
sr.Copy
newLayer.Paste
'przeskalowanie obiektu na warstwie la2
Set sr1 = newLayer.Shapes.All
sr1.SizeHeight = sr1.SizeHeight * 1.04
sr1.SizeWidth = sr1.SizeWidth * 1.04
MsgBox "Wykonano"
End If
End Sub
Teraz można się bawić dalej dodać jeszcze jedną warstwę, jakieś dodatkowe fajerwerki np.sprawdzanie czy warstwa o takiej nazwie już isnieje. |
|
|
|
|
|