田路路 呂君毅 屈坤玉 陳 勇
(1、中國建筑第八工程局有限公司,上海200120 2、杭州蕭山國際機(jī)場有限公司,浙江 杭州310000)
項(xiàng)目工程文檔通常是word、Excel 和PowerPoint 格式的文件,在這些文檔中通常會有很多數(shù)據(jù)處理和查看工作。word 的主要功能在于文字處理;Excel 的功能在于數(shù)據(jù)計(jì)算,可以對大量數(shù)據(jù)進(jìn)行分類、排序甚至繪制圖表等;PowerPoint 的主要功能在于在召開會議、遠(yuǎn)程會議或在網(wǎng)上給觀眾展示演示文稿。這些軟件之間的數(shù)據(jù)傳遞通常都是人為完成的,然而遇到數(shù)據(jù)很大的時(shí)候,需要的工作量就很大,工作效率也很低。這就需要軟件來自動完成數(shù)據(jù)傳遞工作,這樣工作效率很高而且不會出錯。
例如在施工現(xiàn)場許多臨時(shí)結(jié)構(gòu)的計(jì)算中,方案中都需要附有計(jì)算書,大部分計(jì)算書都是由word 編寫,word 中不能實(shí)現(xiàn)自動計(jì)算功能,計(jì)算完全靠編寫計(jì)算書人員完成,每次修改數(shù)據(jù),計(jì)算書中的很多數(shù)據(jù)都需要進(jìn)行修改,因此會造成修改計(jì)算書中的數(shù)據(jù)工作量很大,也可能造成錯誤。可以通過在Excel 來實(shí)現(xiàn)數(shù)據(jù)計(jì)算,然后把數(shù)據(jù)傳遞給word,使Word 自動更新計(jì)算書。
再比如工程例會匯報(bào)ppt 中的施工進(jìn)度數(shù)據(jù)都是工作人員查看Excel 表格數(shù)據(jù)進(jìn)行輸入的,這種ppt 和Excel 中的數(shù)據(jù)格式比較固定,不會經(jīng)常變化的情況下,完全可以通過PowerPoint 來讀取Excel 表格中的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)傳遞。這樣提高了工作效率,節(jié)省時(shí)間。
VBA(Visual Basic for Applications)是Visual Basic 的一種宏語言,是在其桌面應(yīng)用程序中執(zhí)行通用的自動化(OLE)任務(wù)的編程語言。主要能用來擴(kuò)展Windows 的應(yīng)用程序功能,特別是Microsoft Office 軟件。它也可說是一種應(yīng)用程式視覺化的Basic 腳本。
VBA不但繼承了VB的開發(fā)機(jī)制,而且VBA還具有與VB相似的語言結(jié)構(gòu),它們的集成開發(fā)環(huán)境IDE 也幾乎相同。但是,經(jīng)過優(yōu)化,VBA專門用于Office 的各應(yīng)用程序。VBA的項(xiàng)目(Project)由使用VBA的Excel、Word、PowerPoint 等稱為宿主(Host)的Office應(yīng)用程序(Application)來調(diào)用。
在Excel、Word 和Powerpoint 中使用VBA 可以發(fā)揮以下作用:
(1)規(guī)范用戶的操作,控制用戶的操作行為;
(2)多個(gè)步驟的手工操作通過執(zhí)行VBA 代碼可以迅速的實(shí)現(xiàn);
(3)利用VBA可以Excel 內(nèi)輕松開發(fā)出功能強(qiáng)大的自動化程序。
(4)充分利用各個(gè)軟件的優(yōu)勢,實(shí)現(xiàn)Excel、Word 和Powerpoint中數(shù)據(jù)聯(lián)動。
通過一個(gè)混凝土梁的模板驗(yàn)算程序來實(shí)現(xiàn)word 和Excel 數(shù)據(jù)聯(lián)動,實(shí)現(xiàn)word 中計(jì)算書數(shù)據(jù)根據(jù)Excel 計(jì)算的數(shù)據(jù)更新。
下面是word 中的計(jì)算書,如果混凝土梁的尺寸進(jìn)行更改,計(jì)算書如果手動計(jì)算工作量就會很大。所以可以用Excel 表格來計(jì)算這些數(shù)據(jù),然后在word 里讀取Excel 表格中的數(shù)據(jù)。
3.1.1 基本參數(shù)
(1)面板類型:覆面木膠合板
(2)面板厚度t(mm):15
(3)面板抗彎強(qiáng)度設(shè)計(jì)值[f](N/mm2):15
(4)面板抗剪強(qiáng)度設(shè)計(jì)值[T](N/mm2):1.4
(5)面板彈性模量E(N/mm2):10000
取單位寬度b=1000mm,按二等跨連續(xù)梁計(jì)算:
W=bh2/6=1000x15x15/6=37500mm3
I=bh3/12=1000xl5xl5xl5/12=281250mm4
q1=[l2(G1k+(G2k+G3k)xh)+1.4xQ1k]xb=[l.2x(0.l+(24+1.5)x0.8)+l.4x3]xl=28.8kN/m
q1=1.2x[G1k+(G2k+G3k)xh]xb=l.2x[0.1+(24+1.5)x0.8]xl=24.6kN/m
q1活=1.4xQ1kxb=l.4x3xl=4.2kN/m
q2=[lx(G1k+(G2k+G3k)xh)+lxQ1k]xb=[lx(0.1+(24+1.5)x0.8)+lx3]xl=23.5kN/m
3.1.2 強(qiáng)度驗(yàn)算
Mmax=0.125q1L2=0.125x28.8x0.12=0.036kN·m
σ=Mmax/W=0.036x106/37500=0.96N/mm2<[f]=15N/mm2滿足要求!
3.1.3 撓度驗(yàn)算
Vmax=0.521q2L4/(100EI)=0.521x23.5xl004/(100xl0000x281250)
=0.004mm<[v]=min[L/150,10]=min[100/150,10]=0.667mm
滿足要求!
利用Excel 表格對混凝土梁模板進(jìn)行受力驗(yàn)算。驗(yàn)算滿足后,用Word 讀取Excel 生成的數(shù)據(jù)。(圖1)
圖1 Excel計(jì)算文件
要實(shí)現(xiàn)word 中的數(shù)據(jù)根據(jù)Excel 表格中的數(shù)據(jù)進(jìn)行更新,首先需要word 找到Excel 文件。所以在word 文件中創(chuàng)建一個(gè)窗體,窗體上讓用戶輸入Excel 表格文件的文件路徑和文件名。(圖2)
圖2 用戶輸入和數(shù)據(jù)更新窗體
在word 中每個(gè)變化的數(shù)據(jù)可以使用標(biāo)簽控件Label 進(jìn)行顯示和存儲。例如表格中面板厚度、面板抗彎強(qiáng)度設(shè)計(jì)值等參數(shù)都放置標(biāo)簽Label 進(jìn)行顯示。每個(gè)Label 需要命名,且名字是唯一的不能重復(fù)。Label 顯示的數(shù)值可以通過讀取Excel 表格對應(yīng)的數(shù)據(jù)進(jìn)行傳遞。Word 文件中需要添加控件Label 標(biāo)簽如下:
σ=Mmax/W= Label10 N/mm2<[f] = Label2 N/mm2滿足要求!
(3)撓度驗(yàn)算
Vmax = 0.521q2L4/(100EI)= Label11 mm <[v]= min[L/150, 10]=min[100/150, 10] = 0.667mm
滿足要求!
編寫代碼和創(chuàng)建窗體要打開Visual Basic 編輯環(huán)境。
點(diǎn)擊窗體命令按鈕“更新”,程序運(yùn)行以后word 文檔會出現(xiàn)下面的效果
(1)基本參數(shù)
①面板類型:覆面木膠合板
②面板厚度t(mm): 15
?Katherine O’Donovan,“‘Real’Mothers for Abandoned Children”,Law & Society Review,347(36),2002,pp.361~363.
③面板抗彎強(qiáng)度設(shè)計(jì)值[f](N/mm2):15
④面板抗剪強(qiáng)度設(shè)計(jì)值[T](N/mm2):1.4
⑤面板彈性模量E(N/mm2):10000
W=bh2/6=37500 mm3
I=bh3/12=281250 mm4
q1活=1.4xQ1kxb= 4.2 kN/m
q2=[lx(G1k+(G2k+G3k)xh)+lxQ1k]xb=23.5 kN/m
(2)強(qiáng)度驗(yàn)算
Mmax = 0.125q1L2= 0.036 kN·m
σ=Mmax/W= Label10 N/mm2<[f] = 0.96 N/mm2
滿足要求!
(3)撓度驗(yàn)算
Vmax = 0.521q2L4/(100EI)= 0.004 mm <[v]= min[L/150, 10]=min[100/150, 10] = 0.667mm
滿足要求!
通過以上步驟,實(shí)現(xiàn)了word 文檔從Excel 中讀取數(shù)據(jù),然后在word 中顯示這些數(shù)據(jù)。
在會議匯報(bào)中,經(jīng)常使用PPT來匯報(bào)施工進(jìn)度情況。施工進(jìn)度包含很多表格,表格中有很多數(shù)據(jù),這些數(shù)據(jù)都是由工程日報(bào)表來統(tǒng)計(jì)的,也就是規(guī)定的Excel 表格。項(xiàng)目上編寫匯報(bào)PPT人員的每次都是查看很多單位的工程日報(bào)表來填寫PPT中的表格,這樣工作需要花費(fèi)很多時(shí)間,而且容易出錯。對于匯報(bào)PPT和工程日報(bào)表都是規(guī)定的格式,不會經(jīng)常變化的文件,完全可以通過PowerPoint和Excel 數(shù)據(jù)聯(lián)動,實(shí)現(xiàn)PowerPoint 從Excel 中讀取數(shù)據(jù),利用電腦來完成這件重復(fù)性的工作,提高工作效率,節(jié)省時(shí)間。
下面舉例說明一下。
下面是匯報(bào)PPT 中的表格,表中的數(shù)據(jù)可以通過讀取Excel表格中的數(shù)據(jù)來實(shí)現(xiàn)更新。
要實(shí)現(xiàn)匯報(bào)PPT 中可以讀取數(shù)據(jù),首先要在PPT 的表格中創(chuàng)建控件Label。每個(gè)Label 來顯示原來的數(shù)據(jù),數(shù)據(jù)通過讀取Excel文件中對應(yīng)的數(shù)據(jù)來獲得。這樣實(shí)現(xiàn)以后每次就不需要工作人員來填寫了,讓電腦自動完成。
利用VBA實(shí)現(xiàn)辦公自動化,每個(gè)軟件之間實(shí)現(xiàn)數(shù)據(jù)傳輸,在工作中我們會遇到常用的文字排版、表格處理和匯報(bào)工作的情況,單純依靠Office 提供的普通功能,工作效率有時(shí)候很低,會花費(fèi)很多時(shí)間。掌握Office 提供的VBA,針對具體問題具體分析,為我們提供工作效率,實(shí)現(xiàn)辦公自動化和數(shù)據(jù)聯(lián)動提供了一種有效的途徑。