在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
发表评论