□封俊紅,張 捷,朱曉姝3
(1.廣西高校復雜系統(tǒng)優(yōu)化與大數(shù)據(jù)處理重點實驗室,廣西 玉林 537000;2,3.玉林師范學院 計算機科學與工程學院,廣西 玉林 537000)
一種基于Excel 2010環(huán)境下VBA技術的實用文件管理工具
□封俊紅1,張 捷*2,朱曉姝3*
(1.廣西高校復雜系統(tǒng)優(yōu)化與大數(shù)據(jù)處理重點實驗室,廣西 玉林 537000;2,3.玉林師范學院 計算機科學與工程學院,廣西 玉林 537000)
針對紛繁復雜的文件管理問題,利用Excel 2010新環(huán)境下的VBA技術,在Excel 2010中開發(fā)了一個基于VBA技術的實用文件管理工具,實現(xiàn)將指定文件夾中的所有文件名提取出來保存到Excel工作表中,并自動添加和刪除與真實文件的超鏈接.借助Excel方便快捷的查找功能,快速地實現(xiàn)文件的搜索和定位,方便地進行相關主題文獻的歸類、注解、閱讀和更新.
Excel 2010;VBA;文件管理;文獻歸類;超鏈接
V isual Basic for Applications(VBA)是一種Visual Basic的一種宏語言,是VBA的一個子集,主要能用來擴展Windows的應用程式功能,特別是Microsoft Office軟件[1].也可說是一種應用程式視覺化的Basic Script.1994年發(fā)行的Excel 5.0版本中,即具備了VBA的宏功能.VBA可使常用的過程或者進程自動化,可以創(chuàng)建自定義的解決方案,最適用于來定制已有的桌面應用程序.
使用VBA技術,既可以在Office文檔中進行自動化操作[2-8],也可以利用VBA提供的對象開發(fā)獨立的應用程序來操作Office文檔[9,10].我們前面的研究中對這兩方面均有涉及,文獻[2]將在Powerpoint中引入VBA技術,使得在Powerpoint中就可以制作人機交互式的多媒體課件,在Powerpoint讀取存放在文本文件中的題目顯示在幻燈片中,用戶在幻燈片中作答后,Powerpoint比較用戶的答案和存放在文本文件中的標準答案,根據(jù)正確與否作出相應的提示.文獻[9]通過對Word對象和Powerpoint對象的操作,實現(xiàn)了一個獨立的應用程序,完成文件夾下的所有Powerpoint文件轉(zhuǎn)換成Word文件,包括其中的圖、表等復雜對象都能很好的轉(zhuǎn)化.
這篇論文是在我們以前研究的基礎上,在Office2010被普遍使用的新環(huán)境下,針對微軟提供的VBA的新變化,進行了相應的研究,結合實際工作的需求,在Excel 2010中開發(fā)了一個基于VBA技術的實用工具,此工具對日常的文檔管理、文檔檢索具有很大的作用,能自動顯示指定文件下的文件到Excel文件的工作表中,能根據(jù)文件夾下文件的變化進行動態(tài)調(diào)整,能自動對顯示的文件名添加和刪除超級鏈接到文件夾下文件,以便點擊文件名能自動打開對應的文件.這個工具利用Excel的查找功能,能快速地搜索文件是否存在,特別是要檢索一篇文獻是否已經(jīng)下載過特別方便;此工具能將方便的對自己近期要處理的文檔進行自動鏈接,處理完后進行自動取消鏈接;能利用Excel的工作表針對不同的主題對文檔進行歸類,解決了相同文檔在不同文件夾中的存放多個副本的問題.
與前面的office版本不同,Excel2010中的VBA和宏是隱藏的,需要相應設置才可以顯示,需要啟用"開發(fā)工具"選項卡,步驟如下:(1)在“文件”選項卡上,選擇“選項”以打開“選項”對話框.(2)單擊該對話框左側的“自定義功能區(qū)”.(3)在該對話框左側的“從下列位置選擇命令”下,選擇“常用命令”.(4)在該對話框右側的“自定義功能區(qū)”下,從下拉列表框中選擇“主選項卡”,然后選中“開發(fā)工具”復選框.具體設置如圖1所示.
圖1 啟用"開發(fā)工具"選項卡
進行以上設置之后,Excel 2010中就出現(xiàn)了“開發(fā)工具”的選項卡,里面就可以看到“Visual Basic”、“宏”、“插入”和“設計模式”等按鈕.在“插入”按鈕下會出現(xiàn)如圖2所示的常用控件,這些控件可以添加到Excel文檔中,在Excel工作表中添加里面的“命令按鈕”、“組合框”,“復選框”等控件,實現(xiàn)類似可視化編程軟件中提供的UI界面設計.“設計模式”按鈕用于將Excel轉(zhuǎn)換到設計狀態(tài),此時空間下的代碼不執(zhí)行,雙擊進入可以進行代碼編寫和修改,選中此按鈕時,四周會顯示一個實線框.沒有實線框表示一般模式,此時單擊其中的“命令按鈕”等控件,會執(zhí)行里面編寫的代碼,執(zhí)行對應的操作.
圖2 “插入”按鈕下的常用控件
2.1 Excel中的UI界面
在“設計模式”下,設計如圖3所示的用戶界面,此界面可以完成如下功能.
圖3 Excel中設計的UI界面
(1)搜索指定文件夾下的所有文件
(2)將搜索到的所有文件顯示到“Sheets”所指的工作表中
(3)對“Sheets”下面所指的工作表,根據(jù)“Start”和“Number”所指的范圍進行自動超鏈接和取消超鏈接
其中,“Sheets”標簽下面的組合框用于選擇當前Excel文件中的所有工作表,“Start”和“Number”下的文本框用于指定該工作表的范圍,下面的文本框用于指定要處理的文件夾,“RefreshFile”命令按鈕用于進行文件搜索和顯示到Excel工作表中,命令按鈕“Hyperlink”和“Non Hyperlink”用于對指定工作表中指定范圍的文件名自動添加和取消超鏈接,以便直接在Excel工作表中點擊文件名直接打開對應的文件.
2.2 命令按鈕“RefreshFile”的功能和實現(xiàn)
圖4 文件夾不存在對話框
圖5 文件夾存在處理完后對話框
圖6 命令按鈕“RefreshFile”的實現(xiàn)代碼
“RefreshFile”命令按鈕用于將上面文本框中顯示的文件夾中的所有文件羅列出來,并在該Excel文件的“All”工作表中顯示.根據(jù)文本框中文件夾是否有效,進行不同的處理.如果文件夾不存在,顯示如圖4所示的對話框,如果存在,則進行文件搜索、顯示文件名到工作表、最后顯示如圖5所示的對話框.命令按鈕“RefreshFile”的實現(xiàn)代碼如圖6所示,首先判斷指定的文件夾是否存在,若不存在,顯示文件夾不存在的對話框,如圖4所示;若存在,執(zhí)行自定義的AllFile函數(shù),執(zhí)行相應的操作.AllFile用于完成文件夾和其子文件夾下所有文件的搜索,搜索到一個文件顯示該文件名到該Excel文檔的“All”工作表中,根據(jù)搜索到的文件數(shù)數(shù)目,自動調(diào)整文件名顯示的位置.此函數(shù)用到了使用了“FindFirstFile”、“FindNextFile”和“FindClose”3個API(Application Program Interface)函數(shù)查找文件,因此在前面進行了聲明.該函數(shù)使用VBA中Excel對象的“Sheets”集合、“Sheet”工作表對象、“Range”屬性,使用“Activate”、“Select”等方法來自動操作Excel文檔.AllFile函數(shù)的實現(xiàn)代碼如圖7所示.
圖7 自定義函數(shù)AllFile的實現(xiàn)代碼
2.3 命令按鈕“Hyperlink”和“Non Hyperlink”的功能和實現(xiàn)
在圖3中指定工作表和開始行數(shù)和總行數(shù)后,單擊命令按鈕“Hyperlink”會對指定范圍的文件名進行超鏈接處理,將Excel中的文件名和文件夾中的實際文件進行鏈接,連接后的字體會變大,顏色變成藍色,點擊文件名會自動打開對應的文件.“Non Hyperlink”用于對指定范圍的文件名取消超級鏈接,取消后字體會變小,顏色會恢復到黑色.
命令按鈕“Hyperlink”的實現(xiàn)代碼如圖8所示,首先判斷工作表是否指定,如果沒有設置,則彈出提示對話框,選擇工作表組合框;如果設置好了,自動激活該工作表,根據(jù)設置的開始行數(shù)和總行數(shù),對該范圍的文件名添加超級鏈接,使用了Excel對象的Hyperlinks的Add方法,對應的代碼為ActiveSheet.Hyperlinks.Add Anchor: = Selection, Address:= Selection. Text, TextToDisplay : = Selection.Text.命令按鈕“Non Hyperlink”的實現(xiàn)代碼和“Hyperlink”類似,修改Add方法為Delete方法,對應的代碼為Selection.Hyperlinks. Delete.
圖8 “Hyperlink ”的實現(xiàn)代碼
2.4 組合框“Sheets”的自動更新功能
除了第一張表用于UI界面操作之外,組合框“Sheets”會自動列出Excel文檔中的所有工作表的名稱,添加、修改和刪除工作表后,再次打開Excel文檔,該列表會自動更新.假定UI界面工作表的名稱是“Operation”, 完成此功能的代碼如圖9所示.該代碼在Excel文檔打開時(Workbook_Open)執(zhí)行,首先清空組合框的下拉列表內(nèi)容,然后根據(jù)Excel文檔中的工作表數(shù)目,獲取工作表名稱添加到組合框下拉列表中,最后自動選擇組合框的第一項.
圖9 組合框“sheats”的實現(xiàn)代碼
本文在Excel 2010環(huán)境下,探討了使用VBA技術的一種應用,在Excel工作表中實現(xiàn)對指定文件夾下文件的管理,實現(xiàn)文件的快速查找、定位和超鏈接功能,該工具能夠?qū)ξ募A中的所有文件進行掃描,將文件名自動保存到Excel工作表中,能對指定的文件名自動添加和刪除與真實文件的超鏈接.從日常工作的使用情況來看,極大地方便了用戶對雜論文章的文件的整理,特別是文件特別多,又經(jīng)常對文件夾添加和刪除文件的情況.對科研工作者來說,可以使用Excel中的這個工具,方便地進行相關主題文獻的歸類、注解、閱讀和更新. ■
[1]VBA[EB/OL] Http://Baike.Haosou.Com/Doc/4307200-4511084.Html.
[2]張捷,李露璐,封俊紅.在Powerpoint中引入VBA技術制作交互式多媒體教學課件[J].電腦知識與技術,2014,10(5):1063-1065.
[3]郗德才.大學英語四、六級單詞提取:基于Word的VBA自然語言處理[J].海外英語,2013,(23):115-117.
[4]何劍.基于AutoIt3和VBA的Word操作題自動批量批改程序的設計與實現(xiàn)[J].揚州職業(yè)大學學報,2014,(01):36-39+59.
[5]郭彥.基于WordVBA技術的試卷自動排版系統(tǒng)的設計[J].電子制作,2014,(01):65.
[6]胡海英.基于WordVBA技術的試卷自動排版系統(tǒng)的設計[J].電子技術與軟件工程,2014,(03):64.
[7]喬洪亮.探究計算機一級Word和Excel操作自動評分的實現(xiàn)[J].電子測試,2014,(03):15-16+3.
[8]鄧秀蘭,李廣振.基于VBA技術的Word自動判卷系統(tǒng)的實現(xiàn)[J].計算機與現(xiàn)代化,2012,(09):219-221.
[9]張捷,封俊紅.基于VBA的PPT文檔轉(zhuǎn)換為Word文檔的研究與實現(xiàn)[J].微型電腦應用,2009,25(2):62-64,61.
[10]王德東.PowerPoint到Word文件的轉(zhuǎn)換實現(xiàn)[J].中國水運(下半月),2012,(12):100-101+11.
【責任編輯 謝明俊】
Practical File Management Tool Base on VBA in Excel 2010
FENG Jun-hong1, ZHANG Jie2, ZHU Xiao-shu3
(1. Guangxi Complex System Optimization and Data Processing Key Lab, Yulin, Guangxi 537000; 2. School of Mathematics and Information Science, Yulin Normal University, Yulin, Guangxi, 530004)
Aimed at the complicated file management issues, VBA in Excel 201 is employed to develop a practical file management tool base on VBA. This tool can extract all filenames from the specified folder, and save them to the worksheet in Excel. It can also automatically add or delete the hyperlinks between the filename and the real file in folder. By means of convenient and efficient look-up function of Excel, file’s searching and locating are quick implemented, and the classification, annotation, reading and update of the literature related subject are conveniently conducted.
Excel 2010; VBA; file management, literature classification; hyperlink
TP311.11
A
1004-4671(2015)02-0108-06
2015-03-01
玉林師范學院重點項目(2014YJZD05),廣西高??茖W技術研究項目重點項目(KY2015ZD099,2013ZD055),廣西自然科學基金(2013GXNSFAA019337),玉林師范學院博士科研啟動基金(G2014005)。
封俊紅(1973~),女,碩士,講師,主研領域:數(shù)據(jù)挖掘、大數(shù)據(jù)處理;*