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, 10: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, 13:02

Zaznacz tekst i wybierz opcję
kek - 21 Lipiec 2020, 13: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, 14: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, 08: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, 14: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, 15: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, 15: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


Powered by phpBB modified by Przemo © 2003 phpBB Group