?

基于VBA電子文檔標定密級軟件的設計與實現

2022-09-27 12:42劉慶杰蔣奉君魏光瑜
工程與試驗 2022年3期
關鍵詞:密級文本框子程序

劉慶杰,蔣奉君,劉 輝,魏光瑜

(1.成都飛機工業(集團)有限責任公司,四川 成都 610092;2.西南交通大學,四川 成都 611756;3.國家知識產權局專利局專利審查協作四川中心,四川 成都 610200)

1 引 言

VBA(Visual Basic for Application)是Visual Basic的一種宏語言,具有比較完整的程序設計語言,并提供了面向對象的程序設計方法[1],可跨越多個應用軟件,且具有控制應用軟件的能力,可直接應用于Office系列軟件。

根據國家保密規定,凡是國家秘密載體,包括已經定稿或未定稿的文件和電子文檔,都應當按要求標明密級和保密期限。公司要求所有電子文檔均應在首頁固定位置按照特定字號與字體標定密級,包括“秘密★10年”、“內部”、“公開”等。電子文檔創建人為標定密級的第一責任人,標定密級的常規操作為:打開文檔、插入文本框、輸入密級文字、調整字號、調整字體、調整文本框位置、關閉文檔。創建的文檔數量較多時,標定密級的操作重復且繁瑣。

為了減少人工的重復性操作,基于VBA設計了電子文檔標定密級軟件,將標定密級功能入口集成于電腦鼠標的右鍵菜單欄中,可不打開電子文檔進行相關調整工作,僅需選擇需標定密級的電子文檔和選擇需確定的密級,可以方便地為一項或多項電子文檔同時進行密級標定,自動在電子文檔首頁的指定位置插入文本框、輸入指定字號、字體的密級文字字樣。

2 軟件架構

標定密級軟件按照模塊化設計[2],包括程序入口調用、選擇電子文檔、選擇密級標識以及公開、內部等6個標識密級子程序,軟件框架見圖1。

圖1 標定密級軟件框架

程序入口子程序為DOS命令,主要是修改注冊及調用VBA宏程序;選擇電子文檔子程序實現文件選擇并獲取文件路徑;選擇密級標識子程序實現調用相應密級子程序,密級標識子程序實現后臺標定密級。

3 界面設計

基于VBA自帶窗體模塊,設計密級選擇窗口[3],設置“公開”、“內部”、“秘密”、“機密”、“普通商秘”、“核心商秘”等共6個密級標識選項,用不同顏色進行區分。另設置“繼續”按扭,實現對不同的文件進行標定密級。設置“退出”按扭,退出程序。密級選擇界面如圖2所示。

圖2 密級選擇窗口

源代碼如下:

Private Sub CommandButton1_Click()

Call Pulic_L.Pulic_L

End Sub

Private Sub CommandButton2_Click()

Call Internal_L.Internal_L

End Sub

Private Sub CommandButton3_Click()

Call Secret_L.Secret_L

End Sub

Private Sub CommandButton4_Click()

Call Classified_L.Classified_L

End Sub

Private Sub CommandButton5_Click()

Call GenCS_L.GenCS_L

End Sub

Private Sub CommandButton6_Click()

Call PivCS_L.PivCS_L

End Sub

Private Sub CommandButton7_Click()

Unload SelLe

Call FileSelect.FileSelect

End Sub

Private Sub CommandButton8_Click()

Application.DisplayAlerts = False

ThisWorkbook.Saved = False

On Error Resume Next

Kill "F:個人資料文檔標定密級 mep.txt"

ThisWorkbook.Close

End Sub

4 VBA編程

4.1 鼠標右鍵菜單程序入口

基于DOS命令編寫兩個BAT文件,均放置于C:Program Files目錄下。第1個修改注冊表,實現在鼠標右鍵菜單欄增加“標密管理”選項并鏈接調用BMS.bat,修改后的注冊表見圖3,鼠標右鍵菜單欄選項見圖4,源代碼為Reg add HKEY_CLASSES_ROOTdirectoryackgroundshell標密管理command /ve /d “C:Program FilesBMS.bat”。第2個為BMS.bat,調用主程序BMS.xlsm,代碼為@start EXCEL.EXE/e“C:ProgramFilesBMS.xlsm”。

圖3 修改后的注冊表

圖4 鼠標右鍵菜單選項

4.2 文件選擇子程序

文件選擇子程序主要實現在鼠標選中文件后記錄該文件的路徑及所選擇的文件數量[4]。彈出的文件選擇窗口默認為D盤,允許多項選擇,可任意選擇文件位置(如圖5所示)。源代碼如下:

Public ROUTE

Public Conunt_NUM

Sub FileSelect()

Set filedialogobject = Application.FileDialog(msoFileDialogFileSelect)

With filedialogobject

.Title = "請選擇需標密的文件"

.InitialFileName = "D:"

.AllowMultiSelect = True

End With

filedialogobject.Show

Set PATHS = filedialogobject.SelectedItems

With filedialogobject

Conunt_NUM = .SelectedItems.Count

End With

If Conunt_NUM > 0 Then

ReDim ROUTE(0 To Conunt_NUM - 1)

For I = 0 To Conunt_NUM - 1

ROUTE(I) = PATHS(I + 1)

Next

Else

MsgBox "未選取任何文件!"

End If

SelLe.Show 1

End Sub

圖5 文件選擇窗口

4.3 公開密級子程序

公開密級子程序主要實現按選擇的文件路徑逐個打開文件,插入文本框[5-9],位置為60#,30#,文本框大小為232#,40#。在文本框中設置文字為“公開”,字體為黑體,字號為16磅。完成所有選擇文件密級標識后,提示“已將所選文件標密為‘公開’”。

Sub ublic_L()

If Conunt_NUM = 0 Then

MsgBox “您未選取文件!”

Exit Sub

Else

Dim FILENUM As Integer

FILENUM = Ubound(ROUTE, 1)

For j = 0 To FILENUM

If ROUTE(j) Like “*.doc*” Then

Dim oWord

Set oWord = VBA.CreateObject(“word.application”)

oWord.Visible = 0

oWord.DisplayAlerts = True

Dim oDoc As Object

Set oDoc = oWord.Documents.Open(ROUTE(j), , False)

With oDoc

Dim TXTBOX1

Set TXTBOX1 = oDoc.Shapes.AddTextbox(msoTextOrientationHorizontal, 60#, 30#, 232#, 40#)

With TXTBOX1

.TextFrame.TextRange.Text = “公開”

.TextFrame.TextRange.Font.Name = “黑體”

.TextFrame.TextRange.Font.Size = “16”

.Line.Visible = msoFalse

.Fill.Visible = msoFalse

End With

End With

On Error Resume Next

oWord.ActiveDocument.Save

oWord.ActiveDocument.Close False

oWord.Application.Quit

Set oWord = Nothing

Set oDoc = Nothing

Else

End If

Next

MsgBox “已將所選文件標密為“公開””

End If

On Error Resume Next

Kill “F:個人資料文檔標定密級 mep.txt”

End Sub

4.4 其它密級子程序

其它密級子程序整體與公開密級子程序相同,不同之處在于文本框中輸入密級標識的文字及完成標定密級后的提示框文字,源代碼如下:

With TXTBOX1

.TextFrame.TextRange.Text = "**"

.TextFrame.TextRange.Font.Name = "黑體"

.TextFrame.TextRange.Font.Size = "16"

.Line.Visible = msoFalse

.Fill.Visible = msoFalse

End With

MsgBox "已將所選文件標密為“**”"

“**”位置為相應的密級標識。

5 測試驗證

5.1 測試項目

新建100份電子文檔,存放于同一文件夾中,見圖6。序號1~50的文檔標為分開、序號51~80標為內部、序號81~100標為秘密。測試分為人工和程序兩組進行,人工標定密級為2人,其中1人采用插入文本框、輸入文字、調整字體及字號的方式,另外1人采用復制粘貼已經制作好的密級標識文本框的方式;程序標定密級為1人,測試項目包括計算標定密級的時間,統計標定密級的一致性,包括字體、字號、文本框位置,并定性說明疲勞程度。

圖6 測試用的電子文檔

5.2 測試過程

人工標定密級測試過程:雙擊打開電子文檔、插入文本框、輸入相應密級標識文字、調整字號16磅、調整字體為黑體、保存文檔、關閉文檔,不斷重復上述操作100次。

程序標定密級測試過程見圖7,分3次批量選擇序號1~50、51~80、81~100,以及選擇“公開”、“內部”、“秘密”3種密級。

圖7 程序標定密級過程

5.3 測試結果

通過人工和程序為100份電子文檔標定不同密級的對比測試,所得結果如表1所示。

表1 測試結果

在測試過程中,人工操作明顯繁瑣,且隨著標定密級數量的增加,操作明顯因疲勞而節奏放緩,人員A、 B密級標識字體、字號正確,但人員A插入文本框位置不定,且標定密級過程期間不能處理其它工作。程序測試的人員有條不紊,僅需點幾次鼠標即可,且在程序自動標定密級時,還能處理其他工作,密級標識字體、字號、位置完全一致,見圖8。

圖8 標識公開密級結果

6 結 論

為快速實現對單個或批量電子文檔標定密級,減少人工的重復性操作,基于VBA設計了電子文檔標定密級軟件。該軟件采用模塊化設計,主程序根據選擇的密級調用相應子程序。程序入口集成于鼠標右鍵菜單欄中,方便快速調用主程序。

經測試驗證,程序標密速度為20s/份,遠高于人工標密的30~45s/份。程序不依賴操作系統且無需安裝,可直接運行,推廣應用性強,可與其他標密系統結合使用。后續將考慮結合公司國家秘密事項目錄對文檔進行掃描,主動識別關鍵密點,輔助確定密級。

猜你喜歡
密級文本框子程序
巧用文本框實現PPT多圖片排版
PPT文本框的另類應用
基于區塊鏈技術的多密級數據安全存儲系統設計
淺談子程序在數控車編程中的應用
文本框酷變3D效果
子程序在數控車加工槽中的應用探索
高校密級檔案管理問題探析
西門子840D系統JOG模式下PLC調用并執行NC程序
文件密級標識全程管控系統的設計與實現
密級“совершенно секретно”是“絕密”還是“機密”?
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合