Excelのラベル付き散布図の作り方
「Excelで作った散布図にラベルを付けたい」
よく質問されます
実は非常に簡単に作ることができます
3つのステップ
次の3ステップで、ラベル付き散布図を作ることができます
- ステップ1 散布図を作る
- ステップ2 散布図にラベルを付けるVBAのプログラム(EXCELマクロ)を作る
- ステップ3 散布図にラベルを付ける
ExcelのVBAを使いラベル付き散布図を作ります
今回の例では、以下のような製品別の売上と利益率のデータを使います
データは、図の通り、
- 1列目: 製品名 → 散布図に付けるラベル
- 2列目: 売上 → 散布図の横軸
- 3列目: 利益率 → 散布図の縦軸
のようになります
ステップ1 散布図を作る
まず、このデータから次のような散布図をExcelで作ります
この散布図にラベルを手作業で付けるのは一苦労です
手作業でもできますが、今回は簡単にラベルを付ける付け方を説明します
ステップ2 散布図にラベルを付けるVBAのプログラム(EXCELマクロ)を作る
今回は、ExcelのVBAを使います
はじめての方は、ちょっと難しいと感じるかもしれませんが、恐れることはありません
コピー&ペーストでVBAのプログラムを作ることができます
実は、そのためのプログラムがMicrosoftのサポートページ(http://support.microsoft.com/kb/213750/ja)に掲載されています
ページをスクロールしていくと下の方にVBAのプログラムコードがあります
そのコードをコピーします
参照元:Microsoftのサポートページ(http://support.microsoft.com/kb/213750/ja)に掲載されているコード(2014/10/5現在)
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
次に、あなたのExcelでVBAのプログラム(EXCELマクロ)を作るために、Visual Basic Editorを開きます
Visual Basic Editorを開いたら「挿入」から「標準モジュール」を追加します
開いた空白の「標準モジュール」に先ほどコピーしたVBAのコードを貼り付けます
これで、VBAのプログラムは完成です
非常に簡単でしたね
次に、先ほど作った散布図にラベルを付けます
ステップ3 散布図にラベルを付ける
先ほど作った散布図のグラフをクリックし選択します
次に、マクロを実行します
先ほど作ったマクロを選択してください(一つしか作っていなければ探すのは簡単ですね)
実行ボタンを押せば散布図にラベルが付きます
これで完成です
非常に簡単でしたね