ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 把选定区域输出为图片,怎么把四周的边框去掉?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-6-27 16:34 | 显示全部楼层 |阅读模式
已经有了一段代码,可以实现的功能如下:
  • 把C3:P39区域,保存为BMP图片(区域里的两个箭头也要一起在图片中);
  • 把图片输出到D盘;
  • 文件名为D5里面的内容。

现在已可以实现这个功能,但是输出的图片,四周有一圈边框,怎么也去不掉。
如果把图片放在白色背景的PPT下面,效果十分明显,而且右侧的边框比较粗(如下图)。
已经加了把图表边框去掉的语句,也测试过把边框改成白色,但是还是不行。
电脑窗口和Excel背景都是浅绿色的(和下图边框的颜色一样)。
QQ截图20130626001953.png

希望大家能把帮忙查看一下,帮忙更新下代码,由于输出的图片要放在PPT里,十分希望能把这边框去掉!
图片输出.rar (19.9 KB, 下载次数: 65)
先谢谢大家了~

TA的精华主题

TA的得分主题

发表于 2013-6-27 16:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我测试没有边框,试试看
  1. Public Sub out_auto()
  2.     Dim h, w
  3.     w = Range("c5:h20").Width: h = Range("c5:h20").Height
  4.     Range("c5:h20").CopyPicture
  5.     With ActiveSheet.ChartObjects.Add(0, 0, w + 5, h + 5).Chart
  6.         .Paste
  7.         .Export "c:\test.JPG"
  8.         .Parent.Delete
  9.     End With
  10. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2013-6-27 16:58 | 显示全部楼层
针对附件的代码
  1. Public Sub out_auto()
  2.     Dim h, w
  3.     w = Range("c3:p39").Width: h = Range("c3:p39").Height
  4.     Range("c3:p39").CopyPicture
  5.     With ActiveSheet.ChartObjects.Add(0, 0, w + 5, h + 5).Chart
  6.         .Paste
  7.         .Export "c:\test.JPG"
  8.         .Parent.Delete
  9.     End With
  10. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-6-27 23:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 hai0625 于 2013-6-27 23:43 编辑
yangyangzhifeng 发表于 2013-6-27 16:58
针对附件的代码

非常感谢,您的代码又精简很多。但是还是有我说的问题:由于我电脑窗口颜色设置的是浅绿色,所以输出图片以后,在图片右侧和下侧,有绿色的窄边儿,右侧的比下侧的少宽一些。
如果把窗口颜色设置成白色,则看不出边框的效果。
01.png
在第七行加入如下代码,去掉Chart的边框,效果如下
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Line.Visible = msoFalse

02.png
左侧的图片,还是可以看到边框,右侧的则完全和幻灯片融为一体。
附件为PPT的对比文件: 图片输出2.rar (223.56 KB, 下载次数: 50)

后来又录制了一段宏,把Chart的背景填充去掉了,已经可以实现预期效果,代码如下:


  1. Public Sub out_auto()
  2.     Dim h, w
  3.     w = Range("c3:p39").Width: h = Range("c3:p39").Height
  4.     Range("c3:p39").CopyPicture
  5.     With ActiveSheet.ChartObjects.Add(0, 0, w + 5, h + 5).Chart
  6.         .Paste
  7.         ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Line.Visible = msoFalse '去掉Chart边框
  8.         ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Fill.Visible = msoFalse '去掉Chart填充
  9.         .Export "c:\test.JPG"
  10.         .Parent.Delete
  11.     End With
  12. End Sub
复制代码
非常感谢您的帮助!

不知道我添加的这两行代码是否还可以再精简一下~



TA的精华主题

TA的得分主题

发表于 2015-6-11 16:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-6-14 12:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢, 帮我解决问题了.
可以把任何表格类转换为图片了.

希望了解: 如何把打印 到图片, 请赐教!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 13:49 , Processed in 0.040606 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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