制作Excel图表是一个美工活,如果有很好的审美,那么可能随心所欲地制作出漂亮的图表,以很优雅地表达数据的内涵。
这是一个精细的工作,通常会被忽略掉。
本文将介绍一个单一的功能,如何设置一个自定义的图片为图表背景。

如上图所示,设置了一个简单的背景图片,其并没有任何意义。
同样,我们可以设置如下图一个小黄人为背景图片,结果也没任何意义,如果设置为本公司的一些相关图片就显得有那么点意思了。

接下来,就是如何实现这样的效果过程。
首先,明白一点,实现这样的过程是通过一个"方法"来实现的。这个方法名称为UserPicture
简单翻译就是"用户图片"。
此方法语法和参数如下图所示:

想要运用UserPicture方法还要用到一个对象,一个叫ChartFormat的对象。
ChartFormat对象即属性如下图所示:

要想获得ChartFormat对象,要用到一个Fill属性。通过Fill属性就可以返回一个ChartFormat对象。这样就可以利用ChartFormat对象的UserPicture属性设置背景图片了。
Fill属性如下图所示:

其实,这样表达有点不可接受,很多对象属性来回绕,感觉就像走迷宫。为什么不直接一点呢,可能中西文化的差异决定的,所以,编程是逻辑思想的一种字符数据表达,由于底层逻辑被设定以后,我们也不得不去按照这样的思想去考虑问题。

代码
Private Sub SetUserPicture()
Dim cObj As Object, xPic As String
With Application.FileDialog(msoFileDialogFilePicker)
If .Show = -1 Then
.Filters.Clear
.Filters.Add "图片文件(*.jpg;*.gif;*.jpeg)", "*.jpg;*.gif;*.jpeg"
.AllowMultiSelect = False
.Title = "选择背景图片"
xPic = .SelectedItems(1)
End If
End With
If VBA.Len(xPic) = 0 Then Exit Sub
Set cObj = ActiveSheet.ChartObjects(1).Chart
With cObj.ChartArea.Fill
.UserPicture picturefile:=xPic
.Visible = True
End With
Set cObj = Nothing
End Sub
通过如上代码即可实现更换当前工作表中第一个图例的背景图片,如果要修改更多图例背景,就要对图例进行选择确认。
欢迎收藏、关注
---END---