Я пишу скрипт на VBA, который создает рисунок в CorelDraw. У меня проблемы с центрированием текста. Вот код, который правильно работает в редакторе макросов CorelDraw:
Dim s2 As Object
Dim Txt As Object
Dim test As String
Dim returntest As String
returntest = "Test~Test1234~Test56~Test789"
test = Replace(returntest, "~", Chr(13))
Set s2 = CorelApp.ActiveLayer.CreateArtisticText(-7.75, (1 - 0.5) / 2, test)
Set Txt = s2.Text
Txt.Story.Font = "Swis721 BT"
Txt.Story.Size = 20
Txt.Story.LineSpacing = 75
Txt.Story.Alignment = cdrCenterAlignment
s2.Fill.UniformColor.CMYKAssign 0, 0, 0, 100
s2.Outline.SetNoOutline
s2.CenterX = s1.CenterX
s2.CenterY = s1.CenterY
s1 — это просто прямоугольник, который уже определен. Проблема с "cdrCenterAlignment". VBA не распознает его как допустимый аргумент, потому что он ссылается на то, что существует только в CorelDraw. Я получаю «переменная cdrCenterAlignment не определена» или «несоответствие типов», если я называю это строкой. Как, если это вообще возможно, я могу отправить эту команду/аргумент в CorelDraw, продолжая работать в Excel?
Я столкнулся с похожими проблемами при отправке того же чертежа в AutoCAD, но смог обойти это, отправив что-то в командную строку.
Object
и постоянно обращаться к документации для того, какие элементы доступны для каких объектов — и иметь дело с ошибкой 438 во время выполнения всякий раз, когда вы делаете опечатку, потому что код с поздней привязкой будет успешно скомпилирован и разрешен только во время выполнения. - person Mathieu Guindon   schedule 14.08.2017