Zastap zaznaczony tekst |
Autor |
Wiadomość |
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 21 Lipiec 2020, 09:48 Zastap zaznaczony tekst
|
|
|
Witam.
Naczytałem się tematów aż głowa boli, a tego co potrzebuję nie znalazłem.
Ale do rzeczy.
Mam słowo jako "tekst ozdobny", zaznaczam go myszką (podwójny klik) i wybieram makro, które ten wyraz zamieni na inny (podany w makrze).
Znalazłem różne przykłady, ale wszystko wstawia tekst jako akapitowy, a mi jest potrzebny w poprzednio zaznaczonym miejscu jako "ozdobny".
Da się tak zrobić?
Pozdrawiam |
|
|
|
|
restauro
Wersja CorelDRAW: CorelDraw X4 ,X7
Pomógł: 574 razy Dołączył: 25 Lis 2009 Posty: 7680 Skąd: Gdynia
|
Wysłany: 21 Lipiec 2020, 12:02
|
|
|
Zaznacz tekst i wybierz opcję
zamiana.png
|
Pobierz Plik ściągnięto 378 raz(y) 81.35 KB |
|
|
|
|
|
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 21 Lipiec 2020, 12:17
|
|
|
restauro napisał/a: | Zaznacz tekst i wybierz opcję |
Nie o to chodzi. Makro ma zastąpić tekst innym (podanym jako zmienna w Makrze).
Np. Mam napisane "Jeden". Zaznaczam ten tekst uruchamia makro, które zmienia mi napis na "Dwa".
To tylko przykład. |
|
|
|
|
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 21 Lipiec 2020, 13:43
|
|
|
Mam coś takiego, ale to wypisuje tekst w zadanym miejscu (w tym wypadku pozycja 2, 2).
A ja chcę zastąć istniejący napis.
Sub zamienText()
Dim napis As Shape
Set napis = ActiveLayer.CreateArtisticText(2, 2, "Dwa")
End Sub |
|
|
|
|
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 24 Lipiec 2020, 07:56
|
|
|
Jakoś nikt oprócz RESTAURO nie podjął rękawicy, szkoda, bo mi już brakuje pomysłów.
Doszedłem już do tego aby zastępować obiekt (text) nowym, ale nie trafia on w odpowiednie miejsce.
Niby taka prosta sprawa, zastąpić kilka liter innymi i temat nie do przeskoczenia.
Oto co sam zdziałałem:
Sub zText()
Dim s As Shape
Dim origText As String
Dim newText As String
Dim finalText As String
Dim x As Double, y As Double
newText = "Dwa"
Set s = ActiveSelection.Group
s.GetPosition x, y
origText = s.Text.Story
s.Delete
ActiveLayer.CreateArtisticText x, y, newText
End Sub |
|
|
|
|
restauro
Wersja CorelDRAW: CorelDraw X4 ,X7
Pomógł: 574 razy Dołączył: 25 Lis 2009 Posty: 7680 Skąd: Gdynia
|
Wysłany: 24 Lipiec 2020, 13:15
|
|
|
Musisz poczekać , osoby zajmujące się programowaniem wpadają na forum niezbyt często .
Temat jest otwarty , jest więc szansa że za jakiś czas ?
Możesz sprawdzić ,kto ostatnio był aktywny i napisać na PW. |
|
|
|
|
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 24 Lipiec 2020, 14:54
|
|
|
Dzięki Restauro za dobre słowo.
W międzyczasie napisałem kilka innych makr usprawniających mi pracę.
Przygotowanie szablonu z 10 minut zmniejszyłem przez to do 1 minuty!
Gdybym jeszcze przeskoczył problem z tematu, to miałbym kolejne makra i znów urwałbym kilka minut z przygotowania.
Pozdrawiam |
|
|
|
|
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 27 Lipiec 2020, 14:15
|
|
|
Witam.
Na ponad 130 przeglądających nic, zero podpowiedzi, ech życie...
Ale żeby nie było, zrobiłem wreszcie coś co w pełni mnie zadowala.
Program wykonuje to co chciałem w 99%, i tak jak chciałem.
Makro poniżej, może przyda się jeszcze komuś.
_______________
Sub ZastapText()
Dim nowy$, x As Shape
nowy = ("Dwa")
Set x = ActiveLayer.Shapes.FindShape("Kolor", cdrTextShape)
x.Text.Story.Text = nowy
End Sub
_______________
Może jest i prostszy sposób, ale ja na niego nie wpadłem.
Temat do zamknięcia.
Pozdrawiam |
|
|
|
|
Martin Nez
Doradca Grafik?
Wersja CorelDRAW: 2019
Pomógł: 14 razy Dołączył: 29 Sty 2011 Posty: 114 Skąd: Czmoń
|
Wysłany: 23 Listopad 2020, 17:59
|
|
|
Witam,
spróbuj tego:
Kod: | Sub kek()
Dim nowy As String
nowy = "inny"
ActiveShape.Text.Selection.Replace (nowy)
End Sub |
Pozdr,
MN |
|
|
|
|
kek
Praktyk
Wersja CorelDRAW: X7
Dołączył: 20 Lut 2017 Posty: 81 Skąd: Polska
|
Wysłany: 30 Grudzień 2020, 07:26
|
|
|
Martin Nez napisał/a: | Witam,
spróbuj tego:
Kod: | Sub kek()
Dim nowy As String
nowy = "inny"
ActiveShape.Text.Selection.Replace (nowy)
End Sub |
Pozdr,
MN |
Witaj.
Późno odpisuję, ale dopiero zauważyłem, że jeszcze ktoś pisze w tym temacie.
Dzięki za skrypt, lecz jest jeden problem.
Twój program nie zastępuje wyrazu innym lecz dopisuje nowy do już istniejącego.
To co sam stworzyłem używam codziennie i się sprawdza.
Makra to jest to. Wykonują za mnie pracę i nie popełniają błędów :)
Pozdrawiam |
|
|
|
|
Martin Nez
Doradca Grafik?
Wersja CorelDRAW: 2019
Pomógł: 14 razy Dołączył: 29 Sty 2011 Posty: 114 Skąd: Czmoń
|
Wysłany: 4 Luty 2021, 19:43
|
|
|
To co opisałeś dzieje się u mnie jeśli nie zaznaczę wyrazu, który chcę podmienić tylko umieszczę kursor w jakimś miejscu. Wcześniej pisałeś, że dwuklikiem zaznaczasz wyraz i wtedy działa prawidłowo (no, tak prawie, bo nie dodaje spacji na końcu, ale to proste do poprawienia :) ).
Pozdr,
MN |
|
|
|
|
|