除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www./cat4/507.html,VBA交流群273624828。
再来看个类模块的实例。用VBA插入图表往往要设计一大堆的参数,为了方面,这次我们设计一个类模块,每次要插入图表时调用该类模块,输入几个参数就可以了。
在这里一共设置了3个参数,“目标工作表”是放图表的地方,“数据区域”就是图表调用的数据区域,“图表类型”就是柱 形图、饼图之类的东西。
先插入一个类模块,命名为NewChart,然后编写“目标工作表”,“数据区域”,“图表类型”3个可写属性
Private ShtName, rng, cType Property Let 目标工作表(mysheetname As String) ShtName = mysheetname End Property Property Let 数据区域(myRng As Range) Set rng = myRng End Property Property Let 图表类型(myType As Integer) Select Case myType Case 0 cType = 1 Case 1 cType = -4102 Case 2 cType = -51 End Select End Property
可写属性用的是Property Let 属性名(参数)这种方式,传递进来的参数我们都要用声明的公共变量记录下来,以方便之后的使用。这里图表类型设了3个选项0,1,2,分别对应3个图表类型,这里不多介绍。
属性设置完了下面来设置创建图表方法。
Public Sub 创建图表() Dim cht On Error Resume Next For Each cht In Worksheets(ShtName).ChartObjects cht.Delete Next Set cht = Worksheets(ShtName).ChartObjects.Add(100, 30, 450, 250) With cht .Chart.ChartType = cType .Chart.SetSourceData rng .Chart.HasTitle = True .Chart.HasLegend = True End With End Sub
该方法中目标工作表、数据区域、图表类型都是调用之前设好的3个属性。
类模块设计好了下面看怎么使用类模块。插入一个模块,输入下列代码
Sub test() Dim myChart As New NewChart myChart.目标工作表 = "Sheet1" myChart.数据区域 = Sheet1.Range("B1:D5") myChart.图表类型 = 2 myChart.创建图表 End Sub
定义一个新的类模块NewChart,然后指定目标工作表、数据区域、图表类型3个属性,再调用创建图表方法,一个图表就创建成功了。
本节示例文件下载地址:http://pan.baidu.com/s/18NBSM。
|