Excel圖表編程應用大全(1):初識圖表編程

錄製創建圖表的過程代碼
讓我們手工創建不同的圖表並錄製宏,看看圖表對象的一些屬性和方法。
步驟1 準備數據,如下圖所示。
chartsample11
步驟2 單擊“開發工具—錄製宏”。
步驟3 將宏命名爲BuildSalesChart,如下圖所示。
chartsample12
步驟4 單擊“確定”,開始錄製宏。
步驟5 選擇單元格A1:E7,如下圖所示。
chartsample13
步驟6 單擊“插入—柱形圖”,在“三維柱形圖”中選擇最左邊的圖表類型,如下圖所示。
chartsample14
步驟7 停止宏錄製器。
此時,在工作表中插入了新圖表,如下圖所示。注意,Excel選擇了與每個圖表元素相關的數據區域(圖例、值和水平軸標籤)。
chartsample15
上面的圖表將銷售額按月分組,幫助我們看到哪類產品在該月銷售最好。
除了插入圖表外,Excel同時添加了上下文功能區。上下文功能區提供了與當前所選對象相關的命令。下圖顯示了“圖表工具”上下文功能區,包含三個功能區:設計、佈局、格式。
chartsample16
Excel默認的圖表操作是按列顯示數據值(本例中按產品)。垂直軸和水平軸可能不會按你期望的方向顯示數據,假設本例就是這種情形。下面,讓我們再錄製一個宏,看看Excel切換圖表數據方向從列到行的命令應用。
步驟1 在“開發工具”選項卡中,單擊“錄製宏”。
步驟2 將宏命名爲“ChartByRow”。
步驟3 單擊圖表內任意位置選擇圖表。
步驟4 從“圖表工具”中選擇“設計”選項卡。
步驟5 從“設計”選項卡的“數據”組中,選擇“切換行/列”命令,如下圖所示。
chartsample17
步驟6 停止宏錄製器。
圖表現在應該如下圖所示。
chartsample18
上面的圖表能夠很方便地查看每種產品的銷售趨勢。
查看代碼
讓我們看看到目前爲止生成的宏代碼。BuildSalesChart宏使用選擇的數據區域創建了一個三維柱狀圖表。ChartByRow宏切換默認的圖表數據方向,由列切換爲行。

Sub BuildSalesChart()
'
' BuildSalesChart Macro
'

'
    Range("A1:E7").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'每月銷售數據'!$A$1:$E$7")
    ActiveChart.ChartType = xl3DColumnClustered
End Sub

代碼總共有4行。第1行用來選擇創建圖表的數據區域,第2行添加一個圖表並通過Select方法激活該圖表。注意,圖表是Shape對象的成員,AddChart方法返回一個Shape對象。
AddChart方法有一些可選參數,沒有必需的參數。
表:AddChart方法的參數

參數名稱 數據類型 描述
Type xlChartType 圖表類型(柱狀圖、折線圖、餅圖,等)
Left Variant 從圖表左邊緣到A列左邊緣的距離
Top Variant 從圖表頂部邊緣到工作表頂部邊緣的距離
Width Variant 圖表的寬度
Height Variant 圖表的高度


xlChartType類型包括Excel發佈的所有圖表類型,如下面的列表所示。
第3行代碼將所選擇的數據區域賦值給圖表的Source屬性。
第4行使用ActiveChart對象的ChartType屬性直接設置圖表類型。ChartType屬性與AddChart方法的可選參數具有相同的屬性值。因此,調用AddChart方法時就可以設置ChartType屬性,以簡化宏錄製的代碼:

Sub BuildSalesChart()
'
' BuildSalesChart Macro
'

'
    Range("A1:E7").Select
    ActiveSheet.Shapes.AddChart(xl3DColumnClustered).Select
    ActiveChart.SetSourceData Source:=Range("'每月銷售數據'!$A$1:$E$7")
End Sub

表:xlCharType枚舉值
xlcharttype1
xlcharttype2
xlcharttype3
下面,再來看看ChartByRow宏中切換圖表數據方向的代碼:

Sub ChartByRow()
'
' ChartByRow Macro
'

'
    ActiveSheet.ChartObjects("圖表 3").Activate
    ActiveChart.PlotBy = xlRows
End Sub

代碼總共只有2行。第1行代碼調用ChartObjects.Activate方法來激活名爲“圖表 3”的圖表。ChartObject對象代表在工作表中嵌入的圖表,ChartObjects對象包含在圖表工作表、對話框工作表、或工作表中所有ChartObject對象的集合
ActiveChart.PlotBy屬性設置或返回xlRowCol枚舉的值。下表列出了xlRowCol枚舉項的值。
表:xlRowCol枚舉

名稱
xlRows 1
xlColumns 2

相關文章

  • 2009年12月1日 -- Excel圖表編程應用大全(2):圖表編程基礎 (2)
    嵌入式圖表和圖表工作表 圖表在工作表中有兩種存在方式: 嵌入式圖表與工作表的數據在一起,或者與其他的嵌入式圖表在一起。 圖表工作表是特定的工作表,只包含單獨的圖表。 (1)嵌入式圖表 當希望圖表作爲工作表的一部分,與數據或其他圖表在一起時,嵌入式圖表是最好的選擇。Chart對象代表每一個嵌入式圖表,包含在ChartObject對象裏。 每個Excel工作表都有一個ChartObj...
  • 2011年04月15日 -- Excel圖表編程應用大全(3):示例-使用餅圖彙總 (0)
    引言:本文來源於《Pro Excel 2007 VBA》的第5章,輯錄於此,供學習圖表編程參考。 如下圖所示的示例工作表,列表中分別爲產品、月份、銷售量。 這份數據爲我們在餅圖中顯示每個類別提供了相當好的格式,按月查看每個產品線整體銷量情況。在開始爲這類數據製作圖表之前,最好先按正確的順序將數據排序,使選擇圖表更容易。 1、將活動單元格位於數據表的任意位置。 2、在“數據”選...
  • 2009年08月14日 -- 在VBA中使用R1C1樣式的公式 (0)
    通常,在Excel中採用的A1樣式引用單元格,即行號爲數字列號爲字母。其實,Excel也支持R1C1樣式的引用方式,並且這種引用方式在公式中是非常高效的,特別是在VBA中編寫公式進行數據處理時。 下面,我們舉一個例子,即在VBA中使用R1C1樣式的公式建立乘法表。在工作表單元格區域B1:K1中輸入數字1至10,在A2:A11中也輸入數字1至10,然後在單元格區域B2:K11中獲得單元格所在...
  • 2009年11月16日 -- 修改數據透視表 (2)
    下面,我們來修改在《創建數據透視表》中創建的保險數據透視表。你將會看到當源表中的數據改變時會發生什麼,學習如何查看不同類型的數值彙總,還將使用內置的格式功能來修改數據透視表的外觀。最後,如果不再需要數據透視表,可以刪除它。 改變數據透視表 有時,你會創建數據透視表並且讓它保持相同的佈局且無須修改字段。每週或每月,你將更新數據,基於數據透視表彙總來查看結果或者分發報表。然而,有一些數據透視...
  • 2011年03月14日 -- Array函數 (0)
    可以使用Array函數給數組批量賦值,例如: myArray = Array(1, 2, 3, 4, 5) 語法 Array(元素1,元素2,…,元素n) 其中 元素是賦給數組元素的數據,可爲任意的數據類型。 其返回值爲由傳遞給函數的參數組成的變體型數組。 例如: Dim varMyArray varMyArray = Array("張三", "李四", "王五", "趙六...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章