|
本帖最后由 joforn 于 2022-9-8 23:57 编辑
使用方式:VBA工程中直接导入basLoadPictrue.bas文件即可。
调用方式:请参照VBA帮助中的LoadPictrue函数。
适用文件:xlsx、xlsm、ZIP文件中的图片、可下载的网络图片、压缩格式ICO、PNG及原有函数所支持的图片。 使用说明:
一、由于这个函数是一两年前写的半成品,后来由于工作忙,一直没时间继续,所以现在也还是半成品(对我而言),所以不保证能100%没有Bug。本函数仅限刚好有需要直接加载图片到iPictrue或Pictrue类中的时候使用,不建议作为商用或是装逼等用途。
二、这个函数仅仅只是LoadPictrue的小范围替代使用;
三、函数所用到的源码过于简单,没写注释;
四、本函数仅适用有限的操作系统及Office版本,除32位及64位Windows版本中的Office以外,不支持其它任意版本的Office,请不要尝试在MAC或Linux等常用系统中运行;
五、本函数未经严格测试,仅在Windows 7系统上的Office 2016(繁体64位)、Office 2013(英文32位)及Windows 10上的Office 2016(简体64位)中做过有限的两三次运行测试;
粗糙的技术说明:
由于VBA是基于非常古老的技术平台及操作系统平台开发的,已经过去了几十年,在Windows 98以后,几乎没有任何核心函数的修改。所以VBA内部的核心内容都是非常非常古老。就算是从32位升级64位也仅仅做了最简单的升级,没有其它任何的核心修改。所以像LoadPictrue早已经不再适用现在的图片加载,并且,因为IPictrue也是一个非常古老的类模型,所以无论怎么改,都对PNG、SVG等图形文件非常不友好。本人写的这个LoadPictrue也仅仅只是粗暴的把PNG强行转换,打包装进IPictrue对象中,所以如果是带透明通道的PNG图片或是ICO图片会有些许噪点,有些是图片本身自带的噪点,但因为背景处理及VBA的图片输入函数会显得噪点比较突出。
最后说明:
本模块仅供各位朋友参考,讨论,以期能在本帖内产生更强更好的代码……谢谢。 |
评分
-
11
查看全部评分
-
|