APP下载

一种基于Excel 2010环境下VBA技术的实用文件管理工具

2015-12-16封俊红朱晓姝3

玉林师范学院学报 2015年2期
关键词:文件名文件夹对话框

□封俊红,张 捷,朱晓姝3

(1.广西高校复杂系统优化与大数据处理重点实验室,广西 玉林 537000;2,3.玉林师范学院 计算机科学与工程学院,广西 玉林 537000)

一种基于Excel 2010环境下VBA技术的实用文件管理工具

□封俊红1,张 捷*2,朱晓姝3*

(1.广西高校复杂系统优化与大数据处理重点实验室,广西 玉林 537000;2,3.玉林师范学院 计算机科学与工程学院,广西 玉林 537000)

针对纷繁复杂的文件管理问题,利用Excel 2010新环境下的VBA技术,在Excel 2010中开发了一个基于VBA技术的实用文件管理工具,实现将指定文件夹中的所有文件名提取出来保存到Excel工作表中,并自动添加和删除与真实文件的超链接.借助Excel方便快捷的查找功能,快速地实现文件的搜索和定位,方便地进行相关主题文献的归类、注解、阅读和更新.

Excel 2010;VBA;文件管理;文献归类;超链接

0 引言

V isual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,是VBA的一个子集,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件[1].也可说是一种应用程式视觉化的Basic Script.1994年发行的Excel 5.0版本中,即具备了VBA的宏功能.VBA可使常用的过程或者进程自动化,可以创建自定义的解决方案,最适用于来定制已有的桌面应用程序.

使用VBA技术,既可以在Office文档中进行自动化操作[2-8],也可以利用VBA提供的对象开发独立的应用程序来操作Office文档[9,10].我们前面的研究中对这两方面均有涉及,文献[2]将在Powerpoint中引入VBA技术,使得在Powerpoint中就可以制作人机交互式的多媒体课件,在Powerpoint读取存放在文本文件中的题目显示在幻灯片中,用户在幻灯片中作答后,Powerpoint比较用户的答案和存放在文本文件中的标准答案,根据正确与否作出相应的提示.文献[9]通过对Word对象和Powerpoint对象的操作,实现了一个独立的应用程序,完成文件夹下的所有Powerpoint文件转换成Word文件,包括其中的图、表等复杂对象都能很好的转化.

这篇论文是在我们以前研究的基础上,在Office2010被普遍使用的新环境下,针对微软提供的VBA的新变化,进行了相应的研究,结合实际工作的需求,在Excel 2010中开发了一个基于VBA技术的实用工具,此工具对日常的文档管理、文档检索具有很大的作用,能自动显示指定文件下的文件到Excel文件的工作表中,能根据文件夹下文件的变化进行动态调整,能自动对显示的文件名添加和删除超级链接到文件夹下文件,以便点击文件名能自动打开对应的文件.这个工具利用Excel的查找功能,能快速地搜索文件是否存在,特别是要检索一篇文献是否已经下载过特别方便;此工具能将方便的对自己近期要处理的文档进行自动链接,处理完后进行自动取消链接;能利用Excel的工作表针对不同的主题对文档进行归类,解决了相同文档在不同文件夹中的存放多个副本的问题.

1 Excel2010中的VBA

与前面的office版本不同,Excel2010中的VBA和宏是隐藏的,需要相应设置才可以显示,需要启用"开发工具"选项卡,步骤如下:(1)在“文件”选项卡上,选择“选项”以打开“选项”对话框.(2)单击该对话框左侧的“自定义功能区”.(3)在该对话框左侧的“从下列位置选择命令”下,选择“常用命令”.(4)在该对话框右侧的“自定义功能区”下,从下拉列表框中选择“主选项卡”,然后选中“开发工具”复选框.具体设置如图1所示.

图1 启用"开发工具"选项卡

进行以上设置之后,Excel 2010中就出现了“开发工具”的选项卡,里面就可以看到“Visual Basic”、“宏”、“插入”和“设计模式”等按钮.在“插入”按钮下会出现如图2所示的常用控件,这些控件可以添加到Excel文档中,在Excel工作表中添加里面的“命令按钮”、“组合框”,“复选框”等控件,实现类似可视化编程软件中提供的UI界面设计.“设计模式”按钮用于将Excel转换到设计状态,此时空间下的代码不执行,双击进入可以进行代码编写和修改,选中此按钮时,四周会显示一个实线框.没有实线框表示一般模式,此时单击其中的“命令按钮”等控件,会执行里面编写的代码,执行对应的操作.

图2 “插入”按钮下的常用控件

2 基于VBA技术的实用文件管理工具

2.1 Excel中的UI界面

在“设计模式”下,设计如图3所示的用户界面,此界面可以完成如下功能.

图3 Excel中设计的UI界面

(1)搜索指定文件夹下的所有文件

(2)将搜索到的所有文件显示到“Sheets”所指的工作表中

(3)对“Sheets”下面所指的工作表,根据“Start”和“Number”所指的范围进行自动超链接和取消超链接

其中,“Sheets”标签下面的组合框用于选择当前Excel文件中的所有工作表,“Start”和“Number”下的文本框用于指定该工作表的范围,下面的文本框用于指定要处理的文件夹,“RefreshFile”命令按钮用于进行文件搜索和显示到Excel工作表中,命令按钮“Hyperlink”和“Non Hyperlink”用于对指定工作表中指定范围的文件名自动添加和取消超链接,以便直接在Excel工作表中点击文件名直接打开对应的文件.

2.2 命令按钮“RefreshFile”的功能和实现

图4 文件夹不存在对话框

图5 文件夹存在处理完后对话框

图6 命令按钮“RefreshFile”的实现代码

“RefreshFile”命令按钮用于将上面文本框中显示的文件夹中的所有文件罗列出来,并在该Excel文件的“All”工作表中显示.根据文本框中文件夹是否有效,进行不同的处理.如果文件夹不存在,显示如图4所示的对话框,如果存在,则进行文件搜索、显示文件名到工作表、最后显示如图5所示的对话框.命令按钮“RefreshFile”的实现代码如图6所示,首先判断指定的文件夹是否存在,若不存在,显示文件夹不存在的对话框,如图4所示;若存在,执行自定义的AllFile函数,执行相应的操作.AllFile用于完成文件夹和其子文件夹下所有文件的搜索,搜索到一个文件显示该文件名到该Excel文档的“All”工作表中,根据搜索到的文件数数目,自动调整文件名显示的位置.此函数用到了使用了“FindFirstFile”、“FindNextFile”和“FindClose”3个API(Application Program Interface)函数查找文件,因此在前面进行了声明.该函数使用VBA中Excel对象的“Sheets”集合、“Sheet”工作表对象、“Range”属性,使用“Activate”、“Select”等方法来自动操作Excel文档.AllFile函数的实现代码如图7所示.

图7 自定义函数AllFile的实现代码

2.3 命令按钮“Hyperlink”和“Non Hyperlink”的功能和实现

在图3中指定工作表和开始行数和总行数后,单击命令按钮“Hyperlink”会对指定范围的文件名进行超链接处理,将Excel中的文件名和文件夹中的实际文件进行链接,连接后的字体会变大,颜色变成蓝色,点击文件名会自动打开对应的文件.“Non Hyperlink”用于对指定范围的文件名取消超级链接,取消后字体会变小,颜色会恢复到黑色.

命令按钮“Hyperlink”的实现代码如图8所示,首先判断工作表是否指定,如果没有设置,则弹出提示对话框,选择工作表组合框;如果设置好了,自动激活该工作表,根据设置的开始行数和总行数,对该范围的文件名添加超级链接,使用了Excel对象的Hyperlinks的Add方法,对应的代码为ActiveSheet.Hyperlinks.Add Anchor: = Selection, Address:= Selection. Text, TextToDisplay : = Selection.Text.命令按钮“Non Hyperlink”的实现代码和“Hyperlink”类似,修改Add方法为Delete方法,对应的代码为Selection.Hyperlinks. Delete.

图8 “Hyperlink ”的实现代码

2.4 组合框“Sheets”的自动更新功能

除了第一张表用于UI界面操作之外,组合框“Sheets”会自动列出Excel文档中的所有工作表的名称,添加、修改和删除工作表后,再次打开Excel文档,该列表会自动更新.假定UI界面工作表的名称是“Operation”, 完成此功能的代码如图9所示.该代码在Excel文档打开时(Workbook_Open)执行,首先清空组合框的下拉列表内容,然后根据Excel文档中的工作表数目,获取工作表名称添加到组合框下拉列表中,最后自动选择组合框的第一项.

图9 组合框“sheats”的实现代码

3 结论

本文在Excel 2010环境下,探讨了使用VBA技术的一种应用,在Excel工作表中实现对指定文件夹下文件的管理,实现文件的快速查找、定位和超链接功能,该工具能够对文件夹中的所有文件进行扫描,将文件名自动保存到Excel工作表中,能对指定的文件名自动添加和删除与真实文件的超链接.从日常工作的使用情况来看,极大地方便了用户对杂论文章的文件的整理,特别是文件特别多,又经常对文件夹添加和删除文件的情况.对科研工作者来说,可以使用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操作题自动批量批改程序的设计与实现[J].扬州职业大学学报,2014,(01):36-39+59.

[5]郭彦.基于WordVBA技术的试卷自动排版系统的设计[J].电子制作,2014,(01):65.

[6]胡海英.基于WordVBA技术的试卷自动排版系统的设计[J].电子技术与软件工程,2014,(03):64.

[7]乔洪亮.探究计算机一级Word和Excel操作自动评分的实现[J].电子测试,2014,(03):15-16+3.

[8]邓秀兰,李广振.基于VBA技术的Word自动判卷系统的实现[J].计算机与现代化,2012,(09):219-221.

[9]张捷,封俊红.基于VBA的PPT文档转换为Word文档的研究与实现[J].微型电脑应用,2009,25(2):62-64,61.

[10]王德东.PowerPoint到Word文件的转换实现[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),广西高校科学技术研究项目重点项目(KY2015ZD099,2013ZD055),广西自然科学基金(2013GXNSFAA019337),玉林师范学院博士科研启动基金(G2014005)。

封俊红(1973~),女,硕士,讲师,主研领域:数据挖掘、大数据处理;*

猜你喜欢

文件名文件夹对话框
Fast Folders,让你的文件夹四通八达
正常恢复虚拟机
右键调用多重更名更方便
Excel轻松提取文件名
Bootlace Worms’Secret etc.
What Is Beauty?
把我的秘密藏起来
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
浅谈VB的通用对话框《CommonDialog》控件的使用