如果需要制作如图 6.6所示的产品目录,因为所需图片的尺寸通常并非完全一致,因此除了插入图片,还需要调整图片的尺寸以适应“图片”列单元格的大小,使用VBA可以快速完成这一系列繁琐的操作,示例代码如下。
![]()
图 6.61 图片产品目录
![]()
源码下载链接:
https://pan.baidu.com/s/1ap7RnFdNR0blo6nUW3fACA
提取码: duia
代码解析:
- 第6行和第7行代码选中工作表中的所有Shape对象并删除。
- 第8行代码判断A3单元格是否有内容,如果A3是空单元格说明“产品目录”尚未录入相关产品信息,本过程将结束运行。
- 第9行到第13行代码使用For…Next循环结构逐个插入所需花卉图片。
- 第9行代码使用Range对象的End属性获取工作表中A列最后一个非空单元格的行号作为循环的终值,也就是产品目录中最后一条产品记录所在行的行号。
- 第11行代码中使用Shape对象的AddPicture方法插入花卉图片,图片文件以花卉名称为文件名,扩展名为JPG,保存在工作簿所在目录中。代码中的ThisWorkbook.Path返回当前工作簿所在的目录名称。
- AddPicture方法从现有文件创建图片并返回代表新图片的Shape对象,其语法格式如下。
- Expression.AddPicture(Filename,LinkToFile,SaveWithDocument,Left,Top,Width,Height)
- AddPicture方法的所有参数都是必需的。
- Filename参数为Sting类型,用来指定要创建的图片文件的路径和文件名。
- Left和Top参数为Single类型,代表图片左上角相对于文档左上角的水平和垂直坐标(以磅为单位)。
- Width和Height参数为Single类型,代表图片的宽度和高度(以磅为单位)。
- LinkToFile参数代表图片对象和其源文件之间的关系,使图片成为其源文件的独立副本则为msoFalse,建立图片与其源文件之间的链接则为msoTrue。
- SaveWithDocument参数代表图片对象的保存方式,在文档中只存储链接信息则为msoFalse,将链接图片与该图片插入的文档一起保存则为msoTrue。如果LinkToFile参数为msoFalse,则该参数必须为msoTrue。
- 第12行代码取消图片的锁定纵横比,以便于适应单元格大小。Shape对象的LockAspectRatio属性用来返回或设置调整形状大小时其纵横比是否可以改变,调整大小时其原始比例不变则为True;如果形状的高度和宽度可以分别更改,则为False。
- 第16行和第17行代码释放对象变量所占用的系统资源。
- 运行InsertPictures过程,在工作表的“图片”列将插入花卉图片,并自动调整图片的尺寸以适应单元格大小,如图 6.6所示。
由北京大学出版社出版、ExcelHome精心打造的《Excel VBA 经典代码应用大全》一书,内容侧重于Excel VBA 的经典用法及其代码讲解,旨在帮助Excel VBA 初学者和具备一定VBA 应用基础希望进阶学习的广大读者。全书精选了大量经典实例,辅以深入浅出的代码讲解剖析,力求让更多希望深入学习Excel VBA 的读者能够有更大的收获。
复制这段描述
¥CMe2bIyMHwh¥
后打开手机淘宝即可购买本书
|
|