|
本帖最后由 raulerini 于 2011-1-19 20:14 编辑
思路:先利用CopyPicture方法,将区域复制为图片。
然后粘贴为图片。再插入一个chart对象,利用chart对象的Export方法,将复制的图片单独存到本地硬盘上。
参考代码如下:
- Sub 截取图片()
- Dim myPic As Shape, pic As Shape '定义变量
- Dim rng As Range
- For Each pic In ActiveSheet.Shapes
- If pic.Type = msoPicture Then pic.Delete '遍历工作表,删除图像格式的对象
- Next
- '通过application的inputbox方法来选择单元格区域
- Set rng = Application.InputBox("请选择需要截取的屏幕范围:", "截取范围", Type:=8)
- rng.CopyPicture xlScreen, xlBitmap '复制区域为图像
- ActiveSheet.Paste Destination:=ActiveSheet.Range("A1") '粘贴复制的图像到当前的工作表中
- Set myPic = ActiveSheet.Shapes(1) '将复制的图像赋值给变量myPic
- '插入一个图表,图表位于A1左上角(坐标0,0),长宽等于复制的图像的长宽
- With ActiveSheet.ChartObjects.Add(0, 0, myPic.Width, myPic.Height).Chart
- myPic.Copy '复制图像
- .Paste '粘贴至图表中
- '利用application的另存为对话框获取存储的路径,默认文件名为myExcelPic,格式为JPG格式
- SaveName = Application.GetSaveAsFilename(InitialFileName:="MyExcelPic", filefilter:="图片文件(*.JPG),*.JPG")
- If SaveName <> "False" Then .Export SaveName, "JPG" '不允许按"取消"按钮,否则将不会执行输出为图像的动作
- .Parent.Delete '删除图表的父对象————图表区对象(也即是删除整个图表)
- End With
- myPic.Delete '临时复制的图像也一并删除
- Set myPic = Nothing '销毁对象变量
- Set rng = Nothing
- End Sub
复制代码
Book1.rar
(10.23 KB, 下载次数: 78)
|
|