Hello,
I want to apply a different character style to some characters of an artistic text in CorelDRAW 2024.
Following the help from here, and here I made the next script:
Sub Test3() Dim t As Text Dim s As Shape Dim s2 As Shape Dim st As Styles Dim d As Document Set d = CreateDocument Set s2 = d.ActiveLayer.CreateArtisticText(4, 6, "text for creating a style", , , "Arial", 36, cdrTrue) Set st = d.StyleSheet.CreateStyleFromShape(s2, "character", "Test style", True) Set s = d.ActiveLayer.CreateArtisticText(4, 5, "This is a test.") Set t = s.Text MsgBox "The text between characters 10 and 14 is: " & vbCr & t.Range(10, 14).Text t.Range(10, 14).Case = cdrAllCapsFontCase t.Range(10, 14).ApplyStyle "Test style"End Sub
The last line with ApplyStyle doesn't do anything, the selected characters remains with the original formating.
Am I doing something wrong?
I also couldn't solve it using the style properties, but I already needed to do that and I solved it as follows.Sub Test4() Dim s As Shape Dim h As Shape Dim d As Document Dim c As String Dim r As String Dim t As Integer Set d = ActiveDocument Set h = d.ActiveLayer.CreateArtisticText(4, 6, "text for creating a style", , , "Verdana", 36, cdrTrue) Set s = d.ActiveLayer.CreateArtisticText(4, 5, "This is a test on text.") c = "test" r = s.Text.Story.Text t = InStr(1, r, c, vbTextCompare) If t <> 0 Then With s.Text.Range(t - 1, t + Len(c) - 1) .Case = cdrAllCapsFontCase .Size = h.Text.Story.Size .Font = h.Text.Story.Font .Bold = h.Text.Story.Bold End With End If MsgBox "The word: '" & c & "' was found in the text: " & vbCr & r, vbInformation, s.Text.StoryEnd Sub