ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 图片导出问题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-6 21:03 | 显示全部楼层
本帖已被收录到知识树中,索引项:Shape对象
本帖最后由 EJR 于 2012-2-6 21:04 编辑
liucqa 发表于 2012-2-6 20:23
你用office2003或者2010做录制宏,看代码。我的是2007录不到代码

估计应该是border.linestyle之类的

录制宏代码如下:
Sub Macro6()
    ActiveSheet.ChartObjects("图表 5").Activate
    ActiveChart.ChartArea.Select
    With Selection.Border
        .Weight = 1
        .LineStyle = 0
    End With

    Selection.Interior.ColorIndex = xlAutomatic
    Sheets("Sheet1").DrawingObjects("图表 5").RoundedCorners = False
    Sheets("Sheet1").DrawingObjects("图表 5").Shadow = False
End Sub
我估计是红色部分,但我不知道怎么加到我那个代码里面,还请指点!多谢了!

TA的精华主题

TA的得分主题

发表于 2012-2-6 21:11 | 显示全部楼层
我以前也遇到过,没有解决。

记号,学习!

祝大家元宵节快乐!{:soso_e159:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-6 21:17 | 显示全部楼层
本帖最后由 EJR 于 2012-2-6 21:19 编辑

Sub 从Excel工作表导出图片1()
      Dim Shp As Shape
      Dim FileName As String
     For Each Shp In Sheet1.Shapes
        If Shp.Type = msoPicture Then
             FileName = ThisWorkbook.Path & "\" & Shp.Name & ".gif"
              Shp.Copy
             Set chrobj = Sheet1.ChartObjects.Add(0, 0, Shp.Width, Shp.Height) '注意度量单位
            
             'ActiveSheet.ChartObjects("图表 5").Activate
             chrobj.Select
             With Selection.Border
                  .Weight = 1
                  .LineStyle = 0
             End With
            
             With chrobj.Chart
                .Paste
                  .Export FileName, "gif"
                 .Parent.Delete
             End With
         End If
      Next
End Sub
我这样加上了录制的代码,能运行。但问题依旧!请朋友帮忙!

TA的精华主题

TA的得分主题

发表于 2012-2-6 21:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
怎样去除导出图片的边框
http://club.excelhome.net/thread-614663-1-1.html

TA的精华主题

TA的得分主题

发表于 2012-2-6 21:42 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-6 21:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 EJR 于 2012-2-6 21:46 编辑
guzhen9315 发表于 2012-2-6 21:42
通过VBA插入图片后的图片边框如何取消?
http://club.excelhome.net/thread-661684-1-1.html


先不说这样太麻烦,但这样做是不可能的。

eee.jpg

TA的精华主题

TA的得分主题

发表于 2012-2-6 22:05 | 显示全部楼层
略作修改如下:

测试通过。
  1. Sub 导出图片()
  2.     Dim Shp As Shape
  3.     Dim FileName As String
  4.     For Each Shp In ActiveSheet.Shapes
  5.         If Shp.Type = msoPicture Then
  6.             FileName = ThisWorkbook.Path & "" & Shp.Name & ".gif"
  7.             Shp.Copy
  8.             With ActiveSheet.ChartObjects.Add(0, 0, Shp.Width, Shp.Height).Chart
  9.                 .ChartArea.Border.LineStyle = 0 '去掉边框
  10.                 .Paste
  11.                 .Export FileName, "gif"
  12.                 .Parent.Delete
  13.             End With
  14.         End If
  15.     Next
  16. End Sub
复制代码

点评

确认不是你的代码问题,好像是插入图片的时候,excel给加了1个像素的框  发表于 2012-2-7 00:12
你再把导出的图片插回到excel,再次导出,就会发现你的代码导出的图片横+1,纵+2像素。不过边框倒是白的  发表于 2012-2-6 23:41

TA的精华主题

TA的得分主题

发表于 2012-2-6 22:12 | 显示全部楼层
关键代码是:
.Chart.ChartArea.Border.LineStyle = 0

原始录制宏中的代码:
ActiveChart.ChartArea.Select
    With Selection.Border
        .Weight = 1
        .LineStyle = 0
    End With

应该简化为:
ActiveChart.ChartArea.Select
    With Selection.Border
        .Weight = 1
        .LineStyle = 0
    End With

省去红字部分为:
ActiveChart.ChartArea.Border.LineStyle = 0

TA的精华主题

TA的得分主题

发表于 2012-2-6 22:16 | 显示全部楼层
本帖最后由 fsc163198 于 2012-2-6 22:23 编辑

Sub 从Excel工作表导出图片1()
      Dim Shp As Shape
      Dim FileName As String
     For Each Shp In Sheet1.Shapes
        If Shp.Type = msoPicture Then
             FileName = ThisWorkbook.Path & "\" & Shp.Name & ".gif"
              Shp.Copy
             Set chrobj = Sheet1.ChartObjects.Add(0, 0, Shp.Width, Shp.Height)
             chrobj.Select
             With Selection.Border
                  .Weight = 1
                  .LineStyle = 0
                  .Color = 0
             End With
             With chrobj.Chart
                .Paste
                  .Export FileName, "gif"
                 .Parent.Delete
             End With
             Shp.Delete
             ActiveSheet.Pictures.Insert(FileName).Select
         End If
      Next
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-6 22:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 EJR 于 2012-2-6 22:21 编辑
fsc163198 发表于 2012-2-6 22:16
Sub 从Excel工作表导出图片1()
      Dim Shp As Shape
      Dim FileName As String


我试了您这个代码,仍然不行,还是有边框!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-17 02:54 , Processed in 0.025531 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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