excel2013從入門到精通-附贈vba語法辭典07圖表操作_第1頁
excel2013從入門到精通-附贈vba語法辭典07圖表操作_第2頁
excel2013從入門到精通-附贈vba語法辭典07圖表操作_第3頁
excel2013從入門到精通-附贈vba語法辭典07圖表操作_第4頁
excel2013從入門到精通-附贈vba語法辭典07圖表操作_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

7章圖表對象操作Excel還可以創(chuàng)建各種不同類型的圖表。數(shù)據(jù)是圖表的基礎,而圖表則可以更加直觀的顯ExcelVBA中,同樣給圖表提供多種屬性和事件。在本章中,將詳細講解如何使用VBA代碼編輯圖表。VBA代碼創(chuàng)建各種類型的圖表。在本小節(jié)中,將詳細講解如何使用VBA創(chuàng)建圖表。案例 ,Ad表達式.Add(Before,After,Count, 提示:如果Before和After兩者提示:如果Before和After兩者都被省略,新建的圖表工作表將插入到活動工作表之前 PlotBy:指定數(shù)據(jù)繪制方式??墒褂贸A縳lColumns(數(shù)據(jù)系列在行中)和xlRows(數(shù)要設置圖表的內容,用戶需要熟悉關于圖表的屬性。其常見的屬性如表7.1所示。7.1Chart對象的常用屬或xlRows某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根據(jù)該數(shù)據(jù),用戶需要用VBA代碼創(chuàng)建圖表工作表,其中原始數(shù)據(jù)如圖7.1所示。7.1原始數(shù)SubCreatCharts()SubCreatCharts()Withcht.ChartType=.HasTitle=EndWithEnd7.2創(chuàng)建圖表工作137創(chuàng)建嵌入式圖表ChartObjectChartObject對象都代表一個嵌入圖表。ChartObjectChart對象的容器。ChartObject對象的屬性和方法控制工作表通過ChartObjects集合的Add方法,可向集合中添加嵌入式圖表。其語法格式如下:表達式.Add(Left,Top,Width,Height) 某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根據(jù)該數(shù)據(jù),用戶需要用VBA代碼創(chuàng)建嵌入式圖表,其中原始數(shù)據(jù)如圖7.3所示。7.3原始數(shù)Sub OnErrorResumeOnErrorGoToWith.Left,.Top,.Width,.Height)EndWithWith.Name=With.ChartType= EndWithEndSub7.4創(chuàng)建嵌入式圖表,執(zhí)行Delete方法時將出現(xiàn)錯誤,所以需使用錯誤捕捉語句獲取錯誤。接著使用ChartObjectsAdd方法添加一個嵌入式圖表,最后設置圖表對象的相關屬性。案例 以通過VBA代碼實現(xiàn)該功能。ExcelVBA中,用戶可ChartLocation方法,可改變圖表的放置位置。 Where:用來設置圖表移動的目標位置。可設置為xlLocationAsNewSheet(將圖表移)xlLocationAsObject()或xlLocationAutomatic(Excel控制圖表位置)三個常量之一。Name:如果Where為xlLocationAsObject,則該參數(shù)為必選參數(shù)。如果Where為xlLocationAsObject,則該參數(shù)為嵌入該圖表的工作表的名稱。如果Where為某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根據(jù)該數(shù)據(jù),用戶需要用VBA代碼確定圖表的不同位置,其中原始數(shù)據(jù)如圖7.5所示。7.5原始數(shù)SubDimchtAsChartObjectOnSubDimchtAsChartObjectOnErrorResumeNextSetcht=IfchtIsNothingThenExit,"EndDimchtAsDimchtoAsChartObjectOnErrorResumeNextSetchtCharts("銷量數(shù)據(jù)圖IfchtIsNothingThenExitSetchto=ActiveSheet.ChartObjects(1)WithRange("A10:F20")chto.Top=.Topchto.Left=.Leftchto.Width=.WidthEndEnd7.6嵌入圖表轉圖表7.7圖表工作表轉嵌案例 小節(jié)中,將結合具體的例子來演示如何使用VBA刪除圖表。據(jù)該數(shù)據(jù),用戶需要用VBA代碼演示如何刪除圖表,其中原始數(shù)據(jù)如圖7.8所示。7.8原始數(shù)SubDimSubDimchtAsForEachchtInActiveSheet.ChartObjectsIfMsgBox("刪除圖表?vbQuestionvbYesNo刪除圖表vbYesThenEndEnd7.9刪除第一個圖7.11刪除第二7.12刪除圖表后的工作中,將結合具體的例子來講解如何使用VBA設置圖表的屬性。案例 varname包含用戶定義類型變量之外的任何變量。TypeName函數(shù)的返回值為一某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根VBA判斷圖表工作表,其中原始數(shù)據(jù)如圖7.13所示。SubCheckChartForm()DimiAsIntegerForSubCheckChartForm()DimiAsIntegerFori=1ToActiveWorkbook.Sheets.CountIfTypeName(Sheets(i))="Chart"ThenEnd7.14運行程序結用For循環(huán)檢測各個工作表的類型。案例 Excel圖表中,網(wǎng)格線是一個重要的工具。為圖表添加合適的網(wǎng)格線,用戶可以方ExcelVBAAxis.HasMajorGridlines屬性和Axis.HasMinorGridlines屬性。其中,Axis.HasMajorGridline屬性用來設置圖表的主要網(wǎng)格 Axis對象的變量。Axis.HasMinorGridlines屬性用來設置圖表的次要 某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根表如圖7.15所示。DimObjAxisForEachObjAxisInActiveChart.AxesNextEndDimObjAxisForEachObjAxisInActiveChart.AxesObjAxis.HasMajorGridlines=TrueObjAxis.HasMinorGridlines=FalseNextEndDimObjAxisForEachObjAxisInActiveChart.AxesObjAxis.HasMajorGridlines=FalseNextEnd7.16添加所有網(wǎng)格7.17添加主要網(wǎng)格7.18刪除所有的網(wǎng)格案例 源,其中原始數(shù)據(jù)和圖表如圖7.19所示。7.19SubDimSubDimNewDataAsIfActiveChartIsNothingThenMsgBox沒有選中圖表!"ExitSubEndSetNewDataApplication.InputBox(prompt:="自定義數(shù)據(jù)源。Type:=8)ActiveChart.SetSourceDataSource:=NewDataEnd7.20不選中圖表運行程7.21選擇新的數(shù)據(jù)7.22修改后的圖的數(shù)據(jù)源區(qū)域,最后使用SetSourceData方法為圖表設置新的數(shù)據(jù)源。案例 VBA代碼設置圖表的各種外觀屬性,在本例中,將演示如何使用代碼在ExcelVBA中,獲取對ShadowFormat對象的后,通過該對象的屬性就可控制OffsetX屬性:以磅為單位返回或設置指定形狀的陰影的水平偏移量。正偏移值將陰某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根VBA代碼,為原始的圖表添加陰影,其中原始數(shù)據(jù)和圖表如圖7.23所示。7.23SubSubIfActiveChartIsNothingThenMsgBox沒有選擇圖表!"ExitSubEndWith.Visible=.Blur=.Transparency=.OffsetX=.OffsetY=6EndWithWith.Visible=.Blur=.Transparency=.OffsetX.OffsetX=.OffsetY=3EndWithEnd7.24添加圖表的陰IfIfActiveChartIsNothingExitSubEndActiveChart.ChartArea.Shadow=FalseActiveChart.PlotArea.Format.Shadow.Visible=msoFalse案例 用戶可以通過VBA代碼為圖表添加數(shù)據(jù)。ExcelVBA中,SeriesCollectionSeries對ChartSeriesCollectionSeriesCollection集合。Series對數(shù)據(jù)點的集合(Points集合。ExcelVBA中,Point對象代表圖表系列中的單個數(shù)據(jù)點。通過該對象可控制圖表中數(shù)據(jù)系列的每一個數(shù)據(jù)點,如本例使用DataLabel設置數(shù)據(jù)點的的顯示內容。某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根VBA代碼,為原始的圖表添加陰影,其中原始數(shù)據(jù)和圖表如圖7.25所示。7.25 的VBA代碼如下Sub顯 DimiAsInteger,nAsInteger,serAsIfIfActiveChartIsNothingExitSubEndForEachserInActiveChart.SeriesCollectionser.ApplyDataLabelsType:=xlDataLabelsShowValue,_Fori=1TonEnd7.26查看添加的數(shù)多個數(shù)據(jù)點,內循環(huán)完成顯示數(shù)據(jù)的操作。隱藏的VBA代碼如下: IfActiveChartIsNothing ExitSubEndForEachserInActiveChart.SeriesCollectionser.HasDataLabels=False案例 Excel中用戶可以靈活處理圖表對象。而為了在其他程序中顯ExcelVBAChartObjectsCopyPicture方法,可將選中圖表作為圖 .gifmix據(jù)該數(shù)據(jù),用戶創(chuàng)建了對應的圖表?,F(xiàn)在需要編寫VBA代碼,將圖表轉換為保存,如圖7.27所示。7.27SubIfActiveChartIsNothingSubIfActiveChartIsNothingThenMsgBox"請選擇圖表!"ExitSubEndActiveWindow.Visible=FalseEnd7.28運行的結案例 Axes(xlValue):數(shù)值某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根7.297.29DimiAsIntegerIfDimiAsIntegerIfActiveChartIsNothingThenMsgBox"請選擇圖表!"ExitSubEndWith.PlotArea.Format.Fill.ForeColor.RGB=RGB(255,0,255)EndWithEnd7.30設置圖表顏案例 ExcelVBA代碼設置過Interior對象的屬性ColorIndex設置每個數(shù)據(jù)點的填充顏色。某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根VBA代碼,設置圖表中數(shù)據(jù)系列的顏色,原始圖表如圖7.31所示。7.31DimDimSerAsDimiAsLongDimlColorAsIfActiveChartIsNothingThenMsgBox"請選擇圖表!"ExitSubEndForEachSerInActiveChart.SeriesCollectionFori=1ToSer.Points.CountiTempColor=Ser.Values(i)CaseIs<400lColor=7CaseIs>=lColor=CaseCaseEndSelectNextiNextEnd7.32按值顯示顏案例 的圖表類型ChartType屬性如表7.2所示。7.2XlChartType的常見取某公司統(tǒng)計了該公司、、、和重慶地區(qū)的四個季度的銷量數(shù)據(jù),根VBA代碼,修改圖表的類型,原始圖表如圖7.33所示。7.33SubIfActiveChartIsNothingThenSubIfActiveChartIsNothingThenExitSubEndWith.ChartType=With.Name=.FontStyle=.Size=.Bold=EndWith.HasLegend=.Legend.Position=.HasTitle=EndWithEnd7.34修改圖表類案例 用戶可以使用VBA設置不同數(shù)據(jù)系列的圖表類型。本例所涉及的主要技術是Series數(shù)據(jù)序列對象是SeriesCollection集合的成員。SeriesCollectionSeries對象的個數(shù)與圖例中包含的圖例項個數(shù)對應。Series需要使用Series對象的子對象Points集合。因為數(shù)據(jù)序列中單個圖形的類型為Point。某公司統(tǒng)計了該公司、、、和重慶地區(qū)的上下半年的銷量數(shù)據(jù),根VBA代碼,修改其中數(shù)據(jù)系列的圖表類型,原始圖表如圖7.35所示。DimSerAsSeriesDimDimSerAsSeriesDimPtAsSer.Type=xlLineSer.Type=xlColumnEnd7.36修改數(shù)據(jù)系列的圖表類的數(shù)據(jù)序列。折線圖、XY散點和圖氣泡等都屬于二維圖表類型。3D柱狀圖、3D餅圖和3D氣泡圖等都屬于三維圖表類型。案例 和間隔等。用戶可以使用VBA設置坐標軸的屬性。Chart.Axes(Type[,AxisGroup]) 7.3XlAxisType枚舉值132某公司統(tǒng)計了該公司、、、和重慶地區(qū)的上下半年的銷量數(shù)據(jù),根VBA代碼,修改原始圖表中的坐標軸蘇醒,原始圖表如圖7.37所示。SubSetAxies()DimAxsAsSubSetAxies()DimAxsAsAxisSetAxs=.Axes(xlValue)With.HasTitle=="EndWithSetAxs=.Axes(xlCategory)WithAxs.HasTitle==".TickLabels.Orientation=xlVerticalEndWithSetAxs=.Axes(xlValue,2)WithAxs.HasTitle==".HasMajorGridlines=True.Color=RGB(0,255,EndWithEndEnd7.38修改數(shù)據(jù)系列的圖表類Excel對象類似,圖表也有對應的事件。使用這些圖表事件,用戶以編寫針對案例 某公司統(tǒng)計了該公司、、、和重

溫馨提示

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

評論

0/150

提交評論