



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、利用CorelDraw VBA開發宏程序繪制地圖上海測繪院第四分院 鐘煒摘要:CorelDraw軟件為用戶提供了VBA編寫宏程序的開發環境,用戶可以編寫宏程序來讓計算機自動完成一系列的操作,從而達到減輕工作量的目的。這個技術也可以用來解決在地圖繪制領域普遍存在的一些問題。本文通過兩個實際例子,介紹了CorelDraw VBA的基本情況和對象模型,以及這個工具是如何解決問題,提高生產效率的。關鍵字:CorelDraw VBA 地圖繪制1、 問題的提出 在目前的地圖制作領域,我們主要使用的軟件是Corel公司的矢量繪圖軟件CORELDRAW。CORELDRAW被大量應用于廣告設計和制圖領域,美觀是
2、用CORELDRAW繪制的地圖的最大特點。由于地圖相對于其他矢量圖片的特殊性,在使用CORELDRAW進行地圖的繪制時,我們往往會碰到一些問題或者可以改善的地方。在這里我們可以舉兩個例子來說明這類問題。第一個例子是在制作專題地圖中,某一專題的符號已經設計好,但是由于客戶的原因,這個設計需要更改,這時工作人員在CORELDRAW上要進行的操作就是在圖上找到每個專題要素的位置并把新的符號放上去。而如果這個專題要素的量很多的話,這個工作是費時費力的。第二例子,我們知道,在地圖制作中我們經常利用數據,也就是對已有的矢量圖片進行編輯。數據的來源不一,質量也有好有壞。如果在數據中有重復的物件,肉眼從圖面上
3、也發現不了,要想清理掉重復數據只能從物件列表中一一判斷,這個工作是相當煩瑣的。解決這一類問題的途徑之一是使用CORELDRAW為我們提供的VBA開發環境來編寫一些宏程序,讓程序來幫助我們完成工作。2、CorelDraw VBA簡介VBA,(visual basic for applications),是一種標準宏語言。VBA提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。它作為一種通用的宏語言可被所有的Microsoft 可編程應用軟件所共享,使可編程應用軟件得到完美的實現。VBA 是基于Visual Basic 發展而來的,它們具有相似的語言結構,它們的集成開發環境IDE(Int
4、ergrated Development Environment)也幾乎相同。二者不同之處在于:利用VB我們可以編寫出獨立的windows可執行程序(exe文件),而在使用VBA時我們必須在一個宿主軟件中調用我們所編寫的程序。CORELDRAW從6.0版本即支持宏命令(Marcos),但直到9.0版本它都主要使用它自己特有的CORELSCRIPT語言進行宏命令的編寫。1998年,COREL公司作出戰略性決定,決定在CORELDRAW 9.0中引入VBA,這使CORELDRAW立刻得到了很多VBA開發者的喜愛。但是在CORELDRAW的9.0版本中,針對VBA的對象模型并不很完善,這很大程度地限
5、制了利用VBA對CORELDRAW的開發。在10.0以后的版本中,情況得到了徹底的改善,在11版本后的VBA環境已經非常的成熟,用戶可以用CorelDraw VBA很輕松地調用CORELDRAW的現有功能,也可以利用CorelDraw VBA來調用CORELSCRIPT語言來實現一些特定的操作。為了讓讀者更好地理解CorelDraw VBA是如何調用CORELDRAW功能,在這里我們介紹一下在解決文中的兩個示例問題時我們用到的CorelDraw VBA的對象模型:ApplicationDocumentsDocumentPagesDocumentsApplicationDocumentLayer
6、sLayersLPageShapesLayerShapeRangeProperties3、如何使用CorelDraw VBA以CORELDRAW 12為例,我們要想使用CorelDraw VBA開發的宏命令,首先要把宏命令程序文件(.gms文件)存到“CORELDRAWDrawGMS”中,之后我們在只CORELDRAW按下“工具Visual Basic(V)播放”鍵,就可以看到宏管理器的窗口,在此窗口下我們可以很方便地運行和管理宏命令。4、問題的解決:在分析問題和操作流程后,就可以通過編寫成宏程序,讓計算機進行批量的操作,實現自動化處理。上述兩個問題,我們可以通過以下程序解決。程序的關鍵代碼如
7、下:1 符號替換問題ActiveDocument.ReferencePoint = cdrCenter ActiveDocument.BeginCommandGroup "Replace" For Each s In ActiveLayer.Shapes If s.Type <> cdrTextShape Then /不對文字進行操作 s.GetPosition x, y s.Delete ActiveLayer.Paste /刪去舊的符號,貼上新的 Dim Paste1 As ShapeRange Set Paste1 = ActiveSelectionRan
8、ge Paste1.SetPosition x, y End If Next s ActiveDocument.EndCommandGroup2 清理重復物件問題ActiveDocument.BeginCommandGroup "ClearRepeat" ActiveLayer.Shapes(i).GetPosition x1, y1 ActiveLayer.Shapes(j).GetPosition x2, y2 If x2 = x1 And y2 = y1 Then ActiveLayer.Shapes(j).Delete /刪去重復的物件 j = j - 1 End If j = j + 1 Loop i = i + 1 j = i + 1 Loop ActiveDocument.EndCommandGroup5、結論以上兩個例子說明,通過使用CorelDraw VBA編寫的宏程序,可以減輕工作量,縮短工作時間。筆者認為,編寫這樣的宏程序的關鍵是分析制圖過程中一般都會碰到的問題和解決問題的傳統方法,再利用VBA的開發環境寫出宏程序,讓計算機實現一定程度的自動化。這樣
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/WEA 002-2023漢字姓名咨詢服務指南
- 青年患者心理衛生現狀與干預策略
- 胰腺疾病保護方法
- 基于生物識別門禁系統設計
- T/TMAC 025-2020智能建造數字孿生車間技術要求
- 兒科疾病液體療法
- 普外肛腸疾病診療與護理
- T/TJJG 205-2020景觀河道監管導則
- 領口領結構設計
- 鋼橋面鋪裝設計技術要點與實施規范
- 致2025屆高考生高二到高三如何順利轉型
- 慈善專項捐贈協議書
- 2025年高考數學二輪熱點題型歸納與演練(上海專用)專題06數列(九大題型)(原卷版+解析)
- 2025中國鐵路南寧局集團有限公司招聘高校畢業生32人四(本科及以上學歷)筆試參考題庫附帶答案詳解
- 第1章 整式的乘法(單元測試)(原卷)2024-2025學年湘教版七年級數學下冊
- 2025貴州中考:歷史必考知識點
- 《高中數學知識競賽》課件
- 2025-2030年中國城市燃氣行業發展分析及發展戰略研究報告
- 人民醫院關于印發對口支援工作管理辦法(暫行)
- 施工現場環境保護措施試題及答案
- 2025年下半年浙江嘉興市水務投資集團限公司招聘92人易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論