摘 要 Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件.也可说是一种应用程式视觉化的Basic Script.本文着重介绍运用VBA在EXCEL中实现对图片文件的批量命名.
关 键 词VBA 宏语言 批量命名
中图分类号:TP391.1文献标识码:A
0 引言
在大学学生管理中,我们经常会遇到这样的问题,我们对学生进行图像信息采集的时候,图像采集完了,但是文件名称并没有达到我们的要求.比如我们要求用学生的来命名对应学生的照片.如果按照原始的重命名方式为每个文件重命名,工作效率是相当低的.那么,有没有一种好的办法抛开原始的重命名方式,实现图片的批量命名呢?带着这个问题,我们首先想到了VBA,利用VBA能够很好地解决此问题.
1.什么是VBA
Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件.也可说是一种应用程式视觉化的Basic Script.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.
2.在EXCEL中应用VBA实现对图片文件的批量命名
在某EXCEL表中,有A,B两列数据( A:姓名,B:);某文件夹中,有一批以此excel表中的姓名命名的照片.现在需要用相对应的号重命名这批照片,我们用VBA来实现.
利用VBA实现图片批量重命名步骤:(1)利用消息框提示用户选择需要重命名文件所在的文件夹在磁盘中的位置.(2)判断指定文件夹中的文件是否存在.(3)如果存在判断文件名称是否和EXCEL表中某一列数据相对应(本例中,文件夹中图片是以EXCEL表中的姓名命名的).(4)遍历EXCEL表中姓名列判断是否与文件夹中文件名称对应.(5)如果对应就用EXCEL表中列数据重命名文件夹中文件的文件名.
3.实现过程
建立一个工作簿.
在EXCEL表中,依次进行如下操作:
单击sheet1空白单元格->【工具】->【宏】->【Visual Basic 编辑器】,到此,就新建了一个VBA工程.
在VBA工程编辑器中双击Sheet1打开Sheet1代码窗口,在其中输入以下代码.
如下图所示:
图1
程序代码:
Sub rename()
MsgBox "请选择要重命名文件所在的文件夹"
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect 等于 False
.Show
reNamePath 等于 .SelectedItems(1)
If Right(reNamePath, 1) <> "\" Then
reNamePath 等于 reNamePath + "\"
End If
End With
Range("a2").End(xlDown).Select
rCount 等于 ActiveCell.Row
Dim fs
Set fs 等于 CreateObject("Scripting.FileSystemObject")
For r 等于 2 To rCount
oName 等于 reNamePath & Cells(r, 1) & ".jpg"
If fs.FileExists(oName) Then
nName 等于 reNamePath & Cells(r, 2) & ".jpg"
Name oName As nName
End If
Next r
End Sub
以上程序代码为用EXCEL表中第二列数据即为文件夹中的图片重命名.由于篇幅有限,我们对以上的代码参数稍加改动,还可以拓展延伸,比如用学生的学号为照片重命名.