ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: joforn

[原创] Excel保存单元格区域为图片(支持13种文件格式、背景透明、半透明、矢量图)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2023-2-21 04:29 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:媒体交互应用
好的,谢谢!

TA的精华主题

TA的得分主题

发表于 2023-3-13 16:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢大师分享

TA的精华主题

TA的得分主题

发表于 2023-3-24 20:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-3-29 10:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
区域为图片(支持1

TA的精华主题

TA的得分主题

发表于 2023-4-9 15:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢大佬,收藏学习

TA的精华主题

TA的得分主题

发表于 2023-4-9 15:41 | 显示全部楼层
' 将指定范围保存为多种格式的图片,并输出结果到控制台
Sub SaveRangeToPictures()
    Dim PathName As String ' 文件夹路径
    Dim FileNames() As String ' 要保存的文件类型数组
    Dim FileName As String ' 文件名
    Dim i As Long ' 循环计数器
   
    ' 设置文件夹路径
    PathName = "T:\测试目录" ' 修改为您要保存图像的文件夹路径
    PathName = ThisWorkbook.Path & Application.PathSeparator
   
    ' 输出开始测试信息到控制台
    Debug.Print "=============开始测试文件输出==================="
   
    ' 保存矢量图像、无透明图像和有背景透明度的图像
    FileNames = Split("WMF,EMF,PDF,XPS,BMP,PNG,ICO,JPG,TIF,TGA,SVG,GIF", ",")
    For i = 0 To UBound(FileNames)
        ' 保存不透明图像
        FileName = PathName & "SaveRangeTo" & FileNames(i) & "(无透明)." & FileNames(i)
        Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName), "成功", "失败") & "]:保存" & FileNames(i) & "文件""" & FileName & """"
        
        ' 添加不透明图像到压缩包中
        FileName = PathName & "Pictures.ZIP>无透明\SaveRangeTo" & FileNames(i) & "." & FileNames(i)
        Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName), "成功", "失败") & "]:添加" & FileNames(i) & "图片到""Pictures.ZIP"""
        
        ' 保存背景全透明图像
        FileName = PathName & "SaveRangeTo" & FileNames(i) & "(背景全透)." & FileNames(i)
        Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName, -1), "成功", "失败") & "]:保存" & FileNames(i) & "文件""" & FileName & """"
        
        ' 添加背景全透明图像到压缩包中
        FileName = PathName & "Pictures.ZIP>透明\背景全透\SaveRangeTo" & FileNames(i) & "." & FileNames(i)
        Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName, -1), "成功", "失败") & "]:添加" & FileNames(i) & "背景全透明图片到""Pictures.ZIP"""
        
        ' 保存背景半透明和整体半透明图像
        If InStr("PNG,ICO,TGA,SVG", FileNames(i)) > 0 Then
            ' 保存背景半透明图像
            FileName = PathName & "SaveRangeTo" & FileNames(i) & "(背景半透)." & FileNames(i)
            Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName, -1, 128), "成功", "失败") & "]:保存" & FileNames(i) & "文件""" & FileName & """"
            
            ' 添加背景半透明图像到压缩包中
            FileName = PathName & "Pictures.ZIP>透明\背景半透\SaveRangeTo" & FileNames(i) & "." & FileNames(i)
            Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName, -1, 128), "成功", "失败") & "]:添加" & FileNames(i) & "背景半透明图片到""Pictures.ZIP"""
            
            ' 保存整体半透明图像
            FileName = PathName & "SaveRangeTo" & FileNames(i) & "(整体半透)." & FileNames(i)
            Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName, -2, 128), "成功", "失败") & "]:保存" & FileNames(i) & "文件""" & FileName & """"

        ' 添加整体半透明图像到压缩包中
        FileName = PathName & "Pictures.ZIP>透明\整体半透\SaveRangeTo" & FileNames(i) & "." & FileNames(i)
        Debug.Print "[" & IIf(SaveRangeToPictrue(Range("L1:R21"), FileName, -2, 128), "成功", "失败") & "]:添加" & FileNames(i) & "整体半透明图片到""Pictures.ZIP"""
    End If
Next

' 输出结束测试信息到控制台
Debug.Print "=============  测试结束  ==================="
End Sub

' 将指定的 Office 图标保存为 PNG 和 ICO 文件,并输出结果到控制台
Sub SaveImageMsoToFiles()
Dim PathName As String ' 文件夹路径
Dim IconNames() As String ' 要保存的图标名称数组
Dim FileName As String ' 文件名
Dim i As Long ' 循环计数器

On Error Resume Next

' 设置文件夹路径
PathName = ThisWorkbook.Path & Application.PathSeparator
PathName = "T:\测试目录" ' 修改为您要保存图标的文件夹路径

' 保存不同 Office 图标
IconNames = Split("About,AccessRecycleBin,BlogHomePage,ClearGrid,Folder", ",")
For i = 0 To UBound(IconNames)
    ' 设置文件名和路径
    FileName = PathName & IconNames(i)
   
    ' 获取特定 Office 图标并将其保存为 PNG 格式
    With CommandBars.GetImageMso(IconNames(i), 32, 32)
        Debug.Print "[" & IIf(SaveBitmapToFile(.Handle, FileName & ".PNG", &HFFFFFF), "成功", "失败") & "]:保存""" & IconNames(i) & """图标到文件""" & FileName & ".PNG""文件"
        
        ' 将同一图标保存为 ICO 格式
        Debug.Print "[" & IIf(SaveBitmapToFile(.Handle, FileName & ".ICO", &HFFFFFF, , 32), "成功", "失败") & "]:保存""" & IconNames(i) & """图标到文件""" & FileName & ".ICO""文件"
    End With
Next
End Sub

TA的精华主题

TA的得分主题

发表于 2023-4-12 00:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢大神,下载来学习一下。

TA的精华主题

TA的得分主题

发表于 2023-4-12 08:44 | 显示全部楼层
感谢大神的作品,期待更完美的作品问世!

TA的精华主题

TA的得分主题

发表于 2023-4-15 10:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-4-15 10:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢大佬分享!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-29 02:48 , Processed in 0.035337 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表