打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学习VBA,报表做到飞 第六章 Shapes对象 6.6 FSO对象
userphoto

2023.05.10 云南

关注

6.6 FSO对象

前两节我们把一组图片按图片的名字批量插入到单元格右边的表格里。今天我们准备把这组图片按照图片的名字给对应的单元格加上批注。我们存储的图片有时候是“jpg”格式的,有时候是“png”格式的。今天要实现的功能是不论图片是哪种格式,系统都能自动变换,从而保证程序的正常执行。要实现这种功能,就要用到FSO对象。

FSO对象全称FileSystemObject,意思是文件系统对象。它能提供对计算机文件系统的访问权限,可以实现文件(文件夹)的创建、改变、移动和删除等操作,也可以获取文件(文件夹)的名称、大小、属性、创建日期或最近修改日期等信息,还可以检测是否存在指定的文件(文件夹)。

FSO对象的诸多功能以后章节会详细介绍,今天我们主要是用它的一个FileExists方法,该方法能检查指定的文件是否存在。如果指定文件存在,则返回True;如果不存在,则返回False。

FSO对象不是Excel的自带功能,需要引用后才可以使用。引用分为前期绑定和后期绑定,今天我们直接用后期绑定。

Set fso = CreateObject('scripting.filesystemobject')

fso.FileExists(带全路径的文件名),如:

fso.FileExists(“F:\VBA学习\VBA学习.xls”)

小程序:

这组图片里既有jpg格式,又有png格式。

Sub 插入批注图片()

Set fso = CreateObject('scripting.filesystemobject')

Dim ss As Range, pz As Comment

Set fd = Application.FileDialog(msoFileDialogFolderPicker)

t = fd.Show

If t = -1 Then

lj = fd.SelectedItems(1)

Else

MsgBox '未选择图片路径,程序结束'

Exit Sub

End If

w = InputBox('请输入批注的宽度')

h = InputBox('请输入批注的高度')

For Each ss In Range('a1', Cells(Rows.Count, 1).End(xlUp))

ss.ClearComments

路径 = lj & '\' & ss.Value & '.png'

If Not fso.FileExists(路径) Then 路径 = lj & '\' & ss.Value & '.jpg'

If fso.FileExists(路径) Then

Set pz = ss.AddComment

pz.Shape.Fill.UserPicture 路径

pz.Shape.Width = w

pz.Shape.Height = h

End If

Next

End Sub

首先对FSO对象进行后期绑定,然后选择图片存放的文件夹,输入批注的宽度和高度,我们这里各输入100。先对图片赋予“png”的后缀名,如果该文件不存在,则把后缀名改为“jpg”。最后用图片填充单元格的批注,再设置批注的宽和高。运行结果如下:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel VBA解读(63):单元格批注
VBA使用FileSystemObject将读取或写入文本文件(三) — Windows Live
VBA: 利用FileSystemObject对象来处理文件
Excel2013文件批量添加批注图片
VB 判断文件是否存在
vbs学习笔记1
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服