簡體   English   中英

跨VBA發送命令

[英]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類型庫的引用將使您可以編寫在編譯時解析的早期綁定代碼,就像您針對VBAExcel類型庫進行的函數調用一樣,這些默認情況下在Excel VBA中被引用項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM