我在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变量未定义"或"类型不匹配"如果我把它称为字符串。 如果可能的话,我是否可以在使用Excel时将此命令/参数发送给CorelDraw?
我遇到了类似的问题,将相同的图纸发送到AutoCAD,但能够通过向命令行发送内容来解决这个问题。
答案 0 :(得分:1)
在您的VBA代码中,您可以自己定义:
Const cdrCenterAlignment = 3
https://community.coreldraw.com/sdk/api/draw/19/e/cdrAlignment
答案 1 :(得分:0)
引用CorelDRAW库(工具>参考)并定义常量,您可以使用实际的CorelDRAW类型和API,享受IntelliSense和自动完成,而不是不断地对Object
接口工作指的是哪些成员可用于哪些对象的文档 - 以及每当你输入错误时处理运行时错误438,因为后期绑定代码将很乐意编译并且只能在运行时解析。
添加对CorelDRAW类型库的引用将允许您编写在编译时解析的早期绑定代码,就像您针对VBA
进行的函数调用一样或Excel
类型库,默认情况下在Excel VBA项目中引用。