通过 VBA 发送命令
Sending commands across VBA
我正在 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 variable not defined" 或 "type mismatch"。 如果可能的话,我如何才能在 Excel 中工作的同时将此 command/argument 发送到 CorelDraw?
我 运行 遇到了类似的问题,将相同的图形发送到 AutoCAD,但能够通过将内容发送到命令行来解决它。
在您的 VBA 代码中您可以自己定义它:
Const cdrCenterAlignment = 3
https://community.coreldraw.com/sdk/api/draw/19/e/cdrAlignment
引用 CorelDRAW 库(工具 > 引用),常量将被定义,您可以使用实际的 CorelDRAW 类型和 API 并享受 IntelliSense 和自动完成功能,而不是与 Object
接口并不断参考文档以了解哪些成员在哪些对象上可用 - 并在您输入错误时处理 运行-time 错误 438,因为后期绑定代码将愉快地编译并且仅在 [=] 处解析22=]-次.
添加对 CorelDRAW 类型库的引用将允许您编写在编译时解析的早期绑定代码,就像您针对VBA
或 Excel
类型库,默认在 Excel VBA 项目中引用。
我正在 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 variable not defined" 或 "type mismatch"。 如果可能的话,我如何才能在 Excel 中工作的同时将此 command/argument 发送到 CorelDraw?
我 运行 遇到了类似的问题,将相同的图形发送到 AutoCAD,但能够通过将内容发送到命令行来解决它。
在您的 VBA 代码中您可以自己定义它:
Const cdrCenterAlignment = 3
https://community.coreldraw.com/sdk/api/draw/19/e/cdrAlignment
引用 CorelDRAW 库(工具 > 引用),常量将被定义,您可以使用实际的 CorelDRAW 类型和 API 并享受 IntelliSense 和自动完成功能,而不是与 Object
接口并不断参考文档以了解哪些成员在哪些对象上可用 - 并在您输入错误时处理 运行-time 错误 438,因为后期绑定代码将愉快地编译并且仅在 [=] 处解析22=]-次.
添加对 CorelDRAW 类型库的引用将允许您编写在编译时解析的早期绑定代码,就像您针对VBA
或 Excel
类型库,默认在 Excel VBA 项目中引用。