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