ExcelVBA常用技巧shape圖形Chart圖表對象_第1頁
ExcelVBA常用技巧shape圖形Chart圖表對象_第2頁
ExcelVBA常用技巧shape圖形Chart圖表對象_第3頁
ExcelVBA常用技巧shape圖形Chart圖表對象_第4頁
ExcelVBA常用技巧shape圖形Chart圖表對象_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄第4章 Shape(圖形)、Chart(圖表)對象技巧1 在工作表中添加圖形如果需要在工作表中添加圖形對象,可以使用AddShape方法,如下面的代碼所示。#001 Sub AddShape()#002 Dim myShape As Shape#003 On Error Resume Next#004 Sheet1.Shapes(myShape).Delete#005 Set myShape = Sheet1.Shapes.AddShape(msoShapeRectangle, 40, 120, 280, 30)#006 With myShape#007 .Name = myShape#0

2、08 #009 .Text = 單擊將選擇Sheet2!#010 With .Font#011 .Name = 華文行楷#012 .FontStyle = 常規(guī)#013 .Size = 22#014 .ColorIndex = 7#015 End With#016 End With#017 With .TextFrame #018 .HorizontalAlignment =-4108#019 .VerticalAlignment = -4108#020 End With#021 .Placement = 3#022 End With#023 #024 #025 With .Line#026

3、.Weight = 1#027 .DashStyle = msoLineSolid#028 .Style = msoLineSingle#029 .Transparency = 0#030 .Visible = msoTrue#031 .ForeColor.SchemeColor = 40#032 .BackColor.RGB = RGB(255, 255, 255)#033 End With#034 With .Fill#035 .Transparency = 0#036 .Visible = msoTrue#037 .ForeColor.SchemeColor = 41#038 .OneC

4、olorGradient 1#039 End With#040 End With#041 Sheet1.Range(A1).Select#042 Sheet1.Hyperlinks.Add Anchor:=myShape, Address:=, _#043 SubAddress:=Sheet2!A1, ScreenTip:=選擇Sheet2!#044 Set myShape = Nothing#045 End Sub代碼解析:AddShape過程在工作表中添加一個矩形并設置其外觀等屬性。第2行代碼聲明變量myShape的對象類型。第3、4行代碼刪除可能存在的名稱為“myShape”的圖形對象。

5、第5行代碼使用AddShape方法在工作表中添加一個矩形。當該方法應用于Shapes對象時,返回一個Shape對象,該對象代表工作表中的新自選圖形,語法如下:expression.AddShape(Type, Left, Top, Width, Height)參數expression是必需的,返回一個Shapes對象。參數Type是必需的,指定要創(chuàng)建的自選圖形的類型。參數Left和Top是必需的,以磅為單位給出自選圖形邊框左上角的位置。參數Width和Height是必需的,以磅為單位給出自選圖形邊框的寬度和高度。第7行代碼將新建圖形命名為“myShape”,向Shapes集合添加新的圖形時,將

6、對新添加的圖形賦以默認的名稱,若要為圖形指定更有意義的名稱,可指定其Name屬性。第8行到第16行代碼為矩形添加文字,并設定其格式。其中第8行代碼使用TextFrame 屬性和Characters方法返回該矩形的字符區(qū)域。應用于Shape對象的TextFrame 屬性返回一個TextFrame對象,該對象包含指定圖形對象的對齊和定位屬性;Characters方法返回一個Characters對象,該對象代表某個圖形的文本框中的字符區(qū)域,語法如下:expression.Characters(Start, Length)參數expression是必需的,返回一個指定文本框內Characters對象的

7、表達式。參數Start是可選的,表示將要返回的第一個字符,如果此參數設置為 1 或被忽略,則Characters方法會返回以第一個字符為起始字符的字符區(qū)域。參數Length是可選的,表示要返回的字符個數。如果此參數被忽略,則Characters方法會返回該字符串的剩余部分(由Start參數指定的字符以后的所有字符)。第9行代碼為矩形添加文字,應用于Characters對象的Text屬性返回或設置對象的文本,為可讀寫的String類型。第10行到第15行代碼設置矩形中文字的屬性,應用于Characters對象Font屬性返回一個Font對象,該對象代表指定對象的字體屬性(字體名稱、字體大小、字體

8、顏色等),第11行代碼設置字體名稱,第12行代碼設置字體樣式,第13行代碼設置字體大小,第14行代碼顏色。第17行到第20行代碼設定矩形中文字的對齊方式。應用于TextFrame對象的HorizontalAlignment屬性返回或設置指定對象的水平對齊方式,可為表格 531所示的XlHAlign常量之一。常量值描述xlHAlignCenter-4108居中xlHAlignCenterAcrossSelection7靠左xlHAlignDistributed-4117分散對齊xlHAlignFill5分散對齊xlHAlignGeneral1靠左xlHAlignJustify-4130兩端對齊x

9、lHAlignLeft-4131靠左xlHAlignRight-4152靠右表格 Error! No text of specified style in document.1HorizontalAlignment屬性的XlHAlign常量應用于TextFrame對象的VerticalAlignment屬性返回或設置指定對象的垂直對齊方式,可為表格 532所示的XlHAlign常量之一。常量值描述xlVAlignCenter-4108居中xlVAlignJustify-4130兩端對齊xlVAlignBottom-4107靠下xlVAlignDistributed-4117分散對齊xlVAli

10、gnTop-4160靠上表格 Error! No text of specified style in document.2VerticalAlignment屬性的XlHAlign常量第21行代碼設置矩形大小和位置不隨單元格而變,應用于Shape對象的Placement屬性返回或設置對象與所在的單元格之間的附屬關系,可為表格 533所示的XlPlacement常量之一。常量值描述xlFreeFloating3大小、位置均固定xlMove2大小固定、位置隨單元格而變xlMoveAndSize1大小、位置隨單元格而變表格 Error! No text of specified style in d

11、ocument.3XlPlacement常量第24行到第32行代碼設置矩形的邊框線條格式,應用于ShapeRange集合的Line屬性返回一個LineFormat 對象,該對象包含指定圖形的線條格式屬性。其中第26行代碼設置矩形線條粗細,第27行代碼設置矩形線條的虛線樣式,第28行代碼設置矩形填充的透明度,第29行代碼設置矩形為可見,第30行代碼設置矩形的前景色,第31行代碼設置矩形填充背景的顏色。第33行到第38行代碼設置矩形的內部填充格式,應用于ShapeRange集合的Fill屬性返回FillFormat對象,該對象包含指定的圖表或圖形的填充格式屬性。其中第35行代碼設置矩形內部的透明度

12、,第36行代碼設置矩形內部為可見,第37行代碼設置矩形內部的前景色,第38行代碼將矩形內部指定填充設為單色漸變,應用于 FillFormat對象的OneColorGradient方法將指定填充設為單色漸變,語法如下:expression.OneColorGradient(Style, Variant, Degree)其中參數Style是必需的,底紋樣式,可為表格 545所示的MsoGradientStyle常量之一。常量值描述msoGradientDiagonalDown4斜下msoGradientDiagonalUp3斜上msoGradientFromCenter7無msoGradientF

13、romCorner5角部幅射msoGradientFromTitle6中心幅射msoGradientHorizontal1水平msoGradientMixed-2無msoGradientVertical2垂直表格 Error! No text of specified style in document.4MsoGradientStyle常量參數Variant是必需的,漸變變量。取值范圍為 1 到 4 之間,分別與“填充效果”對話框中“漸變”選項卡的四個漸變變量相對應。如果GradientStyle 設為 msoGradientFromCenter,則Variant參數只能設為 1 或 2。參

14、數Degree是必需的,灰度。取值范圍為 0.0(表示最深)到 1.0(表示最淺)之間。第42、43行代碼為矩形對象添加超鏈接,應用于Hyperlinks對象的Add方法向指定的區(qū)域或圖形添加超鏈接,語法如下:expression.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)參數expression是必需的,返回一個Hyperlinks對象。參數Anchor是必需的,超鏈接的位置??蔀镽ange對象或Shape對象。參數Address是必需的,超鏈接的地址。參數SubAddress是必需的,超鏈接的子地址。參數Screen

15、Tip是可選的,當鼠標指針停留在超鏈接上時所顯示的屏幕提示。參數TextToDisplay是可選的,要顯示的超鏈接的文本。運行AddShape過程結果如圖 531所示。圖 Error! No text of specified style in document.1在工作表中添加圖形技巧2 導出工作表中的圖片有時需要將工作表中的圖形對象保存為單獨的圖像文件,可以使用Export方法將工作表中的圖片以文件形式導出,如下面的代碼所示。#001 Sub ExportShp()#002 Dim Shp As Shape#003 Dim FileName As String#004 #005 If Sh

16、p.Type = msoPicture Then#006 FileName = ThisWorkbook.Path & & Shp.Name & .gif#007 #008 With Sheet1.ChartObjects.Add(0, 0, Shp.Width + 28, Shp.Height + 30).Chart#009 .Paste#010 .Export FileName, gif#011 #012 End With#013 End If#014 Next#015 End Sub代碼解析:ExportShp過程將Sheet1工作表的所有圖片以文件形式導出到同一目錄中。第4行代碼使用F

17、or Each.Next 語句遍歷Sheet1工作表中的所有圖形。第5行代碼判斷圖形的類型是否為圖片,應用于Shape對象的Type屬性返回或設置圖形類型,可以為表格 545所示的MsoShapeType常量之一。常量值說明msoShapeTypeMixed-2混合型圖形msoAutoShape1自選圖形msoCallout2沒有邊框線的標注msoChart3圖表msoComment4批注msoFreeform5任意多邊形msoGroup6圖形組合msoFormControl8窗體控件msoLine9線條msoLinkedOLEObject10鏈接式或內嵌OLE對象msoLinkedPictu

18、re11剪貼畫或圖片msoOLEControlObject12ActiveX 控件msoPicture13圖片msoTextEffect15藝術字msoTextBox17文本框msoDiagram21組織結構圖或其他圖示表格 Error! No text of specified style in document.5MsoShapeType常量第6行代碼使用字符串變量FileName記錄需導出圖形的路徑和名稱。第7行代碼復制圖形,應用于Shape對象的Copy方法將對象復制到剪貼板。第8行代碼使用Add方法在工作表中添加一個圖表,應用于ChartObjects對象的Add 方法創(chuàng)建新的嵌入圖

19、表,語法如下:expression.Add(Left, Top, Width, Height)參數expression是必需的,返回一個ChartObjects對象。參數Left、參數Top是必需的,以磅為單位給出新對象的初始坐標,該坐標是相對于工作表上單元格A1的左上角或圖表的左上角的坐標。參數Width、參數Height是必需的,以磅為單位給出新對象的初始大小。第9行代碼使用Paste方法將圖形粘貼到新的嵌入圖表中,應用于Chart對象的Paste方法將剪貼板中的圖表數據粘貼到指定的圖表中,語法如下:expression.Paste(Type)參數expression是必需的,返回一個Ch

20、art對象。參數Type是可選的的,如果剪貼板中有圖表,本參數指定要粘貼的圖表信息??蔀橐韵耎lPasteType常量之一:xlFormats、xlFormulas或xlAll。默認值為xlAll,如果剪貼板中是數據不是圖表,則不能使用本參數。第10行代碼使用Export方法將圖表導出到同一目錄中,應用于Chart對象的Export方法以圖形格式導出圖表,語法如下:expression.Export(Filename, FilterName, Interactive)其中參數Filename是必需的,被導出的文件的名稱。第10行代碼刪除新建的圖表。因為Chart對象是不能使用Delete方法直

21、接刪除的,應先使用Parent屬性返回指定對象的父對象,然后使用Delete方法刪除。技巧3 在工作表中添加藝術字在工作表中插入藝術字,可以使用AddTextEffect方法,如下面的代碼所示。#001 Sub TextEffect()#002 Dim myShape As Shape#003 On Error Resume Next#004 Sheet1.Shapes(myShape).Delete#005 Set myShape = Sheet1.Shapes.AddTextEffect _#006 (PresetTextEffect:=msoTextEffect15, _#007 Tex

22、t:=我愛 Excel Home, FontName:=宋體, FontSize:=36, _#008 FontBold:=msoFalse, FontItalic:=msoFalse, _#009 Left:=100, Top:=100)#010 With myShape#011 .Name = myShape#012 With .Fill#013 .Solid#014 .ForeColor.SchemeColor = 55#015 .Transparency = 0#016 End With#017 With .Line#018 .Weight = 1.5#019 .DashStyle =

23、 msoLineSolid#020 .Style = msoLineSingle#021 .Transparency = 0#022 .ForeColor.SchemeColor = 12#023 .BackColor.RGB = RGB(255, 255, 255)#024 End With#025 End With#026 Set myShape = Nothing#027 End Sub代碼解析:TextEffect過程在工作表中插入藝術字并設置其格式。第3、4行代碼刪除工作表中可能存在的藝術字,以免重復添加。第5行到第9行代碼使用AddTextEffect方法在工作表中插入藝術字,Ad

24、dTextEffect方法創(chuàng)建藝術字對象。返回一個Shape對象,該對象代表新建的藝術字對象,語法如下:expression.AddTextEffect(PresetTextEffect, Text, FontName, FontSize, FontBold, FontItalic, Left, Top)參數expression是必需的,返回一個Shapes對象。參數PresetTextEffect是必需的,藝術字預置文本效果,可為MsoPresetTextEffect 常量之一,等同于在工作表中插入藝術字時的樣式選項卡,如圖 552所示。圖 Error! No text of specifi

25、ed style in document.2藝術字樣式參數Text是必需的,藝術字對象中的文字。參數FontName是必需的,藝術字對象中所用的字體名稱。參數FontSize是必需的,以磅為單位給出藝術字對象中所用的字體大小。參數FontBold是必需的,在藝術字中要加粗的字體。參數FontItalic是必需的,在藝術字中要傾斜的字體。參數Left和參數Top是必需的,相對于文檔的左上角、頂部,以磅為單位給出藝術字對象邊框左上角的位置。第11行代碼將藝術字對象重命名為“myShape”。第12行到第16行代碼設置藝術字對象的填充格式。其中第13行代碼將填充格式設置為均一的顏色,應用于FillF

26、ormat 對象的Solid方法將指定的填充格式設置為均一的顏色,可用本方法將帶有漸進色、紋理、圖案或背景的填充格式轉換為單色的填充格式。第14行代碼設置填充的顏色。第15行代碼設置填充的透明度。第17行到第24行代碼設置藝術字對象的線條格式屬性。其中第18行代碼設置線條粗細,第19行代碼設置線條虛線樣式,第20行代碼設置線條區(qū)域的樣式,第21行代碼設置線條的透明度,第22行代碼設置前景色,第23行代碼設置填充背景的顏色。運行TextEffect過程工作表中如圖 553所示。圖 Error! No text of specified style in document.3工作表中插入藝術字技巧

27、4 遍歷工作表中的圖形工作表中的多個圖形,如果使用系統(tǒng)缺省名稱,如“文本框1”、“文本框2”這樣前面是固定的字符串,后面是序號的,可以使用For.Next 語句遍歷圖形,如下面的代碼所示。#001 Sub ErgShapes_1()#002 Dim i As Integer#003 For i = 1 To 4#004 Sheet1.Shapes(文本框 & i).TextFrame.Characters.Text = #005 Next#006 End Sub代碼解析:ErgShapes_1過程清除工作表中四個圖形文本框中的文字。第3行到第5行代碼,使用Shapes屬性在工作表上的三個圖形文

28、本框中循環(huán)。Shapes屬性返回Shapes對象,代表工作表或圖形工作表上的所有圖形,可以使用Shapes(index)返回單個的Shape對象,其中index是圖形的名稱或索引號。返回單個的Shape對象后使用TextFrame 屬性和Characters方法清除文本框中的字符,關于Shape對象的TextFrame 屬性和Characters方法請參閱技巧1 。如果圖形的名稱沒有規(guī)律,可以使用For Each.Next 語句循環(huán)遍歷所有圖形,根據Type屬性返回的圖形類型進行相應的操作,如下面的代碼所示。#001 Sub ErgShapes_2()#002 Dim myShape As S

29、hape#003 Dim i As Integer#004 i = 1#006 If myShape.Type = msoTextBox Then#007 myShape.TextFrame.Characters.Text = 這是第 & i & 個文本框#008 i = i + 1#009 End If#010 Next#011 End Sub代碼解析:ErgShapes_2過程在工作表中的所有圖形文本框中寫入文本。第5行代碼使用For Each.Next 語句循環(huán)遍歷工作表中所有的圖形對象。第6行到第9行代碼如果圖形對象是文本框則在文本框中寫入文本。其中第6行代碼根據Type屬性判斷圖形對

30、象是否為文本框,應用于Shape對象的Type屬性返回或設置圖形類型,MsoShapeType類型,請參閱表格 Error! No text of specified style in document.5 。第7行代碼根據返回的Type屬性值在所有的文本框內寫入相應的文本,如圖 564所示。圖 Error! No text of specified style in document.4遍歷所有的文本框技巧5 移動、旋轉圖片工作表中的圖片可以移動、旋轉,如下面的代碼所示。#001 Sub MoveShape()#002 Dim i As Long#003 Dim j As Long#004

31、With Sheet1.Shapes(1)#005 For i = 1 To 3000 Step 5#006 .Top = Sin(i * (3.1416 / 180) * 100 + 100#007 .Left = Cos(i * (3.1416 / 180) * 100 + 100#008 .Fill.ForeColor.RGB = i * 100#009 For j = 1 To 10#010 .IncrementRotation -2#011 DoEvents#012 Next#013 Next#014 End With#015 End Sub代碼解析:MoveShape過程移動、旋轉

32、工作表中的圖片并不斷改變其填充的前景色。第6行代碼設置圖片的Top屬性值,應用于Shape對象的Top屬性設置圖形的頂端到工作表頂端的距離。在循環(huán)的過程中使用Sin函數將Top屬性值設置為一個圓形的弧度值。Sin函數返回指定參數的正弦值,語法如下:Sin(number)參數number表示一個以弧度為單位的角。Sin函數取一角度為參數值,并返回角的對邊長度除以斜邊長度的比值,將角度除以180后即能角度轉換為弧度。第7行代碼設置圖片的Left屬性值,應用于Shape對象的Left屬性設置圖形從左邊界至 A 列左邊界(在工作表中)或圖表區(qū)左邊界(在圖表工作表中)的距離。在循環(huán)的過程中使用Cos函數

33、將Left屬性值設置為一個圓形的弧度值。Cos函數返回指定一個角的余弦值,語法如下:Cos(number)參數number表示一個以弧度為單位的角。Cos函數的number參數為一個角,并返回直角三角形兩邊的比值,該比值為角的鄰邊長度除以斜邊長度之商,將角度除以180后即能角度轉換為弧度。第8行代碼設置圖片填充的前景色隨著循環(huán)的過程不斷的變化。使用Fill屬性返回一個FillFormat對象,FillFormat對象代表圖形的填充格式,其ForeColor 屬性設置對象填充的前景色。第9行到第11行代碼在圖形移動的過程中使用IncrementRotation方法設置圖形繞 z 軸的轉角,Inc

34、rementRotation方法以指定的度數為增量,更改指定的圖形繞 z 軸的轉角,語法如下:expression.IncrementRotation(Increment)參數expression是必需的,返回一個Shape對象。參數Increment是必需的,以度為單位指定圖形在水平方向的旋轉量,正值使圖形按順時針方向旋轉,負值使圖形按逆時針方向旋轉。其中第11行是關鍵的代碼,使用DoEvents函數轉讓控制權,否則達不到預計的視覺效果。運行MoveShape過程,工作表的圖形在自身進行逆時針方向旋轉的同時沿著一個圓形的弧度進行移動,并不斷改變其填充的顏色。技巧6 工作表中自動插入圖片在日常

35、工作中經常需要在工作表中插入大量圖片,比如在如圖 585所示的工作表中需要根據A列的名稱在C列插入保存在同一目錄中的相應的圖片,如果使用手工插入不僅非常繁瑣且極易出錯,而使用VBA代碼可以很好的完成操作。圖 Error! No text of specified style in document.5需插入圖片的工作表示例代碼如下:#001 Sub insertPic()#002 Dim i As Integer#003 Dim FilPath As String#004 Dim rng As Range#005 Dim s As String#006 With Sheet1#007 For

36、i = 3 To .Range(a65536).End(xlUp).Row#008 FilPath = ThisWorkbook.Path & & .Cells(i, 1).Text & .jpg#009 If Dir(FilPath) Then#010 .Pictures.Insert(FilPath).Select#011 Set rng = .Cells(i, 3)#012 With Selection#013 .Top = rng.Top + 1#014 .Left = rng.Left + 1#015 .Width = rng.Width - 1#016 .Height = rng.

37、Height - 1#017 End With#018 Else#019 s = s & Chr(10) & .Cells(i, 1).Text#020 End If#021 Next#022 .Cells(3, 1).Select#023 End With#024 If s Then#025 MsgBox s & Chr(10) & 沒有照片!#026 End If#027 End Sub代碼解析:insertPic過程使用Insert方法在工作表中插入圖片。第7行代碼開始For.Next循環(huán),循環(huán)的終值由工作表中A列單元格的行數所決定。第8行代碼字符串變量FilPath保存A列名稱單元格所

38、對應的圖片文件的路徑和文件名,本例中圖片文件的文件名應和A列中的名稱一致。第9行到第11行代碼使用Dir函數在同一文件夾中查找與A列單元格中的名稱相對應的圖片文件,如果對應的圖片文件存在則使用Insert方法將圖片插入到工作表中,并將C列的單元格賦給變量rng。Dir函數返回一個String,用以表示一個文件名、目錄名或文件夾名稱,它必須與指定的模式或文件屬性、或磁盤卷標相匹配。如果已沒有合乎條件的文件,則Dir函數會返回一個零長度字符串 ()。第12行到第17行代碼,當圖片片插入到工作表時其實是插入到活動單元格的,此時需設置圖片的Top屬性和Left屬性將圖片移動到C列所對應的單元格中,并設

39、置其Width屬性和Height屬性使其適應所在單元格的大小。第18、19行代碼如果在同一文件夾中沒有與A列單元格對應的圖片文件,則使用字符串變量s保存沒有圖片文件的名稱。第24行到第26行代碼如果字符串變量s不等于空白說明文件夾中缺少圖片文件,使用消息框提示。運行insertPic過程工作表如圖 586所示。圖 Error! No text of specified style in document.6插入圖片后的工作表如果文件夾中缺少對應的圖片文件,則會進行提示,如圖 587所示。圖 Error! No text of specified style in document.7缺少圖片文

40、件提示技巧7 固定工作表中圖形的位置工作表中插入的圖片,一般都是固定的尺寸和固定的單元格區(qū)域中的,但在實際使用中可能因一些人為的因素導致圖片位置偏移或尺寸變化,此時可以使用VBA代碼進行調整,如下面的代碼所示。#001 Sub ShapeAddress()#002 Dim rng As Range#003 Set rng = Sheet1.Range(B4:E22)#004 With Sheet1.Shapes(Picture 1)#005 .Rotation = 0#006 .Select#007 With Selection#008 .Top = rng(1).Top + 1#009 .L

41、eft = rng(1).Left + 1#010 #011 #012 End With#013 End With#014 Range(A1).Select#015 End Sub代碼解析:ShapeAddress過程調整指定圖形在工作表中的位置。第3行代碼變量rng保存工作表中插入圖片的單元格區(qū)域。第5行代碼設置圖片的轉角,應用于Shape對象Rotation屬性以度為單位返回或設置圖形的轉角,設置為正值向右偏轉,設置為負值向左偏轉,設置為零圖片則保持90度垂直。第7行到第12行代碼設置圖片的Top屬性和Left屬性將圖片移動到變量rng所保存的單元格區(qū)域中,并設置其Width屬性和Heig

42、ht屬性使其適應所在單元格區(qū)域的大小。第14行代碼選擇A1單元格,不然圖片會處于選中狀態(tài)。經過以上設置,工作表中的圖片“Picture 1”不管處于什么狀態(tài)都可以一鍵恢復其原來的大小、位置。技巧8 使用VBA自動生成圖表在實際工作中我們常用圖表來表現數據間的某種相對關系,一般采用手工插入的方式,而使用VBA代碼可以在工作表中自動生成圖表,如下面的示例代碼。#001 Sub ChartAdd()#002 Dim myRange As Range#003 Dim myChart As ChartObject#004 Dim R As Integer#005 With Sheet1#006 #007

43、 R = .Range(A65536).End(xlUp).Row#008 Set myRange = .Range(A & 1 & :B & R)#009 Set myChart = .ChartObjects.Add(120, 40, 400, 250)#010 #011 .ChartType = xlColumnClustered#012 .SetSourceData Source:=myRange, PlotBy:=xlColumns#013 .ApplyDataLabels ShowValue:=True#014 .HasTitle = True#015 .ChartTitle.Te

44、xt = 圖表制作示例#016 #017 .Size = 20#018 .ColorIndex = 3#019 .Name = 華文新魏#020 End With#021 #022 .ColorIndex = 8#023 .PatternColorIndex = 1#024 .Pattern = xlSolid#025 End With#026 #027 .ColorIndex = 35#028 .PatternColorIndex = 1#029 .Pattern = xlSolid#030 End With#031 #032 #033 .Size = 10#034 .ColorIndex

45、= 5#035 End With#036 End With#037 End With#038 Set myRange = Nothing#039 Set myChart = Nothing#040 End Sub代碼解析:ChartAdd過程在工作表中自動生成圖表,圖表類型為簇狀柱形圖。第6行代碼使用Delete方法刪除工作表中已經存在的圖表,而ChartObjects方法返回代表工作表中單個嵌入圖表(ChartObject對象)或所有嵌入圖表的集合(ChartObjects對象)的對象,語法如下:expression.ChartObjects(Index)其中參數Index是可選的,指定圖表

46、的名稱或號碼。該參數可以是數組,用于指定多個圖表,因為示例中只有一個圖表,所以無需指定其Index參數。第8行代碼指定圖表的數據源。第9行代碼使用Add方法創(chuàng)建一個新圖表,應用于ChartObjects對象的Add方法創(chuàng)建新的嵌入圖表,語法如下:expression.Add(Left, Top, Width, Height)參數Left、Top是必需的,以磅為單位給出新對象的初始坐標,該坐標是相對于工作表上單元格A1的左上角或圖表的左上角的坐標。參數Width、Height是必需,以磅為單位給出新對象的初始大小。第10行代碼使用Chart屬性返回新創(chuàng)建的圖表,應用于ChartObject對象的

47、Chart屬性返回一個Chart對象,該對象代表指定對象所包含的圖表。第11行代碼指定新創(chuàng)建圖表的圖表類型,應用于Chart對象的ChartType屬性返回或設置圖表的類型,可以為XlChartType常量之一,具體請參閱VBA幫助。本例中設置為xlColumnClustered即圖表類型為簇狀柱形圖。第12行代碼指定圖表的數據源和繪圖方式,應用于Chart對象的SetSourceData方法為指定圖表設置源數據區(qū)域,語法如下:expression.SetSourceData(Source, PlotBy)參數expression是必需的,該表達式返回一個Chart對象。參數Source是可選

48、的,源數據的區(qū)域。參數PlotBy是可選的,指定數據繪制方式,可為xlColumns(系列產生在列)或xlRows(系列產生在行)。第13行代碼使用ApplyDataLabels方法使圖表顯示數據標簽和數據點的值,應用于Chart對象的ApplyDataLabels方法將數據標簽應用于圖表中的某一數據點、某一數據系列或所有數據系列,語法如下:expression.ApplyDataLabels(Type, LegendKey, AutoText, HasLeaderLines, ShowSeriesName, ShowCategoryName, ShowValue, ShowPercentag

49、e, ShowBubbleSize, Separator)參數expression是必需的,該表達式返回一個Chart對象。參數Type是可選的,要應用的數據標簽的類型,可為表格 606所列的XlDataLabelsType 常量之一。常量值描述xlDataLabelsShowBubbleSizes6無xlDataLabelsShowLabelAndPercent5占總數的百分比及數據點所屬的分類。僅用于餅圖或圓環(huán)圖。xlDataLabelsShowPercent3占總數的百分比。僅用于餅圖或圓環(huán)圖。xlDataLabelsShowLabel4數據點所屬的分類。xlDataLabelsShow

50、None-4142無數據標簽。xlDataLabelsShowValue2數據點的值,若未指定本參數,默認使用此設置。表格 Error! No text of specified style in document.6XlDataLabelsType 常量參數LegendKey是可選的,如果該值為True,則顯示數據點旁的圖例項標示。默認值為False。參數AutoText是可選的,如果對象根據內容自動生成正確的文字,則該值為True。參數HasLeaderLines是可選的,如果數據系列具有引導線,則該值為True。參數ShowSeriesName是可選的,數據標簽的系列名稱。參數ShowCategoryName是可選的,數據標簽的分類名稱。參數ShowValue是可選的,數據標簽的值。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論