概要
Microsoft Excel には、散布図またはバブル チャートのデータ ポイントに自動的にテキスト ラベルを付ける組み込みコマンドはありません。 ただし、この処理を実行する Microsoft Visual Basic for Applications マクロを作成できます。 この資料には、散布図でこの処理を実行するサンプル マクロが記載されています。 ただし、同じコードをバブル チャートにも使用できます。
詳細情報
マイクロソフトはプログラミング言語を使用方法の一例としてのみ提供しており、明示的にも黙示的にも、一切の保証をいたしません。 これには、市場性および特定の目的への適合性に対する黙示的な保証が含まれます。 この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。 Microsoft サポート エンジニアは、特定のプロシージャの機能についての問い合わせにはお答えできますが、 ユーザー固有の要件に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。 この資料のサンプル コードでは、データおよび関連するラベルを次のフォーマットでワークシートに配置するものと仮定します。
-
第 1 列は、データのラベルです。
-
第 2 列は、散布図の X の値です。
-
3 列目以降は、散布図の Y の値です。
注: この例の Y の値のデータは 1 列しかありませんが、複数のデータ列を使用することができます。
この資料に記載されているマクロを使用するには、次のデータを使用してグラフを作成します。 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 である必要はありません)。 散布図のデータ ポイントにテキスト ラベルを付ける手順は次のとおりです。-
サンプル データを入力したワークシートで、セル範囲 B1:C6 を選択します。
-
Microsoft Office Excel 2003 およびそれ以前のバージョンの Excel では、次の手順を実行します。
-
[挿入] メニューの [グラフ] をクリックします。
-
[グラフ ウィザード - 1/4 - グラフの種類] ダイアログ ボックスで、[標準] タブをクリックします。[ [グラフの種類] で [散布図] をクリックし、[次へ] をクリックします。
-
[グラフ ウィザード - 2/4 - グラフの元データ] ダイアログ ボックスで、[データ範囲] タブをクリックします。 [系列] で [列] をクリックし、[次へ] をクリックします。
-
[グラフ ウィザード - 3/4 - グラフ オプション] ダイアログ ボックスで、[次へ] をクリックします。
-
[グラフ ウィザード - 4/4 - グラフの作成場所] ダイアログ ボックスで、[新しいシート] をクリックし、[完了] をクリックします。
Microsoft Office Excel 2007 では、次の手順を実行します。
-
[挿入] タブをクリックし、[グラフ] の [散布図] をクリックし、散布図の種類を選択します。
-
[デザイン] タブの [場所] で [グラフの移動] をクリックし、[新しいシート] をクリックして [OK] をクリックします。
-
-
Alt キーを押しながら F11 キーを押して、Visual Basic Editor を起動します。
-
[挿入] メニューの [標準モジュール] をクリックします。
-
次のサンプル コードをモジュール シートに入力します。
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 の各ラベルがグラフのデータ ポイントに付けられます。