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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論