吳 瑨
(沈陽市勘察測繪研究院,遼寧 沈陽 110004)
CorelDraw是近年來被廣泛應用在地圖制圖領域的矢量圖處理軟件,相對于傳統的地圖制圖軟件ArcGis、MapGis等,作為專業的圖形圖像軟件,在地圖的美觀性上,coreldraw有其無法比擬的優越性,并且在出圖印刷上,coreldraw也有著其他軟件所不具備的優勢,在菜單文件選項下,它有專門的“為彩色輸出做準備”一項。
但由于CorelDraw不是專業的地圖制圖軟件,所以在地圖制圖中,作業人員要綜合應用包括CorelDraw在內的多種軟件協同配合才能制作出一幅精良的地圖。[1]
通常的過程是,應用ArcGis做初期的數據采集與庫管理工作,然后應用MapGis做初步的地圖成圖、注記標注等,最后用CorelDraw進行圖面美化與細節修飾等。
1998年corel公司做出戰略調整,在CorelDraw中集成了VBA,極大的改善了CorelDraw的拓展功能,使用戶可以二次開發出適合自己應用的宏。[2]
VBA(Visual Basic for Applications)是 Microsoft Visual Basic(VB)面向對象程序開發環境的一個子集,是新一代標準宏語言。VBA使用Visual Basic Editor交互開發環境和VB語言操作應用程序的對象來增強應用程序的功能。
VBA為用戶提供了一套客戶化CorelDraw應用程序的圖形用戶界面,用戶可以對應用程序中的對象進行有效地操作和處理。VBA使用VB語言,由于它多用于集成到別的應用程序并對應用程序的函數進行客戶化,它才加上了“for Applications”,稱作VBA。[3]
VBA可以通過記錄和運行宏來自動化一系列CorelDraw的任務。更重要的是可以使用VB語言和應用程序內部函數來開發更多的適合用戶需要的功能。
VBA繼承了VB的開發機制,具有與VB相似的語言結構。它們的集成開發環境也幾乎相同。
CorelDraw VBA支持用戶自行錄制宏。
如圖1所示,在菜單欄中,選擇工具——Visual Basic——錄制,命名宏并保存,開始錄制宏,用戶可以對文件進行處理,以達到自己預期的效果,然后停止錄制,需要的時候,選擇播放宏,播放錄制好的宏,可重復錄制的過程。
然而簡單的錄制宏,遠遠無法滿足復雜操作的需求,這時候需要應用Visual Basic編輯器來編輯適合的宏。
以CorelDraw X3為例,在編輯宏前,首先需要在文件夾C:Program FilesCorelCorelDRAW Graphics Suite 13DrawGMS下新建一個文件后綴為.gms的文件。
步驟為,新建一個文本文檔并命名,再將文本文檔的后綴.txt改為.gms,如果無法更改后綴,則需要先將工具——文件夾選項——查看下的“隱藏已知文件拓展名”選項前的對號勾掉。
然后再啟動CorelDraw,新建文件,或是打開一個已有文件,在菜單欄下選擇工具——Visual Basic——Visual Basic編輯器 (快捷鍵Alt+f11),在工程——GlobalMacros窗口找到新建的GMS文件,便可以編輯宏了。
VBA繼承了VB的開發機制,與VB有相似的開發語言,他們的集成開發環境也幾乎相同,不同之處在于,VB可以生成獨立的應用程序,但VBA只能生成運行在宿主程序中的宏。[4]
Visual Basic編輯器界面與VB界面很相似,程序的編譯與調試過程也與VB類似,有一定編程基礎的人會很快熟悉并編制出適合自己的宏。

圖1
應用多種軟件精心制作出的地圖,最后一般會通過CorelDraw來出圖印刷或噴繪。
在CorelDraw菜單欄下,選擇文件——為彩色輸出中心做準備,點選搜集與文檔相關聯的所有文件,復制字體,生成PDF文件,便會生成一個專門用于印刷或噴繪的文件夾。
但在印刷或噴繪過程中,由于機器的型號、油墨的色值、紙張的選擇等多種因素,會影響打印質量,使預先調配好的顏色并不能達到預期效果,尤其是出圖數量不大的情況下而采用的打印機噴繪,色差更為嚴重。[5]
由此可見,制作出一套專用于某次印刷工序或某一打印機的色表很有必要。
但一套色表,以CMYK色彩模式為例,即使色值密度選為50,需要繪制的色塊也要八十個,加上文本注釋、標題、橫縱坐標等,需要繪制的對象要超過一百六十個,況且,色表要用于調色配比,色值密度選為50過于稀疏,色值密度20的時候,對象則要超過兩千五百個。
CorelDraw VBA的優勢在于通過程序編譯,可以讓計算機自動完成一系列有內在規律、重復性高的工作。就像色表,如此繁多的對象,不借助CorelDraw的VBA工具去機輔繪制,會是一項工作量極大且難以完成的工作。
色表生成器的數學邏輯為,循環定位坐標,繪制矩形,為矩形賦值(顏色),并在對應矩形下生成文本標注。
程序釋義為,該VBA程序為一個循環程序,通過數值的增加,改變相關聯的屬性和賦值(矩形四角坐標、矩形顏色、文本內容有內在聯系),并在文件中生成正確的色表。
程序主要代碼與注釋如下:


圖2
文本框內可輸入用戶需要的色值密度,本次輸入“100”僅作示例。
程序運行結果如圖3所示。
生成色表之后,可以在菜單欄下選擇文件——打印設置中點選“設置打印參數”,將色表打印出來,并根據該打印出的色表來配比地圖的顏色。
色表的制作不僅僅適用于地圖制圖領域,還可以應用于其他圖像設計領域,圖像設計必然會涉及到顏色配比,只要涉及到顏色配比,色表便有其不可或缺的獨到用處。

圖3
當對CorelDraw VBA熟悉之后,作業員可能會用VBA編譯出經常使用的宏,如果每次都通過菜單欄下的工具——Visual Basic——播放來選擇運行宏,會很繁瑣而不便。
可以通過如下的方法,將宏添加在菜單欄中,不需要每次都去窗口中尋找,方便快捷。
步驟如下:
打開菜單欄下的工具——自定義,點擊命令欄,新建一個命令欄“我的工具”,如圖4所示。

圖4
然后點擊命令,在下拉窗口中選擇宏,選中需要的宏,鼠標左鍵拖拽到新建的命令欄中,如圖5所示,確定即可。

圖5
以后每次需要運行該宏的時候,點擊命令欄中該宏的圖標便可啟動。
在命令窗口中,也可以對宏的常規、快捷鍵、外觀加以設計。可以用這種方法添加多個宏的命令欄啟動項。
本文主要闡述了CorelDraw VBA在地圖制圖領域的應用,對于重復性高、有內在規律的制圖工作,利用VBA編制的宏有很大的優勢,可以極大的縮短工作時間、降低工作量。在繁復的制圖工作中,找到一些重復操作的技巧,究其邏輯性,根據其規律編譯出解決問題的宏,借助計算機實現自動化,會使地圖制圖工作變得更加準確高效。
[1]姚興海,姚磊.CorelDRAW地圖制圖[M].中國地圖出版社,2008,6:1-203.
[2]CorelDRAW/Corel DESIGNER VBA macros[OL].http://www.oberonplace.com/vba/drawmacros/index.htm.
[3]司連法.基于Coreldraw 10進行VBA二次開發和實例解析[OL].http://www.chinamap.com/CORE/Catalogue.htm.
[4]張建輝.Visual Basic從初學到精通[M].電子工業出版社,2010,6:1-517.
[5]Rick McCleary.CMYK 2.0:設計師色彩管理手冊[M].人民郵電出版社,2010,4:1-254.