一、VBA簡介
Visual Basic for Applications(VBA)是 Visual Basic 的一種宏語言,是微軟開發(fā)出來在其桌面應用程序中執(zhí)行通用的自動化 (OLE) 任務的編程語言。主要能用來擴展 Windows 的應用程序功能,特別是 Microsoft Office 軟件。在測量中常應用 EXCEl 軟件進行處理數(shù)據(jù),使用 VBA 能提高工作效率,保證準確性。
EXCEl 軟件具有使用廣泛,操作簡單,輸入數(shù)據(jù)簡單,在我們測量工作日常中是不可缺少的工具,使用 EXCEl VBA 程序對我們工作如虎添翼,大大簡化了大量繁重的重復工作,實現(xiàn)自動化。以下通過一個小程序,介紹EXCEl VBA 在測量工作中的應用。
二、使用VBA展坐標點
把現(xiàn)場實測坐標點展到 CAD 圖是我們測量人員最常見的工作任務,在平時測量中我們經(jīng)常要對實際地物畫成 CAD 電子圖,需要把現(xiàn)場采的點展到CAD 圖上然后根據(jù)實際地物外形連接成線,畫出地物的外輪廓。這項工作雖然簡單,但是需要我們測量人員細心,坐標數(shù)字多,很容易看串行,輸入時要細心認真核對才能保證數(shù)據(jù)準確性,一旦坐標點過多,是一種繁重、乏味的重復工作,極易出錯。
一般常規(guī)方法是我們直接打開 CAD 用point 命定直接展點,一個接一個輸入,工作效率底下。這種重復的勞動我們使用 EXCEl VBA 輕松解決,提高工作效率。
我們以 office2007和 AutoCAD2008軟件作為演示軟件,需要安裝 Au- toCAD2008、office2007。首先打開 EXCEL 然后使用快捷鍵 Alt+F11即進入VBAIDE,打開 VBA 界面,在菜單上依次點擊[插入]→[模塊],就可以進行代碼編輯。代碼如下:
Sub ZDApp()
On Error Resume Next忽略錯誤
Set acadApp = GetObject(, "AutoCAD.Application")檢查是否打開 CAD If Err Then
Err.Clear
MsgBox " 未檢測到打開的 AutoCAD 繪圖環(huán)境!"
Set acadApp = CreateObject("AutoCAD.Application")打開 CAD 軟件
End If
Set acaddoc = acadApp.ActiveDocument定義 CAD 繪圖文件 Set MSpace = acaddoc.modelspace定義 CAD 繪圖空間 acadApp.Visible = True
Dim myline As Object Dim mytxt As Object Dim mydoc As Object Dim mylist() As Double
Dim myli(0To2) As Double
Set myrange = Worksheets(1).Range("B:B")
i = Application.WorksheetFunction.Count(myrange) ReDim Preserve mylist(0To2* i -1)重新定義數(shù)組 For j =2To i +1
mylist((j -2) *2) = Cells(j,3) 從 C2單元開始讀取X 坐標mylist((j -2) *2+1) = Cells(j,2) 從 B2單元開始讀取X 坐標myli(0) = Cells(j,3)
myli(1) = Cells(j,2)
Set mytxt = MSpace.AddText(Cells(j,1), myli,1) 繪制點號Next
Set myline = acaddoc.modelspace.AddLightWeightPolyline(mylist) 繪制成多段線
End Sub
點擊保存,在 excel 工作表1中從 B2單元格輸入 X 坐標,從 C2單元格輸入 Y 坐標運行ZDApp 程序,cad 中繪出所輸入坐標點。
三、結束語
通過以上例子,使用 VBA 能大大提高我們在日常測量工作效率和準確性,本文只是拋磚引玉的作用,其他實際工作中遇到的問題,可以通過學習編輯 VBA 程序實現(xiàn),解放機械勞動,提高工作效率。
作者簡介:
陽純良(1990-),籍貫:湖南衡陽,職稱學歷:助理工程師,大學本科,工作專業(yè):橋梁設計施工。