在VBA遍历文件夹和子文件夹中所有文件.doc_第1页
在VBA遍历文件夹和子文件夹中所有文件.doc_第2页
在VBA遍历文件夹和子文件夹中所有文件.doc_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

甘肃省信息技术与课程整合优秀论文与教学设计评选活动 类别: 论文 题目: 巧用Office组件套打学生胸牌 姓名: 张兴荣 单位: 庆阳 市 合水 县(区) 合水县第一中学 联系方式 1035233839 巧用Office组件套打学生胸牌张兴荣(甘肃省合水县第一中学甘肃合水745400)摘要:本文是一个Office组件的整合应用实例。文中详细介绍了在Microsoft Office2003环境下利用Access报表打印学生胸牌证的过程,其中应用Excel-filesarch对象遍历文件夹,并结合Excel函数创建学生信息数据表的方法更具广泛应用价值。 关键词:照片 胸牌 报表 VBA Office在日常办公应用中,经常需要套打带照片的证书证件(简称“照片证件”), 通常作法是用Photosohp等图像处理软件在模板图层上插入照片和文字图层进行处理,但这种方法费时低效,劳动强度大。我在实践操中摸索出一套简明高效的照片证件处理法,现以学生胸牌制作为例加以介绍,以期相互交流,共同提高。一、 照片证件套打原理照片证件中一般含图像和文本两类元素,其中图像多为个人数码照片图像文件,文本为个人基本信息文本资料。照片证件套打的基本原理是:先将个人的文本信息及照片图像文件文件名存储在数据库表记录中,再通过设计报表将这些记录信息准确的定位到模板相应位置上,然后逐页打印报表即可。这种方法处理证件,对系统的要求低,无须安装庞大的图形图像处理软件,系统只要安装了面向对象的数据库软件就行。二、 胸牌制作过程利用照片证件套打原理制作学生胸牌时需要事前制作好胸牌模板,分班级存放好学生照片图像文件。下图是我整理好的胸牌模板和资料文件夹,其中照片文件夹下的班级子文件夹中存放着以学生姓名命名的学生照片图像文件。由于制作胸牌时需要提供学生相关文本信息,因此在设计报表之前首先得建立学生信息数据表。现分两个模块介绍胸牌制作流程。模块一:建立学生信息数据表VBA是Microsoft Office系列内置的面向对象编程语言,同其他任何面向对象编程语言一样,VBA里也有对象、属性、方法和事件。而的filesarch 对象功能就是遍历指定文件夹,利用它可将照片文件夹中的所有图像文件搜索出来,并结合Excel函数创建一个学生信息数据表。具体分两步完成。步骤一:遍历文件夹,搜索图像文件。方法是启动MicrosoftExcel,按ALT+F11,打开VBA编辑器,插入一模块,编写如下模块代码(filesarch的属性已作了注释,供大家学习参考)。Sub mysearch()Dim files, i, arr(1 To 10000)Set files = Application.FileSearch 设置一个搜索对象fsWith files.LookIn = D:编程照片 设置搜索路径.Filename = *.jpg 设置搜索文件类型.SearchSubFolders = True 确定搜索子文件夹If .Execute 0 Then 如果搜索到文件,显示文件个数MsgBox there were & .FoundFiles.Count & file(s) found.For i = 1 To .FoundFiles.Count 通过循环把所有搜索到的文件存入数组中arr(i) = .FoundFiles(i)Next iSheets(1).Range(a1).Resize(.FoundFiles.Count) = Application.Transpose(arr) 把数组内容放到单元格中ElseMsgBox there were no files found. 如果搜索不到文件,显示文件找不到信息End IfEnd WithEnd Sub按F5执行。这样,生成一张sheet1工作表,在A列中存放着所有搜索到的含绝对路径的照片图像文件文件名,此时sheet1工作表处于打开状态。步骤二:利用Excel函数,从图像文件名中提取学生有用信息。应用Excel文本替换Substitute()、右截取Right()、定位Find()等函数截取A列单元格数据,获得学生相关资料信息。方法是分别在B1、C1、D1、E1单元格输入如下函数:=RIGHT(A1,LEN(A1)-FIND(#,SUBSTITUTE(A1,#,LEN(A1)-LEN(SUBSTITUTE(A1,)=LEFT(B1,LEN(B1)-4)=LEFT(A1,LEN(A1)-LEN(B1)-1)=RIGHT(D1,LEN(D1)-FIND(#,SUBSTITUTE(D1,#,LEN(D1)-LEN(SUBSTITUTE(D1,)并将它们自动填充到与A列行齐,得到如截图一所示学生资料信息表,其中A、C、E三列为有用数据,分别是:A列学生照片存放路径;C列学生姓名;E列学生所在班级。这样,一个存放学生信息的Excel表已经生成。保存此表到工作目录下,以备后用。模块二:设计报表1、启动Access,新建一空数据库。将模块一中生成的Sheet1表导入,生成数据表1。2、为了方便报表设计,先以数据表1中的字段1、字段3和字段5三个字段建立查询1。查询截图如截图二所示。3、新建报表1,设置报表记录源为查询1,开始设计报表。4、在报表主体部分插入名为Image0的图像控件,设置其图片属性为胸牌模版图片,大小为胸牌模板大小,可见性为“是”。5、插入三个文本框控件,拖放好位置,设置好字体、字号等,如图1所示。文本框控件来源分别为查询1中的字段1、字段3和字段5三个查询字段,可见性全部设置为“是”。6、在主体节上需要显示学生照片的位置添加stuImage图像控件,调好大小,图片类型属性为“链接”,缩放模式属性为“缩放”,可见性为“是”。7、编写控制代码,根据报表字段1文本框中显示内容来确定链接照片位置。方法是点击菜单栏“视图代码”命令,进入VBA代码编写窗口,编写如下代码:Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer) On Error Resume Next Dim path As String path = Reports!报表1!字段1 根据报表1的字段1确定学生照片位置。 If Dir(path) = Then path = Application.CurrentProject.path & noimg.bmp 判断照片是否存在,如果不存在则显示一张事先准备好的空白图片noimg.bmp。 stuImage.Picture = path End Sub预览报表,结果如图2所示。如果不满意,返回设计视图调试直到满意为止。8、将字段1的可见性属性设为“否”,让其在打印输出时不再显示,最终输出结果为如图3所示。9、打印报表。完成。Microsoft Office组件是针对不同应用领域开发的应用软件,在它们各自领域都有其独特的功能,我们可以利用各组件的优势,将一个工程“分段”后分包给这些精英组件进行处理,并利用组件间的高度兼容性巧妙完成诸如胸牌套打这类复杂任务。这种将复杂工程进行“分段”处理,利用不同功能软件分解任务的思想和方法值得推广。参考文献:1 百度文库在VBA遍历文件夹和子文件夹中所有文件DB/OL /view/a800a78583d049649b665814.html,2010-7-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论