Excel VBA:創建與刪除圖表

ChartObjects 對象

由指定的圖表工作表、對話框工作表或工作表上的所有 ChartObject 對象組成的集合。

說明

ChartObjects 集合

使用 ChartObjects(index)(其中index 是嵌入圖表的索引號或名稱)可以返回單個對象。以下示例設置名爲“Sheet1”的工作表上嵌入圖表 Chart 1 中的圖表區圖案。

Worksheets("Sheet1").ChartObjects(1).Chart. _
    CChartObjecthartArea.Format.Fill.Pattern = msoPatternLightDownwardDiagonal

ChartObject 對象

代表工作表上的嵌入圖表。

說明

ChartObject 對象充當 Chart 對象的容器。ChartObject 對象的屬性和方法控制工作表上嵌入圖表的外觀和大小。ChartObject 對象是 ChartObjects 集合的成員。ChartObjects 集合包含單一工作表上的所有嵌入圖表。

示例
以下示例設置名爲“Sheet1”的工作表上嵌入圖表 Chart 1 中的圖表區圖案。

Worksheets("Sheet1").ChartObjects(1).Chart. _
    ChartArea.Format.Fill.Pattern = msoPatternLightDownwardDiagonal

當選定嵌入圖表時,其名稱顯示在“名稱”框中。使用 Name 屬性可設置或返回 ChartObject 對象的名稱。以下示例對工作表“Sheet1”上的嵌入圖表“Chart 1”使用了圓角。

Worksheets("sheet1").ChartObjects("chart 1").RoundedCorners = True

ChartObject.Name 屬性

返回一個 String 值,它代表對象的名稱。

語法

表達式.Name

表達式   一個代表 ChartObject 對象的變量。

說明

此屬性對圖表對象(嵌入式圖表)而言是隻讀的。

Chart 對象

代表工作簿中的圖表。

說明

此圖表既可以是嵌入的圖表(包含在 ChartObject 對象中),也可以是單獨的圖表工作表。

示例部分中描述了以下用於返回 Chart 對象的屬性和方法:

  • Charts 方法
  • ActiveChart 屬性
  • ActiveSheet 屬性

示例

Charts 集合包含工作簿中每個圖表工作表的 Chart 對象。使用 Charts(index) 可以返回單個 Chart 對象,其中 index 爲圖表工作表的索引號或名稱。圖表索引號表示圖表工作表在工作簿標籤欄上的位置。Charts(1) 是工作簿中第一個(最左邊的)圖表;Charts(Charts.Count) 是最後一個(最右邊的)圖表。所有圖表工作表均包括在索引計數中,即便是隱藏工作表也是如此。圖表工作表名稱顯示在圖表工作簿標籤上。您可以使用 Name 屬性設置或返回圖表名稱。本示例將更改第一張圖表工作表中第一個系列的顏色。

Charts(1).SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbRed

本示例將名爲“Sales”的圖表移至活動工作簿的尾部。

Charts("Sales").Move after:=Sheets(Sheets.Count)

Chart 對象也是 Sheets 集合的成員,此集合包含工作簿中的所有工作表(圖表工作表和工作表)。使用 Sheets(index) 可以返回單個工作表,其中index 是工作表索引號或名稱。

當圖表是活動對象時,您可以使用 ActiveChart 屬性引用它。如果用戶選擇了圖表工作表,或者用 Chart 對象的 Activate 方法或 ChartObject 對象的 Activate 方法激活了它,則該圖表工作表處於活動狀態。本示例將激活圖表工作表 1,然後設置圖表類型和名稱。

Charts(1).Activate
With ActiveChart
    .Type = xlLine
    .HasTitle = True
    .ChartTitle.Text = "January Sales"
End With

如果用戶選擇了嵌入圖表,或者用 Activate 方法激活了包含該嵌入圖表的 ChartObject 對象,則該嵌入圖表處於活動狀態。本示例將激活工作表 1 上的嵌入圖表 1,然後設置圖表類型和名稱。請注意,在激活了嵌入圖表之後,本示例中的代碼與前一個示例中的代碼相同。通過使用 ActiveChart 屬性,您可以編寫能夠引用嵌入圖表或圖表工作表(視哪一個處於活動狀態而定)的 Visual Basic 代碼。

Worksheets(1).ChartObjects(1).Activate
ActiveChart.ChartType = xlLine
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = "January Sales"

 當圖表工作表爲活動工作表時,可以使用 ActiveSheet 屬性來引用它。本示例使用 Activate 方法激活名爲 Chart1 的圖表工作表,然後將圖表中系列 1 的內部顏色設置爲藍色。

Charts("chart1").Activate
ActiveSheet.SeriesCollection(1).Format.Fill.ForeColor.RGB = rgbBlue 

創建圖表

使用 Add 方法可創建一個新的空嵌入圖表並將它添加到集合中。使用 ChartWizard 方法可添加數據並設置新圖表的格式。以下示例創建一個新嵌入圖表,然後以折線圖形式添加單元格 A1:A20 中的數據。

Dim ch As ChartObject
Set ch = Worksheets("sheet1").ChartObjects.Add(100, 30, 400, 250)
ch.Chart.ChartWizard source:=Worksheets("sheet1").Range("a1:a20"), _
    gallery:=xlLine, title:="New Chart"

ChartObjects.Add 方法

創建新的嵌入式圖表。

語法

表達式.Add(Left, Top, Width, Height)

表達式   一個代表 ChartObjects 對象的變量。

參數

名稱 必選/可選 數據類型 說明
Left 必選 Double 以磅爲單位給出新對象的初始座標,該座標是相對於工作表上單元格 A1 的左上角或圖表的左上角的座標。
Width 必選 Double 以磅爲單位給出新對象的初始大小。

返回值
一個代表新嵌入式圖表的 ChartObject 對象。

示例

此示例創建新的嵌入式圖表。

Set co = Sheets("Sheet1").ChartObjects.Add(50, 40, 200, 100)
co.Chart.ChartWizard Source:=Worksheets("Sheet1").Range("A1:B2"), _
    Gallery:=xlColumn, Format:=6, PlotBy:=xlColumns, _
    CategoryLabels:=1, SeriesLabels:=0, HasLegend:=1

刪除圖表

使用 ChartObjects 方法返回 ChartObjects 集合。以下示例刪除名爲“Sheet1”的工作表上的所有嵌入圖表。

Worksheets("sheet1").ChartObjects.Delete

Locked 屬性不能使用 ChartObjects 集合來調用以下屬性和方法:

  • Placement 屬性
  • PrintObject 屬性

與早期版本不同,ChartObjects 集合現在可以讀取表示高度、寬度、左對齊和頂對齊的屬性。

source:VBA Help

發佈了9 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章