在vba窗体中,Image图像控件可以显示图片。
Image 图像控件可以显示的图片类型有以下几种
-
*.bmp
- *.cur
-
*.gif
-
*.ico
-
*.jpg
- *.wmf
Image图像控件不仅可以显示图片,还可以修剪、缩放图片。
要在Image图像控件中显示图片,需要设置Image图像控件的Picture属性,同时需要使用LoadPicture函数将图片加载到Picture属性中。
LoadPicture函数的语法如下:
LoadPicture([filename], [size], [colordepth],[x,y])
LoadPicture函数将返回一个IPictureDisp接口。
以下vba代码将本地C盘的abc.jpg图片加载到窗体名称为frm1的Image1图像控件中:
Sub QQ1722187970()
frm1.Image1.Picture = LoadPicture("c:\abc.jpg")
End Sub
如果要将excel工作表中的创建的图表加载到Image1图像控件中,首先需要将excel工作表中的创建的图表导出为独立的图片文件,然后再用LoadPicture函数加载。
将excel工作表中的创建的图表导出为独立的图片文件,需要用到Chart对象的Export方法。
如下图所示,以下vba代码将基于第一个工作表的a1:b4单元格区域创建的柱形图加载到Image1图像控件中:
Sub QQ1722187970()
Dim oChart As Chart
Dim oWK As Worksheet
Dim oChartObject As ChartObject
Set oWK = Excel.Worksheets(1)
Set oChartObject = oWK.ChartObjects.Add(100, 0, 500, 300)
Set oChart = oChartObject.Chart
'基于工作表的A1:B4单元格创建柱形图
With oChart
.ChartWizard Source:=oWK.Range("a1:b4"), gallery:=xlColumnClustered, PlotBy:=xlColumns, HasLegend:=False, _
Title:="Average Age By Year"
.SeriesCollection("Year").Delete
With .SeriesCollection(1)
.XValues = oWK.Range("a2:a4")
End With
'导出图表
sExportFileName = Excel.ThisWorkbook.Path & "\Average Age By Year.jpg"
MsgBox .Export(sExportFileName)
End With
'加载图表
frm1.Image1.Picture = LoadPicture(sExportFileName)
'删除创建的图表
oWK.Shapes(1).Delete
End Sub



发表评论