[英]Sending commands across VBA
我正在VBA中編寫腳本,該腳本在CorelDraw中創建圖形。 我在文本居中時遇到麻煩。 這是在CorelDraw的Macro編輯器中正常工作的代碼:
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,但能夠通過將內容發送到命令行來解決。
在您的VBA代碼中,您可以自己定義它:
Const cdrCenterAlignment = 3
https://community.coreldraw.com/sdk/api/draw/19/e/cdrAlignment
引用CorelDRAW庫(“工具”>“引用”),並將定義常量,您可以使用實際的CorelDRAW類型和API並享受IntelliSense和自動完成功能,而無需使用Object
接口並不斷地參考有關可用成員的文檔關於什么對象的問題-並在每次輸入錯誤時處理運行時錯誤438,因為后期綁定的代碼將很容易地編譯並且僅在運行時解決。
添加對CorelDRAW類型庫的引用將使您可以編寫在編譯時解析的早期綁定代碼,就像您針對VBA
或Excel
類型庫進行的函數調用一樣,這些默認情況下在Excel VBA中被引用項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.