Excel-VBA-處理圖形圖表大全剖析_第1頁
Excel-VBA-處理圖形圖表大全剖析_第2頁
Excel-VBA-處理圖形圖表大全剖析_第3頁
Excel-VBA-處理圖形圖表大全剖析_第4頁
Excel-VBA-處理圖形圖表大全剖析_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、VBA圖表剖析一、圖表各元素在VBA中的表達方式1、圖表區VBA名稱:ChartArea2、繪圖區VBA名稱:PlotArea調整繪圖區的大小以及在圖表中的位置,指定繪圖區的Top、Left、Height和Width屬性。3、數據系列VBA名稱:Series指定給定系列語法:ChatObject.SeriesCollection(Index),其中Index是數字范圍,從1開始,最大值是圖表中系列的數量或系列名稱的數量。4、圖表軸VBA名稱:Axis指定給定軸的簡單語法:ChatObject.Axes(Type),其中Type指定軸的Excel VBA常量。輔助軸語法:ChatObject.A

2、xes(Type,AxisGroup)。5、網格線VBA名稱:HasMajorGridlines和HasMinorGridlines根據需要可以選擇顯示或者不顯示主要網格線或次要網格線。若顯示網格線,可以設置線條的圖案(顏色、線寬、線條樣式等等)。6、數據標簽VBA名稱:DataLabels和DataLabel(1)圖表中所有系列的所有點顯示特定類型的數據標簽或不顯示數據標簽:ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowNone(2)特定系列顯示數值(Y)作為數據標簽:With ActiveChart.SeriesCollection(“

3、Xdata”) .HasDataLabels=True .ApplyDataLabels Type:=xlDataLabelsShowValueEnd With(3)特定的點在它的數據標簽中顯示文字With ActiveChart.SeriesCollection(“Xdata”).Points(1) .HasDataLabels=True .DataLabel.Text=”MyLabel”End With(4)將公式放置在某個系列上的某特定點的數據標簽中(在公式中需使用RC樣式)With ActiveChart.SeriesCollection(“Xdata”).point(1) .HasD

4、ataLabels=True .DataLabel.Text=”Sheet1.R1C1”End With7、圖表標題、圖例和數據表VBA名稱:ChartTitle、HasLegend和HasDataTable可以用VBA指定圖表標題和圖例的位置、文字和文字格式。8、趨勢線和誤差線VBA名稱:Trendlines和ErrorBar二、圖表類型Excel標準圖表類型圖表類型描述Excel VBA常量柱形圖簇狀柱形圖3D簇狀柱形圖堆積柱形圖3D堆積柱形圖百分比堆積柱形圖3D百分比堆積柱形圖3D柱形圖xlColumnClusteredxl3DColumnClusteredxlColumnStacked

5、xl3DColumnStackedxlColumnStacked100xl3DColumnStacked100xl3DColumn條形圖簇狀條形圖3D簇狀條形圖堆積條形圖3D堆積條形圖百分比堆積條形圖3D百分比堆積條形圖xlBarClusteredxl3DBarClusteredxlBarStackedxl3DBarStackedxlBarStacked100xl3DBarStacked100折線圖折線圖數據點折線圖堆積折線圖堆積數據點折線圖百分比堆積折線圖百分比堆積數據點折線圖3D折線圖xlLinexlLineMarkersxlLineStackedxlLineMarkersStackedx

6、lLineStacked100xlLineMarkersstacked100xl3DLine餅圖餅圖分離型餅圖3D餅圖分離型3D餅圖復合餅圖復合條餅圖xlPiexlPieExplodedxl3DPiexl3DPieExplodedxlPieOfPiexlBarOfPieXY(散點)圖散點圖平滑線散點圖無數據點平滑線散點圖折線散點圖無數據點折線散點圖xlXYScatterxlXYScatterSmoothxlXYScatterSmoothNoMarkersxlXYScatterLinesxlXYScatterLinesNoMarkers氣泡圖氣泡圖3D氣泡圖xlBubblexlBubble3DE

7、ffect面積圖面積圖3D面積圖堆積面積圖3D堆積面積圖百分比堆積面積圖3D百分比堆積面積圖xlAreaxl3DAreaxlAreaStackedxl3DAreaStackedxlAreaStacked100xl3DAreaStacked100圓環圖圓環圖分離型圓環圖xlDoughnutxlDoughnutExploded雷達圖雷達圖數據點雷達圖填充雷達圖xlRadarxlRadarMarkersxlRadarFilled曲面圖3D曲面圖曲面圖(俯視)3D曲面圖(框架圖)曲面圖(俯視框架圖)xlSurfacexlSurfaceTopViewxlSurfaceWireframexlSurface

8、WireframeTopView股價圖盤高-盤低-收盤圖成交量-盤高-盤低-收盤圖開盤-盤高-盤低-收盤圖成交量-開盤-盤高-盤低-收盤圖xlStockHLCxlStockVHLCxlStockOHLCxlStockVOHLC圓柱圖柱形圓柱圖條形圓柱圖堆積柱形圓柱圖堆積條形圓柱圖百分比堆積柱形圓柱圖百分比堆積條形圓柱圖3D柱形圓柱圖xlCylinderColClusteredxlCylinderBarColClusteredxlCylinderColStackedxlCylinderBarStackedxlCylinderColStacked100xlCylinderBarStacked100

9、xlCylinderCol圓錐圖柱形圓錐圖條形圓錐圖堆積柱形圓錐圖堆積條形圓錐圖百分比堆積柱形圓錐圖百分比堆積條形圓錐圖3D柱形圓錐圖xlConeColClusteredxlConeBarClusteredxlConeColStackedxlConeBarStackedxlConeColStacked100xlConeBarStacked100xlConeCol棱錐圖柱形棱錐圖條形棱錐圖堆積柱形棱錐圖堆積條形棱錐圖百分比堆積柱形棱錐圖百分比堆積條形棱錐圖3D柱形棱錐圖xlPyramidColClusteredxlPyramidBarClusteredxlPyramidColStackedxlP

10、yramidBarStackedxlPyramidColStacked100xlPyramidBarStacked100xlPyramidColvba圖表常用命令ActiveSheet.UsedRange.Rows.Count 獲取工作表的行數(注:考慮向前兼容性)Cells.Item(5,"C") 引單元格 C5Cells.Item(5,3) 引單元格 C5Application.WorksheetFunction.IsNumber("A1") 使用工作表函數檢查 A1單元格中的數據是否為數字Range("A:A").Find(Ap

11、plication.WorksheetFunction.Max(Range("A:A").Activate 激活單元格區域 A 列中最大值的單元格Cells(8,8).FormulaArray="=SUM(R2C-1:R-1C-1*R2C:R-1C)" 在單元格中輸入數組公式。注意必須使用 R1C1 樣式的表達式ActiveSheet.ChartObjects.Count 獲取當前工作表中圖表的個數ActiveSheet.ChartObjects("Chart1").Select 選中當前工作表中圖表 Chart1ActiveShee

12、t.ChartObjects("Chart1").Activate 選中當前圖表區域ActiveChart.ChartArea.Select 選中當前圖表區域WorkSheets("Sheet1").ChartObjects("Chart2").Chart.ChartArea.Interior.ColorIndex=2 更改工作表中圖表的圖表區的背景顏色Sheets("Chart2").ChartArea.Interior.ColorIndex=2 更改圖表工作表中圖表區的顏色Charts.Add 添加新的圖表工作

13、表ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:D5"),PlotBy:=xlColumns 指定圖表數據源并按列排列ActiveChart.Location Where:=xlLocationAsNewSheet 新圖表作為新圖表工作表ActiveChart.PlotArea.Interior.ColorIndex=xlNone 將繪圖區顏色變為白色WorkSheets("Sheet1").ChartObjects(1).Chart.Export FileN

14、ame:="C:MyChart.gif",FilterName:="GIF" 將圖表 1 導出到 C 盤上并命名為MyChart.gif ActiveSheet.ChartObjects.Delete 刪除工作表上所有的 ChartObject對象ActiveWorkbook.Charts.Delete 刪除當前工作簿中所有的圖表工作表·Excel中的VBA常量和編碼值所代表的標準圖表類型圖表類型描述Excel VBA常量 編碼值(注:下面按此順序排列)柱形圖簇狀柱形圖 xlColumnClustered 51   

15、0;   3D簇狀柱形圖xl3DColumnClustered54       堆積柱形圖xlColumnStacked 52       3D堆積柱形圖xl3DColumnStacked 55       百分比堆積柱形圖 xlColumnStacked10053       3D百分比堆積柱形圖 xl3DColumnStacked100 56       3D柱形圖xl3DColum

16、n   -4100條形圖 簇狀條形圖xlBarClustered 57       3D簇狀條形圖 xl3DBarClustered 60        堆積條形圖  xlBarStacked  58       3D堆積條形圖 xl3DBarStacked 61       百分比堆積條形圖 xlBarStacked100 59   &

17、#160;   3D百分比堆積條形圖 xl3DBarStacked100 62折線圖 折線圖 xlLine 4       數據點折線圖 xlLineMarkers 65       堆積折線圖 xlLineStacked 63       堆積數據點折線圖 xlLineMarkersStacked 66       百分比堆積折線圖 xlLineStacked100 64      

18、百分比堆積數據點折線圖 xlLineMarkersstacked100 67       3D折線圖 xl3DLine  -4101餅圖 餅圖 xlPie  5       分離型餅圖 xlPieExploded  69       3D餅圖 xl3DPie  -4102       分離型3D餅圖 xl3DPieExploded 70  

19、0;    復合餅圖 xlPieOfPie 68       復合條餅圖 xlBarOfPie 71XY(散點)圖 散點圖 xlXYScatter   -4169       平滑線散點圖 xlXYScatterSmooth 72       無數據點平滑線散點圖 xlXYScatterSmoothNoMarkers 73       折線散點圖 xlXYScatterLines 74 

20、      無數據點折線散點圖 xlXYScatterLinesNoMarkers 75氣泡圖 氣泡圖 xlBubble 15       3D氣泡圖 xlBubble3DEffect 87面積圖 面積圖 xlArea 1       3D面積圖 xl3DArea    -4098       堆積面積圖 xlAreaStacked 76       3D堆積面積圖  

21、0;xl3DAreaStacked 78       百分比堆積面積圖   xlAreaStacked100   77       3D百分比堆積面積圖 xl3DAreaStacked100   79圓環圖 圓環圖   xlDoughnut    -4120       分離型圓環圖   xlDoughnutExploded   

22、; 80雷達圖 雷達圖 xlRadar   -4151       數據點雷達圖 xlRadarMarkers 81       填充雷達圖 xlRadarFilled   82曲面圖   3D曲面圖 xlSurface 83       曲面圖(俯視)   xlSurfaceTopView   85       3D曲面圖(框

23、架圖) xlSurfaceWireframe 84       曲面圖(俯視框架圖)   xlSurfaceWireframeTopView 86股價圖 盤高-盤低-收盤圖 xlStockHLC   88       成交量-盤高-盤低-收盤圖 xlStockVHLC 90       開盤-盤高-盤低-收盤圖 xlStockOHLC 89       成交量-開盤-盤高-盤低-收盤圖 xlSto

24、ckVOHLC 91圓柱圖   柱形圓柱圖 xlCylinderColClustered 92       條形圓柱圖 xlCylinderBarClustered 95       堆積柱形圓柱圖 xlCylinderColStacked 93       堆積條形圓柱圖 xlCylinderBarStacked 96       百分比堆積柱形圓柱圖 xlCylinderColStacked100 94 

25、;      百分比堆積條形圓柱圖 xlCylinderBarStacked100 97       3D柱形圓柱圖 xlCylinderCol 98圓錐圖 柱形圓錐圖 xlConeColClustered 99       條形圓錐圖 xlConeBarClustered 102       堆積柱形圓錐圖 xlConeColStacked 100       堆積條形圓錐圖 xlConeBarStack

26、ed 103       百分比堆積柱形圓錐圖 xlConeColStacked100 101       百分比堆積條形圓錐圖 xlConeBarStacked100 104         3D柱形圓錐圖 xlConeCol 105棱錐圖 柱形棱錐圖 xlPyramidColClustered 106       條形棱錐圖 xlPyramidBarClustered 109    

27、   堆積柱形棱錐圖    xlPyramidColStacked   107       堆積條形棱錐圖    xlPyramidBarStacked   110       百分比堆積柱形棱錐圖 xlPyramidColStacked100 108       百分比堆積條形棱錐圖   xlPyramidBarStacked

28、100 111       3D柱形棱錐圖   xlPyramidCol   112·利用以上參數,可用VBA寫出批量產生Excel圖表的程序。代碼如下:Private Sub cmdCompareSales_Click()Dim iRows, iChartType, iChartTypeRows As IntegerDim iTemp As IntegerDim sChartTitle, sCategoryTitle, sValueTitle As StringDim sChartName As Str

29、ingDim lArrayChartType(73) As Long, sArrayChartConst(73) As String, sArrayChartExplain(73) As StringFor iTemp = 0 To 72    lArrayChartType(iTemp) = Sheets("Sheet2").Cells(iTemp + 1, 1).Value    sArrayChartConst(iTemp) = Sheets("Sheet2").Cells(iTemp + 1, 3).Val

30、ue    sArrayChartExplain(iTemp) = Sheets("Sheet2").Cells(iTemp + 1, 2).ValueNext iTempSheets("Sheet1").ActivatesChartTitle = "銷售量比較圖"sCategoryTitle = "Category標題"sValueTitle = "Value標題"iRows = Sheets("sheet1").UsedRange.Rows.Count

31、On Error Resume NextSheets("sheet1").ChartObjects.DeleteFor iChartType = 0 To 72 Step 1    Charts.Add    ActiveChart.ChartType = lArrayChartType(iChartType)    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A2:M" & CStr(iRows

32、), PlotBy:=xlRows    ActiveChart.Location where:=xlLocationAutomatic, Name:="Sheet1"    With ActiveChart        .HasTitle = True        .ChartTitle.Characters.Text = sChartTitle & sArrayChartConst(iChartTyp

33、e) & sArrayChartExplain(iChartType)'        .ChartTitle.Characters.Text = sChartTitle & "xl3DArea"        .Axes(xlCategory, xlPrimary).HasTitle = False    '    .Axes(xlCategory, xlPrimary).AxisT

34、itle.Text = sCategoryTitle        .Axes(xlValue, xlPrimary).HasTitle = False    '    .Axes(xlValue, xlPrimary).AxisTitle.Text = sValueTitle    End With    sChartName = Mid(ActiveChart.Name, 8, 6)    ActiveSheet.Shape

35、s(sChartName).Left = Range("B" & Str(18 * (iChartType + 1).Left    ActiveSheet.Shapes(sChartName).Top = Range("B" & Str(18 * (iChartType + 1).Top    ActiveChart.Export ThisWorkbook.Path & "" & Format(Now(), "yymmddhhmm") &am

36、p; sArrayChartConst(iChartType) & ".gif", "gif"    Sheets("sheet1").ChartObjects(sChartName).Delete    Next iChartTypeEnd Sub注意樓上的參數存于Sheet2的1至3列中。VBA-批量調整excel圖表格式-線條粗細Excel 畫圖時默認的線條和標記比較大,寫論文時使用起來經常要把線條和標記調小才好看。如果圖表比較多,圖里的系列也比較多的話,一條一條的設置起來會很麻煩

37、,這里給出了一個宏,使用方法是選中圖表后運行宏即可。Sub zoom()'' zoom 宏'' ActiveSheet.ChartObjects("圖表 1").Activate '1可以改為循環整數Dim i As IntegerFor i = 1 To ActiveChart.SeriesCollection.Count ActiveChart.SeriesCollection(i).Select Selection.MarkerSize = 3 '設置標記大小為3 With Selection.Format.Line .

38、Visible = msoTrue .Weight = 1.25 '設置線條粗細為1.25 End WithNextEnd Sub可以根據自己的需求更改標記的大小和線條的粗細。當然如果需要對所有圖表做這種更改,可以找出圖表個數,對ActiveSheet.ChartObjects("圖表 i").Activate 進行外圍循環即可。Shape(圖形)、Chart(圖表)對象在工作表中添加圖形如果需要在工作表中添加圖形對象,可以使用AddShape方法,如下面的代碼所示。#001 Sub AddShape()#002 Dim myShape As Shape#003 O

39、n 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"#008 With .TextFrame.Characters#009 .Text = "單擊將選擇Sheet2!"#010 With .Font#011 .Name = "華文行楷&q

40、uot;#012 .FontStyle = "常規"#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 myShape.Select#024 With Selection.ShapeRange#025 With .Line#026 .Wei

41、ght = 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 .OneColor

42、Gradient 1, 4, 0.23#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過程在工作表中添加一個矩形并設置其外觀等屬性。第

43、2行代碼聲明變量myShape的對象類型。第3、4行代碼刪除可能存在的名稱為“myShape”的圖形對象。第5行代碼使用AddShape方法在工作表中添加一個矩形。當該方法應用于Shapes對象時,返回一個Shape對象,該對象代表工作表中的新自選圖形,語法如下:expression.AddShape(Type, Left, Top, Width, Height)參數expression是必需的,返回一個Shapes對象。參數Type是必需的,指定要創建的自選圖形的類型。參數Left和Top是必需的,以磅為單位給出自選圖形邊框左上角的位置。參數Width和Height是必需的,以磅為單位給出自

44、選圖形邊框的寬度和高度。第7行代碼將新建圖形命名為“myShape”,向Shapes集合添加新的圖形時,將對新添加的圖形賦以默認的名稱,若要為圖形指定更有意義的名稱,可指定其Name屬性。第8行到第16行代碼為矩形添加文字,并設定其格式。其中第8行代碼使用TextFrame 屬性和Characters方法返回該矩形的字符區域。應用于Shape對象的TextFrame 屬性返回一個TextFrame對象,該對象包含指定圖形對象的對齊和定位屬性;Characters方法返回一個Characters對象,該對象代表某個圖形的文本框中的字符區域,語法如下:expression.Characters(S

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

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

47、nFill5分散對齊xlHAlignGeneral1靠左xlHAlignJustify-4130兩端對齊xlHAlignLeft-4131靠左xlHAlignRight-4152靠右表格 11HorizontalAlignment屬性的XlHAlign常量應用于TextFrame對象的VerticalAlignment屬性返回或設置指定對象的垂直對齊方式,可為表格 532所示的XlHAlign常量之一。常量值描述xlVAlignCenter-4108居中xlVAlignJustify-4130兩端對齊xlVAlignBottom-4107靠下xlVAlignDistributed-4117分散

48、對齊xlVAlignTop-4160靠上表格 12VerticalAlignment屬性的XlHAlign常量第21行代碼設置矩形大小和位置不隨單元格而變,應用于Shape對象的Placement屬性返回或設置對象與所在的單元格之間的附屬關系,可為表格 533所示的XlPlacement常量之一。常量值描述xlFreeFloating3大小、位置均固定xlMove2大小固定、位置隨單元格而變xlMoveAndSize1大小、位置隨單元格而變表格 13XlPlacement常量第24行到第32行代碼設置矩形的邊框線條格式,應用于ShapeRange集合的Line屬性返回一個LineFormat

49、對象,該對象包含指定圖形的線條格式屬性。其中第26行代碼設置矩形線條粗細,第27行代碼設置矩形線條的虛線樣式,第28行代碼設置矩形填充的透明度,第29行代碼設置矩形為可見,第30行代碼設置矩形的前景色,第31行代碼設置矩形填充背景的顏色。第33行到第38行代碼設置矩形的內部填充格式,應用于ShapeRange集合的Fill屬性返回FillFormat對象,該對象包含指定的圖表或圖形的填充格式屬性。其中第35行代碼設置矩形內部的透明度,第36行代碼設置矩形內部為可見,第37行代碼設置矩形內部的前景色,第38行代碼將矩形內部指定填充設為單色漸變,應用于 FillFormat對象的OneColorG

50、radient方法將指定填充設為單色漸變,語法如下:expression.OneColorGradient(Style, Variant, Degree)其中參數Style是必需的,底紋樣式,可為表格 541所示的MsoGradientStyle常量之一。常量值描述msoGradientDiagonalDown4斜下msoGradientDiagonalUp3斜上msoGradientFromCenter7無msoGradientFromCorner5角部幅射msoGradientFromTitle6中心幅射msoGradientHorizontal1水平msoGradientMixed-2無

51、msoGradientVertical2垂直表格 14MsoGradientStyle常量參數Variant是必需的,漸變變量。取值范圍為 1 到 4 之間,分別與“填充效果”對話框中“漸變”選項卡的四個漸變變量相對應。如果GradientStyle 設為 msoGradientFromCenter,則Variant參數只能設為 1 或 2。參數Degree是必需的,灰度。取值范圍為 0.0(表示最深)到 1.0(表示最淺)之間。第42、43行代碼為矩形對象添加超鏈接,應用于Hyperlinks對象的Add方法向指定的區域或圖形添加超鏈接,語法如下:expression.Add(Anchor,

52、 Address, SubAddress, ScreenTip, TextToDisplay)參數expression是必需的,返回一個Hyperlinks對象。參數Anchor是必需的,超鏈接的位置。可為Range對象或Shape對象。參數Address是必需的,超鏈接的地址。參數SubAddress是必需的,超鏈接的子地址。參數ScreenTip是可選的,當鼠標指針停留在超鏈接上時所顯示的屏幕提示。參數TextToDisplay是可選的,要顯示的超鏈接的文本。運行AddShape過程結果如圖 531所示。圖 11在工作表中添加圖形技巧1 導出工作表中的圖片有時需要將工作表中的圖形對象保存為

53、單獨的圖像文件,可以使用Export方法將工作表中的圖片以文件形式導出,如下面的代碼所示。#001 Sub ExportShp()#002 Dim Shp As Shape#003 Dim FileName As String#004 For Each Shp In Sheet1.Shapes#005 If Shp.Type = msoPicture Then#006 FileName = ThisWorkbook.Path & "" & Shp.Name & ".gif"#007 Shp.Copy#008 With Sheet1

54、.ChartObjects.Add(0, 0, Shp.Width + 28, Shp.Height + 30).Chart#009 .Paste#010 .Export FileName, "gif"#011 .Parent.Delete#012 End With#013 End If#014 Next#015 End Sub代碼解析:ExportShp過程將Sheet1工作表的所有圖片以文件形式導出到同一目錄中。第4行代碼使用For Each.Next 語句遍歷Sheet1工作表中的所有圖形。第5行代碼判斷圖形的類型是否為圖片,應用于Shape對象的Type屬性返回或設

55、置圖形類型,可以為表格 541所示的MsoShapeType常量之一。常量值說明msoShapeTypeMixed-2混合型圖形msoAutoShape1自選圖形msoCallout2沒有邊框線的標注msoChart3圖表msoComment4批注msoFreeform5任意多邊形msoGroup6圖形組合msoFormControl8窗體控件msoLine9線條msoLinkedOLEObject10鏈接式或內嵌OLE對象msoLinkedPicture11剪貼畫或圖片msoOLEControlObject12ActiveX 控件msoPicture13圖片msoTextEffect15藝術

56、字msoTextBox17文本框msoDiagram21組織結構圖或其他圖示表格 11MsoShapeType常量第6行代碼使用字符串變量FileName記錄需導出圖形的路徑和名稱。第7行代碼復制圖形,應用于Shape對象的Copy方法將對象復制到剪貼板。第8行代碼使用Add方法在工作表中添加一個圖表,應用于ChartObjects對象的Add 方法創建新的嵌入圖表,語法如下:expression.Add(Left, Top, Width, Height)參數expression是必需的,返回一個ChartObjects對象。參數Left、參數Top是必需的,以磅為單位給出新對象的初始坐標,該

57、坐標是相對于工作表上單元格A1的左上角或圖表的左上角的坐標。參數Width、參數Height是必需的,以磅為單位給出新對象的初始大小。第9行代碼使用Paste方法將圖形粘貼到新的嵌入圖表中,應用于Chart對象的Paste方法將剪貼板中的圖表數據粘貼到指定的圖表中,語法如下:expression.Paste(Type)參數expression是必需的,返回一個Chart對象。參數Type是可選的的,如果剪貼板中有圖表,本參數指定要粘貼的圖表信息。可為以下XlPasteType常量之一:xlFormats、xlFormulas或xlAll。默認值為xlAll,如果剪貼板中是數據不是圖表,則不能使

58、用本參數。第10行代碼使用Export方法將圖表導出到同一目錄中,應用于Chart對象的Export方法以圖形格式導出圖表,語法如下:expression.Export(Filename, FilterName, Interactive)其中參數Filename是必需的,被導出的文件的名稱。第10行代碼刪除新建的圖表。因為Chart對象是不能使用Delete方法直接刪除的,應先使用Parent屬性返回指定對象的父對象,然后使用Delete方法刪除。技巧2 在工作表中添加藝術字在工作表中插入藝術字,可以使用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 (PresetTextEff

溫馨提示

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

評論

0/150

提交評論