作者crooket (别闹了各位)
看板Visual_Basic
标题[VBA ] Excel图表输出问题
时间Mon May 31 23:18:05 2010
各位高手你们好
小弟我现在要将excel图表输出成图片档放到网页上
但由於输出的档案太大(400多k),而且我必须写成自动化的输出图片
所以想请教各位有没有办法能直接缩小输出的图片到100k以下
以下是我目前的code
Option Explicit
Private Declare Function OpenClipboard Lib "User32" _
(ByVal hWnd As Long) As Long
Private Declare Function CloseClipboard Lib "User32" () As Long
Private Declare Function GetClipboardData Lib "User32" _
(ByVal uFormat As Long) As Long
Private Declare Function CopyEnhMetaFileA Lib "Gdi32" _
(ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
Private Declare Function DeleteEnhMetaFile Lib "Gdi32" _
(ByVal hdc As Long) As Long
Sub ExportChartToGif()
Dim fname As String
Dim Chartobj As ChartObject
'
For Each Chartobj In Sheet1.ChartObjects
With Sheet1
' 在档案原路径储存gif档
fname = "C:\Documents and Settings\Calvin Hsu\My Documents\我的网站" & "\" & Chartobj.Name & ".png"
'复制图表
Chartobj.CopyPicture
'复制图片至暂存档
OpenClipboard 0
'GetClipboardData:从系统剪贴板中读取数据
'Private Const CF_ENHMETAFILE = 14
'CF_ENHMETAFILE:A handle to an enhanced metafile
'将图像数据通过enhanced meta file文件拷贝到应用程序中
DeleteEnhMetaFile CopyEnhMetaFileA(GetClipboardData(14), fname)
CloseClipboard
End With
Application.ScreenUpdating = True
Next
End Sub
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.137.67.5