楊滄生
(云南省地震局,昆明 650224)
基于 Excel VBA的開發(fā)技術(shù)在重型動(dòng)力觸探試驗(yàn)中的應(yīng)用*
楊滄生
(云南省地震局,昆明 650224)
通過(guò) ExcelVBA宏語(yǔ)言程序來(lái)解決重型動(dòng)力觸探試驗(yàn)的成果分析和自動(dòng)化出圖的問題,在工程實(shí)踐中得到驗(yàn)證。將 Excel強(qiáng)大的電子表格計(jì)算能力與 ExcelVBA增加的自動(dòng)功能相結(jié)合,可方便地將試驗(yàn)結(jié)果輸出為模版式圖表,使試驗(yàn)成果管理得到規(guī)范和系統(tǒng)化,有利于開發(fā)程序所應(yīng)用專業(yè)的技術(shù)推廣或前沿拓展。從系統(tǒng)分析、軟件工程的開發(fā)界面、數(shù)據(jù)流程設(shè)計(jì)、模塊設(shè)計(jì)、關(guān)鍵技術(shù)、工作表設(shè)計(jì)原則與技巧等方面介紹了開發(fā)應(yīng)用程序的特點(diǎn)和注意事項(xiàng)。
系統(tǒng)分析;數(shù)據(jù)流程;模塊設(shè)計(jì);關(guān)鍵技術(shù);工作表設(shè)計(jì)
重型圓錐動(dòng)力觸探是土體原位測(cè)試的一種勘察技術(shù)。隨著基礎(chǔ)設(shè)施建設(shè)工作增多,特別是在公路等工程建設(shè)中,大量使用碎石樁處理軟基技術(shù),用重型動(dòng)力觸探試驗(yàn)對(duì)碎石樁的施工質(zhì)量進(jìn)行檢測(cè)(張麗等,2002),快速、自動(dòng)化處理動(dòng)力觸探試驗(yàn)數(shù)據(jù)的需求越來(lái)越高。盡快得出試驗(yàn)成果,為工程決策及時(shí)提供依據(jù),已成為一個(gè)重要的環(huán)節(jié),同時(shí)也是確保工程質(zhì)量和安全的關(guān)鍵因素。Excel VBA是在Microsoft Excel中使用的宏語(yǔ)言,主要為了增強(qiáng) Excel軟件使用的自動(dòng)化能力。在巖土工程重型動(dòng)力觸探試驗(yàn)工作中,運(yùn)用 Excel強(qiáng)大的電子表格計(jì)算能力和 ExcelVBA增加的自動(dòng)功能,可以輕松完成試驗(yàn)記錄、統(tǒng)計(jì)計(jì)算和制作圖表等特定任務(wù)。
巖土工程勘察專業(yè)軟件系統(tǒng)是為自動(dòng)完成巖土工程重型動(dòng)力觸探試驗(yàn)統(tǒng)計(jì)計(jì)算和繪制成果圖表而設(shè)計(jì)的。重型動(dòng)力觸探試驗(yàn)成果的數(shù)據(jù)處理主要有觸探指標(biāo)和觸探曲線。觸探指標(biāo)包括陣擊數(shù)、總擊次、陣擊擊次平均值、陣擊標(biāo)準(zhǔn)差、變異系數(shù)、探桿校正后不達(dá)標(biāo)的陣擊數(shù)等數(shù)理統(tǒng)計(jì)值。利用 Excel軟件的圖表功能可以根據(jù)錄入的數(shù)據(jù)來(lái)編輯繪制觸探曲線。筆者曾嘗試用 3個(gè) Excel工作簿的 170個(gè) Sheet表編制了一套半自動(dòng)的處理重型動(dòng)力觸探試驗(yàn)數(shù)據(jù)的程序組,其主要特點(diǎn)是:①若以 10 cm為一個(gè)錘擊陣擊單位,從 1 m深度起算,每個(gè)試驗(yàn)終孔深度對(duì)應(yīng)一個(gè) Sheet表,全套程序組可以處理深至 18 m的重型動(dòng)力觸探試驗(yàn)數(shù)據(jù);②將每一個(gè)試驗(yàn)孔的原始測(cè)試數(shù)據(jù)、觸探指標(biāo)、觸探曲線和試驗(yàn)文字記錄匯總成試驗(yàn)成果圖表;③利用 Sheet表的單元格公式、函數(shù)和嵌入式圖表的數(shù)據(jù)源自動(dòng)鏈接功能制作成工作表模版,在錄入原始測(cè)試數(shù)據(jù)的同時(shí)即生成觸探指標(biāo)、觸探曲線。該程序組之所以稱為 “半自動(dòng)”,就是在修正探桿長(zhǎng)度時(shí)是采用手動(dòng)輸入修正系數(shù)于單元格公式中。一個(gè)熟練的制表分析員完成一個(gè)探孔的重型動(dòng)力觸探試驗(yàn)成果圖表制作和打印,平均耗時(shí) 6 min。
為了進(jìn)一步增強(qiáng)用 Excel處理觸探試驗(yàn)數(shù)據(jù)的自動(dòng)化能力,本系統(tǒng)的開發(fā)直接采用Microsoft Excel作為平臺(tái),它包括以下開發(fā)要素:用戶界面設(shè)計(jì)、邏輯設(shè)計(jì),面向?qū)ο蠡蛎嫦蜻^(guò)程的程序以及數(shù)據(jù)層等。Excel應(yīng)用程序可以完成相當(dāng)多的計(jì)算任務(wù),可以滿足多種應(yīng)用程序需求,從用戶界面、邏輯設(shè)計(jì)、報(bào)表設(shè)計(jì)到最終的打印,Excel都可以在設(shè)計(jì)上滿足開發(fā)者的需求(黃睿,馬然,2006;劉迎甫,2004)。本程序開發(fā)的全過(guò)程體現(xiàn)出 Excel開發(fā)平臺(tái)的優(yōu)越性。
軟件開發(fā)界面(VBE)為 Excel工具按鈕下的宏編輯器,同時(shí)按下 Alt和 F11鍵也可進(jìn)入(圖1)。圖中在源代碼窗口內(nèi)正置設(shè)計(jì)一個(gè)輸入鉆探參數(shù)的用戶窗體。
圖1 ExcelVBA開發(fā)平臺(tái) VBEFig.1 Software-developing platform of ExcelVBE
數(shù)據(jù)流程如圖 2所示,Excel VBA數(shù)據(jù)源代碼的運(yùn)行特點(diǎn)是順序執(zhí)行,在 1、2兩個(gè)節(jié)點(diǎn)處有分支迂回。
圖2 ExcelVBA數(shù)據(jù)流程Fig.2 ExcelVBA data flow
模塊和窗體用于存放不同功能的程序過(guò)程或子過(guò)程,如圖 3所示,根據(jù)需要添加形成系統(tǒng)構(gòu)架,符合面向?qū)ο蟮某绦蛘Z(yǔ)言設(shè)計(jì)方法(郝效強(qiáng)等,2009)。
圖3 模塊和用戶窗體Fig.3 Module and user for ms
由程序輸出的版式圖表有 3個(gè)要求:能夠?qū)υ囼?yàn)的基本情況進(jìn)行記錄和管理;能夠給出試驗(yàn)結(jié)果的觸探指標(biāo);用數(shù)據(jù)圖表直觀反映試驗(yàn)情況(圖4)。
數(shù)據(jù)輸入可采用程序本身的 Excel表單元格直接錄入,或從其它 Excel表、文本文件、數(shù)據(jù)庫(kù)等經(jīng)過(guò)程序數(shù)據(jù)轉(zhuǎn)換而導(dǎo)入(魚明,2006;王建國(guó)等,2009)。
根據(jù)重型動(dòng)力觸探試驗(yàn)的錘擊數(shù)為 1~50的整數(shù)的特點(diǎn),在數(shù)據(jù)輸入過(guò)程中,非此數(shù)據(jù)特點(diǎn)的其它誤操作數(shù)據(jù)都由程序自動(dòng)檢查并提前產(chǎn)生錯(cuò)誤更正提示(杜茂康,2005),以免后續(xù)程序出錯(cuò)或中斷運(yùn)行。
錘擊數(shù)隨深度變化時(shí),根據(jù)《巖土工程勘察規(guī)范》(GB50021-2001)的規(guī)定,必須按式(1)對(duì)實(shí)測(cè)數(shù)據(jù)作探桿長(zhǎng)度修正(工程地質(zhì)手冊(cè)編委會(huì),2007):
圖4 程序輸出的版式成果圖表Fig.4 Result given by the program
式中,N63.5為經(jīng)桿長(zhǎng)校正后的試驗(yàn)錘擊數(shù);N為貫入 10 cm的實(shí)測(cè)錘擊數(shù);α為觸探桿長(zhǎng)校正系數(shù),按表 1選定或進(jìn)行內(nèi)插。
表1 重型圓錐動(dòng)力觸探錘擊數(shù)修正系數(shù)αTab.1 Correction coefficient(α)about the hammer number of heavy dynamic sounding test
源代碼采用動(dòng)探深度內(nèi)的陣擊數(shù)作為 For…Next語(yǔ)句的循環(huán)數(shù),用 Select Case…End Select分支語(yǔ)句判斷錘擊數(shù),嵌套內(nèi)用 9個(gè) Select Case…End Select分支語(yǔ)句判斷探桿長(zhǎng)度后得到修正值。
其它數(shù)理統(tǒng)計(jì)值由公式和函數(shù)計(jì)算得到。
輸入數(shù)據(jù)后暫時(shí)不能作為源數(shù)據(jù),因?yàn)樵?Excel中沒有現(xiàn)成的方折曲線制作模具,筆者經(jīng)過(guò)特殊數(shù)據(jù)轉(zhuǎn)換后,在其它任何兩個(gè)空白列形成圖表源數(shù)據(jù),再采用 Excel的插入 “散點(diǎn)圖”功能,最后繪制成觸探曲線。
本系統(tǒng)解決的關(guān)鍵技術(shù)有觸探曲線生成和《工程地質(zhì)手冊(cè)》(第四版)的表 3-2-4中有關(guān)動(dòng)力觸探試驗(yàn)探桿長(zhǎng)度的修正系數(shù)表及其相互間的邏輯關(guān)系問題。
新設(shè)計(jì)的重型動(dòng)力觸探試驗(yàn)應(yīng)用程序,僅用 1個(gè) Excel工作簿內(nèi)嵌宏語(yǔ)言而成。工作表分配大致有試驗(yàn)數(shù)據(jù)表、3個(gè)成果圖表備份表、數(shù)據(jù)庫(kù)、圖庫(kù)等。
(1)試驗(yàn)數(shù)據(jù)表是成果圖表產(chǎn)生前的數(shù)據(jù)存儲(chǔ)地和用戶界面,其設(shè)計(jì)的基本準(zhǔn)則是:對(duì)于不同目的的單元格使用不同的格式,包括字體、顏色等,在視覺上有層次感,容易區(qū)分不同單元格的作用。為防止用戶輸入無(wú)關(guān)或錯(cuò)誤數(shù)據(jù)導(dǎo)致工作表發(fā)生錯(cuò)誤,要盡量鎖定除用戶輸入單元格之外的其他界面元素。在這方面,不同的設(shè)計(jì)者有不同的技巧(劉錦龍,2007),本系統(tǒng)采用工作表事件來(lái)控制鎖定試驗(yàn)數(shù)據(jù)表中寫有關(guān)鍵字段的單元格(Project-A&Dekiru系列編輯部,2007),當(dāng)誤點(diǎn)擊這些單元格時(shí)光標(biāo)會(huì)被自動(dòng)移開。
(2)在自動(dòng)完成試驗(yàn)成果圖表的制作、打印的同時(shí),程序自動(dòng)備份試驗(yàn)成果圖表在工作表中,可以分頁(yè)預(yù)覽或再次集中整頁(yè)打印。
(3)試驗(yàn)數(shù)據(jù)表中的各段探桿深度數(shù)據(jù)、陣擊深度數(shù)據(jù)、實(shí)測(cè)錘擊數(shù)據(jù)和修正數(shù)據(jù)另外自動(dòng)備份在數(shù)據(jù)工作表中。
(4)圖庫(kù)工作表用于自動(dòng)備份圖片格式的成果圖表,可作為電子檔案參考資料。
本系統(tǒng)設(shè)計(jì)了高效便捷的操作按鈕,隨 Excel VBA宏程序運(yùn)行而自動(dòng)加載。加載后在 Excel工作表的命令欄出現(xiàn) “加載項(xiàng)”按鈕,其下的程序菜單如圖 5所示。
圖5 程序執(zhí)行按鈕Fig.5 Executive buttons of the program
重型動(dòng)力觸探試驗(yàn)數(shù)據(jù)處理在使用 Excel VBA應(yīng)用程序以后,完滿流暢地解決了自動(dòng)化功能的問題,可以非常方便地將試驗(yàn)結(jié)果輸出為模版式圖表,使試驗(yàn)成果管理得到規(guī)范化和系統(tǒng)化,有利于開發(fā)程序所應(yīng)用專業(yè)的技術(shù)推廣或前沿拓展。應(yīng)用 ExcelVBA開發(fā)巖土工程勘察專業(yè)軟件是一種新的嘗試,為批量整理成果資料提供了強(qiáng)有力的工具。Excel是很普及的辦公軟件,在此平臺(tái)有利于實(shí)用專業(yè)軟件開發(fā)技術(shù)的推廣。推廣應(yīng)用該程序后,我們完成了昆明新機(jī)場(chǎng)建設(shè)地震動(dòng)試驗(yàn),昆明高峣至??凇⒘_村口至富寧、云南水富至麻柳灣等高速公路工程建設(shè)碎石樁地基處理,還有貴州電解鋁工程建設(shè)強(qiáng)夯地基處理等一批重點(diǎn)工程的累計(jì)上萬(wàn)張重型動(dòng)力觸探試驗(yàn)成果圖表的制作,較好地保證了這些項(xiàng)目的進(jìn)度。
在撰寫本文過(guò)程中,筆者得到中國(guó)有色金屬工業(yè)昆明勘察設(shè)計(jì)研究院李鴻祥高級(jí)工程師、云南省地震局安曉文高級(jí)工程師、昆明市建筑設(shè)計(jì)院凌文高級(jí)工程師的悉心指導(dǎo)和幫助。在此,表示誠(chéng)摯的感謝。
杜茂康 .2005.Excel在數(shù)據(jù)管理與分析中的應(yīng)用[M].北京:清華大學(xué)出版社
工程地質(zhì)手冊(cè)編委會(huì) .2007.工程地質(zhì)手冊(cè) (第 4版)[M].北京:中國(guó)建筑工業(yè)出版社 .
郝效強(qiáng),楊仕升,秦榮 .2009.含剪力墻鋼筋混凝土結(jié)構(gòu)抗震能力評(píng)估軟件的開發(fā)及應(yīng)用[J].地震研究,32(1):74-78.
黃睿,馬然 .2006.Excel VBA應(yīng)用程序?qū)I(yè)設(shè)計(jì)實(shí)用指南[M].北京:電子工業(yè)出版社 .
劉錦龍 .2007.ExcelVBA應(yīng)用程序在計(jì)算工作量中的應(yīng)用[J].科技資訊(7):37-38.
劉迎甫 .2004.Visual Foxpro面向?qū)ο蟪绦蛟O(shè)計(jì)[M].北京:清華大學(xué)出版社 .
王建國(guó),賈連弟,崔曉峰,等 .2009.數(shù)字化地震前兆臺(tái)網(wǎng)日常工作管理軟件[J].地震研究,32(1):79-83.
魚明 .2006.淺談 Excel與應(yīng)用程序之間數(shù)據(jù)交換的應(yīng)用[J].甘肅科技,22(10):53-54.
張麗,張建婕,張煥智 .2002.動(dòng)力觸探試驗(yàn)數(shù)據(jù)管理分析系統(tǒng)設(shè)計(jì)與應(yīng)用[J].黑龍江水利科技(4):100-102.
GB50021-2001,巖土工程勘察規(guī)范[S].
Project-A&Dekiru系列編輯部.2007.Excel VBA大全[M].彭彬譯.北京:人民郵電出版社 .
Application of the Development Techn ique Based on Excel VBA to Heavy Dynam ic Sounding Test
YANG Cang-sheng
(Earthquake Adm inistration of Yunnan Province,Kunm ing650224,Yunnan,China)
The problem that using the Excel VBA m acro-language to analyze the results and the autom atic m apping of the heavy dynam ic sounding test has been solved and validated in the engineering practice.It is expedient to transfer the test results to the stencil chart and standardize and system ize the m anagem ent of the test achievem ents by the help of the pow erful table-calculation function of Excel and autom atic function of ExcelVBA.Thus,It is favorable to popularizing and broadening the techniques of the related fields.The features of the soft w e developed,such as system analysis,interface developm ent softw are,data-flow design,m odule design,key technique,principle and technique in the design of the w orksheet are introduced.
system analysis;data flow;m odule design;key technique;w orksheet design
TP311.52
A
1000-0666(2011)01-0108-05
2010-08-11.
云南省科技攻關(guān)及高新技術(shù)發(fā)展計(jì)劃(2006GG38)資助 .