|
Corel FORUM Forum użytkowników programów firmy Corel. Grafika wektorowa, rastrowa i obróbka zdjęć cyfrowych |
|
Makra - Zastap zaznaczony tekst
kek - 21 Lipiec 2020, 09:48 Temat postu: 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 - 21 Lipiec 2020, 12:02
Zaznacz tekst i wybierz opcję
kek - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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
|
|