摘要
在 Microsoft Excel 中,沒有會自動為 xy 散佈圖或泡泡圖中的資料點附加文字標籤的內建命令。 不過,您可以建立一個執行此動作的 Microsoft Visual Basic for Applications (VBA) 巨集。 本文包含在 XY 散佈圖上執行此工作的範例巨集。 不過,相同的程式碼可用於泡泡圖。
其他相關資訊
Microsoft 僅提供示範性的程式設計範例,不做任何明示或默示的保證。 其中包括 (但不限於) 其適售性與適合某特定用途之默示擔保。 本文假設您已相當熟悉示範所使用的程式設計語言,以及用於建立和偵錯程序的工具。 Microsoft 技術支援工程師可以協助說明特定程序的功能, 不過,他們不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。 本文中的範例程式碼會假設資料和相關聯的標籤是根據下列格式而排列在工作表中:
-
第一欄含有資料標籤。
-
第二欄含有 xy 散佈圖的 x 值。
-
第三欄和後面欄位含有 xy 散佈圖的 y 值。
注意: 雖然所提供的範例只有一欄資料是 y 值,但您可以使用一個以上的數列資料。
如果要使用本文中的巨集,請使用下列資料建立圖表: A1: Labels B1: X Values C1: Y Values A2: DataPoint1 B2: 12 C2: 5 A3: DataPoint2 B3: 9 C3: 7 A4: DataPoint3 B4: 5 C4: 3 A5: DataPoint4 B5: 4 C5: 8 A6: DataPoint5 B6: 1 C6: 4 注意: 此表格不可含空白欄,且含有資料標籤的欄和含有 x 值的欄不可分開。 標籤和值必須完全依照本文所述的格式進行配置。 (左上方的儲存格不必一定是儲存格 A1)。 如果要為 xy 散佈圖中的資料點附加文字標籤,請依照下列步驟執行:-
在含有範例資料的工作表上,選取儲存格範圍 B1:C6。
-
在 Microsoft Office Excel 2003 和舊版的 Excel 中,請依照下列步驟執行:
-
按一下 [插入] 功能表上的 [圖表]。
-
在 [圖表精靈 - 步驟 4 之 1 - 圖表類型] 對話方塊中,按一下 [標準類型] 索引標籤。 按一下 [圖表類型] 下的 [XY 散佈圖],然後按 [下一步]。
-
在 [圖表精靈 - 步驟 4 之 2 - 圖表資料來源] 對話方塊中,按一下 [資料範圍] 索引標籤。 按一下 [數列資料取自] 下的 [欄],然後按 [下一步]。
-
在 [圖表精靈 - 步驟 4 之 3 - 圖表選項] 對話方塊中,按 [下一步]。
-
在 [圖表精靈 - 步驟 4 之 4 - 圖表位置] 對話方塊中,按一下 [新的工作表] 選項,然後按一下 [完成]。
在 Microsoft Office Excel 2007 中,請依照下列步驟執行:
-
按一下 [插入] 索引標籤,再按一下 [圖表] 群組中的 [散佈圖],然後選取一種類型。
-
在 [設計] 索引標籤上,按一下 [位置] 群組中的 [移動圖表],再按一下 [新工作表],然後按一下 [確定]。
-
-
按 ALT+F11 啟動 Visual Basic 編輯器。
-
在 [插入] 功能表上,按一下 [模組]。
-
在模組工作表中輸入下列範例程式碼:
Sub AttachLabelsToPoints() 'Dimension variables. Dim Counter As Integer, ChartName As String, xVals As String ' Disable screen updating while the subroutine is run. Application.ScreenUpdating = False 'Store the formula for the first series in "xVals". xVals = ActiveChart.SeriesCollection(1).Formula 'Extract the range for the data from xVals. xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _ Mid(Left(xVals, InStr(xVals, "!") - 1), 9))) xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1) Do While Left(xVals, 1) = "," xVals = Mid(xVals, 2) Loop 'Attach a label to each data point in the chart. For Counter = 1 To Range(xVals).Cells.Count ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _ True ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _ Range(xVals).Cells(Counter, 1).Offset(0, -1).Value Next Counter End Sub
-
按 ALT+Q 返回 Excel。
-
切換至圖表。
-
在 Excel 2003 和舊版 Excel 中,指向 [工具] 功能表上的 [巨集],然後按一下 [巨集]。 按一下 [AttachLabelsToPoints],然後按一下 [執行] 以執行該巨集。
在 Excel 2007 中,按一下 [開發人員] 索引標籤,接著按一下 [程式碼] 群組中的 [巨集],選取 [AttachLabelsToPoints],然後按一下 [執行]。
此巨集會將儲存格 A2:A6 中的標籤附加至圖表上的資料點。