Sou*_*ter 8 icons vba office-2007
我从Microsoft Office 2007中发现了很多漂亮的图标.你有没有想过提取并使用VBA将所有图标保存为PNG文件?
以下代码是用于从ImageMSO获取图像的代码.
Application.CommandBars.GetImageMso([name], [width], [height])
Run Code Online (Sandbox Code Playgroud)
我可以将所有内容显示为PictureBox控件并将excel文件另存为网页.但是,每个图标质量都很低.
此外,我尝试使用以下代码创建用于导出为Bitmap对象的C#Excel加载项项目.但我发现它无法导出为半透明的PNG.
stdole.IPictureDisp p = Application.CommandBars.GetImageMso(fileName, size, size);
Bitmap b = Bitmap.FromHbitmap((IntPtr)p.Handle, (IntPtr)p.hPal);
Run Code Online (Sandbox Code Playgroud)
PS.我想将所有图标保存为PNG格式,因为我需要使用它的半透明功能.它允许我在大多数背景颜色上使用所有图标而不是白色背景.
我在Excel开发中经常使用ImageMso.偶然发现了这篇文章后,我更进了一步,将一个软件包放在一起,直观地搜索,提取并保存Microsoft Excel中的图标作为文件,或者复制并粘贴(带有alpha通道透明度)到另一个应用程序.我还从各种来源编制了一个包含8,899个不同ImageMso名称的列表.我希望其他人能发现这个有用.
Microsoft Office图标(ImageMSO)图库和提取
所有 PNG 文件都可以在这里找到这些都是 PNG 格式。很好的编程!(这里还提供了一个不错的 ZIP 存档)ZIP 存档包含所有 17 个 Excel 图标。
当您使用 GetImageMso 方法时,您最终会得到该对象的 IPicture 接口。IPicture 界面访问适合保存到原始格式文件的图标 - .ICO、.WMF 或 .BMP 不支持 PNG 格式。以下链接解释了为什么这不能直接实现:
http://msdn.microsoft.com/en-us/library/aa434604.aspx(msoGetImageMso 方法) http://msdn.microsoft.com/en-us/library/ms680761%28VS.85%29.aspx (IPicture接口) http://msdn.microsoft.com/en-us/library/ms694504%28VS.85%29.aspx (另存为文件方法)
但是,使用更复杂的方法将产生您想要的结果:
| 归档时间: |
|
| 查看次数: |
18097 次 |
| 最近记录: |