張康華 楊武奎
摘要:航空維修工藝規(guī)程更改、變更和修訂過程繁瑣、環(huán)節(jié)較多,人為影響因素也較多,容易出現(xiàn)勘誤性錯誤。本文提出的基于VBA編程的一鍵標(biāo)準(zhǔn)化方法在工藝規(guī)程更改檢查中的應(yīng)用,能夠大大提高工作效率,杜絕部分勘誤性錯誤,可實現(xiàn)標(biāo)準(zhǔn)化檢查的自動化。
關(guān)鍵詞:VBA編程;工藝規(guī)程更改單;一鍵標(biāo)準(zhǔn)化;研究
Keywords:VBA programming;process change list;one key standardization;study
0 引言
航空維修工廠的工藝規(guī)程更改有其嚴(yán)肅性和規(guī)范性。在辦理工藝規(guī)程更改單時,需按照廠內(nèi)程序文件要求的表格樣式、字體、段落進(jìn)行。目前,各工廠通常采用人工設(shè)定、人工自查、人工審核方式進(jìn)行標(biāo)準(zhǔn)化工作,費(fèi)時費(fèi)力。當(dāng)內(nèi)容較多、時間緊張時,易發(fā)生各種標(biāo)準(zhǔn)化錯誤和勘誤性錯誤,簽審時如發(fā)現(xiàn)一處標(biāo)準(zhǔn)化錯誤,將至少增加三人的簽審工作,嚴(yán)重影響簽審效率,個別內(nèi)容錯誤還會影響產(chǎn)品質(zhì)量。
以上情況發(fā)生的原因是編寫過程中所需處理的信息除技術(shù)要求外還要兼顧格式,往往顧此失彼,該問題已成為技術(shù)文件更改單編寫質(zhì)量提升的瓶頸。據(jù)統(tǒng)計,2017年我廠共辦理12000多份更改單,每份更改單按10min計算總標(biāo)審時間,技術(shù)人員共需花費(fèi)250個工作日在重復(fù)性的標(biāo)審工作上。因此,采用計算機(jī)程序方式解決標(biāo)準(zhǔn)化問題意義重大,不僅能夠提高工作效率,而且能將技術(shù)員的生產(chǎn)力從簡單重復(fù)性工作中解放出來,集中精神處理技術(shù)要求問題。
1 VBA語言
Visual Basic for Application(VBA)是Microsoft Office組件安裝時默認(rèn)安裝的一種宏編輯語言。為方便嵌入和保存,編程所用的更改單模板文檔需選用后綴為.doc格式的文件。
2 標(biāo)準(zhǔn)化工作內(nèi)容分析及解決途徑
根據(jù)日常工作情況,標(biāo)準(zhǔn)化工作包含以下內(nèi)容:
1)檢查序號。VBA程序可完成序號的自動填充,防止序號錯誤。
2)檢查字體、段落格式。VBA程序可在遍歷過程中自動設(shè)置格式。例如,內(nèi)容部分所有字體設(shè)置為小四宋體(其中數(shù)字為新羅馬字體),不傾斜、不加粗,顏色為黑色,取消突出顯示顏色;1.5倍行距;更改內(nèi)容部分段落靠左,序號和頁次段落居中,等等。
3)檢查是否存在漏寫信息。VBA程序可檢查“工藝更改換頁單位(班組)”情況及其他表格的內(nèi)容,如為空,則以批注方式進(jìn)行標(biāo)識。
4)檢查更改前后劃線情況。VBA程序?qū)Σ糠植徽_內(nèi)容以批注方式進(jìn)行提示,減少因劃線不正確導(dǎo)致的更改誤讀。
5)檢查更改單編號與機(jī)型、更改文件的對應(yīng)情況。VBA程序通過對更改單號進(jìn)行提取,對機(jī)型和更改文件進(jìn)行比對。
3 工藝規(guī)程更改單及一鍵標(biāo)準(zhǔn)化插件架構(gòu)
工藝規(guī)程更改單如圖1所示,分為填寫欄和簽審欄兩部分,填寫欄用以明確更改的對象、內(nèi)容、關(guān)聯(lián)內(nèi)容等要求,由更改編訂人完成;簽審欄根據(jù)分工,按照層層把關(guān)的原則,對更改內(nèi)容進(jìn)行檢查,如發(fā)現(xiàn)問題,按照流程,更改單將被直接退回編訂人處。
在VBA語言中,更改單將被識別為一個Tables對象,表格中每一個格內(nèi)的內(nèi)容由Tables對象下的Cell對象代表,具體的文字對象由Cell對象下的Range對象代表。對更改單的標(biāo)準(zhǔn)化就是對Tables對象下所有Range對象的遍歷和處理過程。主要程序架構(gòu)由右鍵程序接口設(shè)計、表格遍歷處理、特殊情況處理三部分組成。
3.1 設(shè)置右鍵程序接口
在This document對象下采用Document_Open事件,使其在打開Word文檔時自動完成右鍵菜單的注入工作。主要代碼如下:
新建名稱為“更改單標(biāo)準(zhǔn)化”的主函數(shù),進(jìn)行以下工作:
1)確定更改內(nèi)容所在行的范圍。根據(jù)更改單格式情況,開始位置為第2行,結(jié)束位置可以“關(guān)聯(lián)技術(shù)文件”為錨定字,找到該位置即退出行的循環(huán)。遍歷過程中需采用 “On Error Go To未找到”的方式預(yù)防可能出現(xiàn)的程序溢出。
2)建立兩個三維數(shù)組。將表格欄“更改前”和“更改后”內(nèi)容讀入數(shù)組,數(shù)組中含有所在行的行數(shù)、拆分后的每個字、每個字的劃線情況。為保證數(shù)組數(shù)據(jù)免于溢出,應(yīng)提前獲取表格欄“更改前”和“更改后”中最長字符串的長度。
3)表格遍歷。以行和列數(shù)進(jìn)行表格遍歷,遍歷過程中,對于第一列內(nèi)容,自動填入行號,實現(xiàn)“序號”內(nèi)容填充的100%正確性。對其他列,采用以下代碼去除表格內(nèi)文字尾部的換行符和制表符:
zfc = Mid(zfc,1,Len(zfc)– 2)
同時,對字符串進(jìn)行處理。首先刪除空格、全角空格內(nèi)容,以判斷表格內(nèi)容是否為空,如果為空則以批注的方式進(jìn)行標(biāo)識,代碼如下:
然后,對每個字進(jìn)行遍歷,獲取其劃線情況,將其讀入到兩個三維數(shù)組中。識別過程中,空格、換行符等也應(yīng)識別為特殊的劃線情況。主要代碼如下:
5)遍歷過程中的劃線情況比對。比對函數(shù)較為復(fù)雜,程序主要邏輯如下:
首先對字符情況進(jìn)行整合,以空格、換行符、劃線情況為分隔點(diǎn),將字符下有劃線的連到一起,無劃線也連到一起,形成數(shù)組。之后采用以下邏輯識別錯誤標(biāo)識:①針對刪除內(nèi)容的比對。邏輯為:更改前刪除的內(nèi)容,更改后不應(yīng)出現(xiàn),但如果出現(xiàn)(兩個位置僅刪除一個時),為防止誤報警,要求其位置所在處的前一部分內(nèi)容或后一部分內(nèi)容至少有一個相同。②針對更改內(nèi)容的比對。邏輯為:若實際未更改,則前位置內(nèi)容或后位置內(nèi)容加它一定出現(xiàn)在更改前的內(nèi)容里,則標(biāo)識為劃線錯誤。③針對增加內(nèi)容的比對。邏輯為:不劃線的更改后內(nèi)容一定在更改前內(nèi)容中,若不滿足則標(biāo)識為劃線錯誤。④若更改前與更改后內(nèi)容相同,則標(biāo)識為劃線錯誤。
之后對獲取的更改單編號進(jìn)行分析,同樣采用正則表達(dá)式,獲取其中的機(jī)型和工藝規(guī)程編號信息,與更改單文檔中固定位置的數(shù)據(jù)進(jìn)行比對,如不一致,以批注的方式進(jìn)行標(biāo)識。
3.3 特殊情況的處理
1)中括號“[]”。在VBA語言中中括號有特殊含義,為防止出錯必須在文字讀入前進(jìn)行替換,問題輸出時再換回。
2)省略號“…”。在新羅馬字體下顯示效果與宋體顯示效果不同,可在統(tǒng)一設(shè)置后再單獨(dú)設(shè)置為宋體,可采用Selection.Find函數(shù)進(jìn)行查找并獲取字符位置t,并采用以下代碼設(shè)置字體:
4 基于VBA編程的工藝規(guī)程更改單一鍵標(biāo)準(zhǔn)化方法應(yīng)用
在表格中右鍵點(diǎn)擊,選擇“更改單標(biāo)準(zhǔn)化”并點(diǎn)擊,即可運(yùn)行程序,運(yùn)行完畢后若有問題,則顯示為批注。按照批注內(nèi)容更改完畢后可再次檢查,確認(rèn)無問題即可提交流程。該插件程序可作為模板嵌入到PDM系統(tǒng)中,使每個編輯人員均可享用一鍵標(biāo)準(zhǔn)化的便利。另外,程序設(shè)置了“刪除所有批注”的選項,便于錯誤批注校對時使用,如圖2所示。
以上標(biāo)準(zhǔn)化過程所花費(fèi)時間平均不超過10s,大幅節(jié)約了人工編寫時間,且可在序號欄、型號欄等內(nèi)容填寫方面做到100%的錯誤避免。插件程序自在工廠上線運(yùn)行以來,大大降低了更改單標(biāo)準(zhǔn)化的學(xué)習(xí)成本和工作時間,并以其快速、準(zhǔn)確、可信的特點(diǎn),逐步成為技術(shù)人員編寫更改單過程中的必備。
5 結(jié)束語
辦公自動化軟件因定制化程度較高而難以推廣,本文提供了一種新的解決途徑,即根據(jù)工作習(xí)慣,在深入了解數(shù)據(jù)模型后自行編制符合工作要求的軟件。在以新技術(shù)、新設(shè)備、新應(yīng)用為代表的航空維修單位的變革過程中,隨著技術(shù)文件標(biāo)準(zhǔn)化、規(guī)范化要求的不斷加深和提高,VBA編程語言將發(fā)揮越來越大的作用。
參考文獻(xiàn)
[1] Excel Home編著.別怕,Excel VBA其實很簡單[M].北京:北京大學(xué)出版社,2016.
[2] Excel Home編著. Excel 2010 VBA實戰(zhàn)技巧精粹[M].北京:人民郵電出版社,2015.
作者簡介
張康華,工程師,主要從事發(fā)動機(jī)附件修理技術(shù)研究。
楊武奎,工程師,主要從事發(fā)動機(jī)附件修理技術(shù)研究。