Excel 2010 VBA 入门 105 将工作表数据批量导出为图片

本文介绍了如何在Excel中将数据区域导出为图片,通过CopyPicture、Paste和Export方法实现图表对象的图片导出。同时,讨论了Copy、Cut和Paste方法在Excel中的应用,以及PPT中利用Export方法导出图片的步骤,为数据安全展示提供了实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

示例    

代码

Copy. Cut和Paste方法

图表对象(Chart)的Export方法

利用PPT导出图片


示例    

为防止数据的更改或者盗用,将所选的数据区域导出为图片进行展示。

代码

    在Excel中,仅为图表(Chart)提供了一个导出图片的方法,因而使用该方法可以将指定的图片导出。创建一个空白的图表容器对象( ChartObject),将所需要导出的对象使用CopyPicture方法复制,依次执行图表对象子对象Chart的Paste(粘贴)和Export(导出为图片)方法,最后删除该图表对象即可。

Option Explicit

Sub 导出图片()
    Dim objCht As ChartObject
    
    '操作选中的区域
    With Selection
        '复制为图片
        .CopyPicture
        创建一个尺寸和区域大小相同的图表对象
        Set objCht = ActiveSheet.ChartObjects.Add(0, 0, .Width, .Height)
    End With
    
    '操作图表
    With objCht.Chart
        .Paste
        .Export ThisWorkbook.Path & "\图片.jpg"
        .Parent.Delete
    End With
End Sub

Copy. Cut和Paste方法

    在Excel中,几乎所有的对象都具有Copy(复制)、Cut(剪切)和Paste(粘贴)方法。执行Copy或者Cut方法后,可以将该对象复制或剪切到Office剪贴板,然后使用Paste方法可以将Office剪贴板中的内容粘贴至指定位置。
对于图像的复制,也可以使用CopyPicture方法,其语法为

Object.CopyPicture(Appearance,Format)

其中,Object为一个对象,可以为单元格区域、Shape、Chart等。
  参数Appearance为图表复制的方式,可以为xIPrinter(按打印效果复制)或者xIScreen(按当前显示的效果复制)。
  参数Format为图片的格式,可以为xIBitmap(位图,如BMP、JPG等)或者xIPicture(图元,如png、vrmf等)。
  本例中,由于需要对单元格进行图片的导出,若直接使用Copy方法,然后在图表中使用Paste,则Excel会将该区域作为数据源添加入图表中。为避免该错误,首先对需要进行图片导出的单元格执行CopyPicture方法强制复制成图片到剪贴板,然后执行图表对象的Paste方法,即可实现将图片复制到图表中,从而进行下一步操作。

图表对象(Chart)的Export方法

使用Chart对象的Export方法可以将图表导出为图片,并保存至指定的目录中,其语法

Chart.Export(Filename[,FilterName]

其中,Chart表示一个图表( Chart)对象。

参数Filename为文件的完整路径,包括路径、文件名及扩展名。
参数FilterName表示文件的类型,一般和扩展名相同。若不设置该参数,则文件保存类型以Filename中所设置的扩展名为准。当指定目录下已经存在同名文件时,使用该方法导出图片会覆盖原文件。

利用PPT导出图片

在PPT中,可以直接使用Export方法将图形导出为图片并存在指定的路径下,其语法为

Shape.Export PathName,Filter,ScaleWidth,ScaleHeight,ExportMode

其中,Shape为PPT中的一个图形对象。

  • 参数PathName表示输出文件的完整路径及名称。
  • 参数Filter为文件的类型,可以为0至5的整数,分别代表GIF、JPG、PNG、BMP、WMF和EMF格式的文件。
  • 参数ScaleWidth、ScaleHeight可省略,其为长整型表达式,表示图形的缩放。
  • 参数ExportMode为输出的模式。

    当使用该方法导出图片时,必须首先创建一个PPT程序对象,然后创建一个PPT文件并添加一张幻灯片。复制的图片需要粘贴在该幻灯片中,然后使用Export方法导出。其参考代码
如下:
 

Option Explicit

Public Sub 使用PPT导出图片()
    Dim pptApp As Object
    Dim pptObj As Object
    Dim pptSlide As Object
    Dim pptShape As Object
    
    Selection.CopyPicture
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptObj = pptApp.presentations.Add
    Set pptSlide = pptObj.slides.Add(1, 12)
    Set pptShape = pptSlide.Shapes.Paste
    pptShape.Export ThisWorkbook.Path & "\图片.jpg", 1
    
    pptObj.Saved = True
    pptObj.Close
    pptApp.Quit
    
End Sub

以前用Excel2003做了些宏,在网上还有不少粉丝,因一些功能在Excel2010中无法使用,故重新整理,欢迎指正; 本Excel中的宏在Excel2010中测试表现出色; 运行宏前,要保证EXCEL没有禁用宏。 Michael Ho QQ: 9900060 ----------------------- 本Excel有以下功能: 插入图片1 1.点击执行后,会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 2.宏会自动复制Sheet2到新工作簿,并插入你所选文件夹中的全部JPG图片到B列,对应的图片名自动填到C列; 3.图片的大小会自动适应Sheet2的B3单元格,因此可以在点击执行前调整Sheet2的B3单元格的大小来控制插入图片的大小。 -------- 插入图片2 1.点击执行后,会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 2.宏会自动复制Sheet3到新工作簿,并插入你所选文件夹中的全部JPG图片制作图册,对应的图片名自动填到图片下方; -------- 插入图片3 如果用户自己的Excel文件中有一列是型号,该宏可以插入指定文件夹里以型号命名的JPG图片到另一列; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+I (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏InsertPic3); 4.然后会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 5.在弹出的对话框中指定型号在第几列,图片要插入到第几列,以及从哪一行开始; 6.图片的大小会自动适应你设定的第一行要插入图片的单元格,因此提前调整那个单元格的大小可以控制插入图片的大小。 ------------- 删除活动工作表中所有图片 Ctrl+d 删除活动工作表里所有的JPG图片,(不一定是本工作簿中的工作表); 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+d (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏DelPic); ------------- 导出活动工作表中被选中的一张JPG图片 Ctrl+e 导出活动工作表中被选中的一张JPG图片,(不一定是本工作簿中的工作表); 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.请选中一张要导出图片; 4.在你的文件中按Ctrl+e (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏OutputOnePic); 5.在弹出的对话框中指定图片要保存的名字; 1.不管图片Excel中是否被缩放过,导出图片是按图片的原始尺寸进行保存。 2.在桌面上会自动新建一个"OutputPic"的文件夹,导出图片将会存在那个文夹里; 3.如果文件夹中已有相同名字的文件,则后面导出的文件会自动加上(v1), (v2), (v3)... ------------- 导出活动工作表中所有JPG图片 Ctrl+f 导出活动工作表中所有JPG图片,并且图片名自动使用指定列中的图片名; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+f (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏OutputAllPic); 4.在弹出的对话框中指定图片所在列,图片名所在的列; 1.不管图片Excel中是否被缩放过,导出图片是按图片的原始尺寸进行保存; 2.在桌面上会自动新建一个"OutputPic"的文件夹,所有导出图片将会存在那个文夹里; 3.如果文件夹中已有相同名字的文件,则后面导出的文件会自动加上(v1), (v2), (v3)... ---------------- 对指定文件夹中的JPG图片进行重命名 Ctrl+r 利用活动工作表中的所有图片的旧名与新名的对照,对指定文件夹中JPG图片进行重命名; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件中按Ctrl+r (或在你的文件中手动执行宏,然后选择本EXCEL文件中的宏RenamePic); 4.在弹出的对话框中指定图片旧名所在列和图片新名所在的列; 1.可以结合插入图片的宏,将所有图片的旧名输入到Excel中,再在另一列中填上新图片名,然后使用该宏。 2.如果顺利运行,会在原来那个文件夹下面新建一个叫“New”的子文件夹,所有重命好名的图片会自动放入子文件夹里; 3.如果文件夹中已有相同名字的文件,则后面的文件会覆盖原来的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值