【VBA技巧】- N种方法从Excel中导出图片,看这一篇就够了
在 SUT学习交流群 (群号: 615356012 ),有位魔都的小伙伴在使用Outlook群发Excel文件,还需要把ExcelSheet首页截图放在正文,至于如何使用VBA代码群发邮件,可以移步 【Excel VBA】- VBA结合Outlook批量发送邮件(一) 和 【Excel VBA】- 使用CDO批量发送邮件(二) 进行学习。该小伙伴遇到的问题是使用断掉调试截图是正常的,但通过运行群发邮件,图片就是空白的,具体的问题截图如下:

通过分析该小伙伴发送的文件,单独剥离出保存图片的代码并进行单独调试,最终发现在 Office 2007 版本下可以正常导出,但 Office 2016 版本此代码导出的图片就是空白,小伙伴的保存图片代码如下:

由于低版本下代码可以正常运行,高版本Office无法运行,第一反应是代码中使用的
ChartObjects
是不是被微软弃用了,进过一段时间的研究,只需要对代码稍作修改,高版本的Office也可以导出图片。
既然已经研究了许久,我总了以下几种方法,可以很方便的从Excel中导出图片。
方法一 7z解压缩方法
该方法最简单,可以批量从Excel文件中导出所有图片,具体方法请见如下动态图:

注意 :使用7z解压缩方法必须保持Excel文件处于 关闭状态 ,否则会出现另一进程在使用的错误提示。

方法二 另存为Htm文件法
通过文件名称就可以知道需要把Excel文档 另存为Htm格式 ,这样Excel文章中的所有图片都会放入到.files文件夹中,具体方法详见如下动态图:

方法三 【VBA代码】- 导出选定图片
该方法通过选定需要导出的图片,然后通过VBA代码导出指定图片,具体实现代码如下:

代码看似比较长,实际很容易理解,我已经增加了详细注释,接下来跟随Steven一起演示一下吧。

方法四 【VBA代码】- 导出全部图片
方法三只是导出指定的图片,那如果希望一次导出所有的图片,只需要通过循环语句即可批量导出,具体代码如下:

代码具体演示如下:

至于为啥有些图片未导出,大伙看看代码就知道是为啥,这里就不再修改,有兴趣的小伙伴自行修改吧。
方法五 【VBA代码】- 导出单元格区域为图片
这个功能就更强大了,可以把Excel中的单元格区域导出为图片,不管Excel中本来是否有图片,具体代码太长,就不贴出来了,我们一起来看一下代码执行的效果吧。

通过如上动态图的演示,是不是感觉和在Excel选定区域并复制后,然后在 QQ 聊天窗口右键粘贴得到的效果一致呢?
好了,今天为大家介绍5种从Excel文档中导出图片的方法,大家可以根据自己适合的方法加以使用,如果需要在VBA代码中加以调用,则可以通过VBA代码方法,如果只是需要图片,可以使用前2种方法得到。
如果学习过程中遇到任何问题,欢迎加群( QQ群:615356012 )交流,素材的小伙伴可以在公众号回复“ 20170815 ”得到哦~后期文章附带的素材,大家都可以通过在公众号回复 该文档发送的日期 得到,欢迎下载学习^_^Written by Steven in 20170815^_^
微信公众号:SaveUTime
SUT学习交流群:615356012,入群审核人:Steven
关注公众号,提高效率,节约您的时间!