メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

次の VBA (Visual Basic for Applications) プロシージャを使用すると、Excel for Macのグラフでセル値をデータ ラベルとして使用できます。 この手順を利用するには、次の操作を行います。

  1. Excel で、[ ツール ] > [マクロ ]> [ 新しいマクロの記録] をクリックします。

  2. [ Store Macro in: ]\(マクロをに格納する\): ドロップダウン ボックスで、[ 個人用マクロ ブック] を選択します。

    注: VBA プロシージャを個人用マクロ ブックに格納すると、Excel の任意のインスタンスで使用できます。 つまり、単一のブックでの使用に限定されるだけではありません。

  3. [OK] を押します。

  4. [ツール ]> [マクロ ]> [記録の停止] に移動します。

  5. [ツール] > [マクロ ]> [Visual Basic エディター] に移動します。

  6. Excel の上に Visual Basic エディター (VBE) が開きます。 左側のナビゲーション ウィンドウで、 VBAProject (PERSONAL) を展開します。モジュール1 を表示する XLSB) フォルダー。

  7. モジュール 1 をダブルクリックすると、コード ウィンドウが表示され、VBE ウィンドウの右側に開きます。

  8. 新しいマクロを記録したときに作成された VBA コードは必要ないため、すべて選択してから Delete キーを押 します。 

  9. 次に、下のテキスト ボックスで VBA コードを選択し、 CMD キーを押しながら C キーを押してコピーし、[ コード] ウィンドウCMD + V キーを押して貼り付けます。 これで、Visual Basic エディターを終了し、Excel に戻ることができます。

  10. データ ラベルを含むグラフを作成して、マクロをテストします。 次に、グラフ上の任意のデータ ラベルを選択し、[ ツール ] > [マクロ] > [ マクロ ] をクリックして マクロを実行します。 [SetCustomDataLabels] を選択し、[ 実行] を押します。 データ ラベル範囲の選択を求めるメッセージが自動的に表示されます。そのため、これを行い、[ OK] を押します。  

    注: VBA プロシージャは元に戻すことができないため、ブックのコピーでこれを試してください。 コードを実行し、結果を保持したくない場合は、ブックを保存せずに閉じる必要があります。

  11. Excel を終了するときは、変更を PERSONAL に保存することを選択してください。XLSB を使用すると、マクロは将来使用できるようになります。

  12. グラフにデータ ラベルを追加または削除する場合は、いつでもデータ ラベルを選択してマクロを実行します。

  13. Excel > Preferences > Ribbon & Toolbar を使用して、リボンまたはツール バーからマクロを実行するボタンを追加できます。

VBA プロシージャ

Option Explicit

Sub SetCustomDataLabels()
' make sure a series is selected
    If TypeOf Selection Is DataLabels Or TypeOf Selection Is Point Then
        Selection.Parent.Select
    ElseIf TypeOf Selection Is DataLabel Then
        Selection.Parent.Parent.Select
    End If

    If TypeOf Selection Is Series Then
        Else
        MsgBox "Select a chart series and try again."
        Exit Sub
    End If

    If Selection.HasDataLabels Then
        'If the data labels from cells are already showing, stop showing them and exit.
        'If labels include other info (e.g., values or categories) this will still appear
        If Selection.DataLabels.ShowRange Then
            Selection.DataLabels.ShowRange = False
            Exit Sub
        End If
    End If
 
'Use the InputBox dialog to set the range for the data labels
    On Error Resume Next
        Dim rng As Range
        Set rng = Application.InputBox(Prompt:="Select data label range.", Title:="Data Label Range", Type:=8)
    On Error GoTo 0

    If rng Is Nothing Then Exit Sub ' clicked cancel
        If Selection.HasDataLabels Then
            'This will include the new text from cells into existing data labels
        Else
        'Otherwise add data labels (empty labels)
            Selection.HasDataLabels = True
            Selection.DataLabels.ShowValue = False
        End If
    
    'Create a string that includes the sheet name and range reference.
    Dim rngAddress As String
        rngAddress = "='" & rng.Worksheet.Name & "'!" & rng.Address(RowAbsolute:=True, ColumnAbsolute:=True, External:=False)
        Selection.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, rngAddress, 0
        Selection.DataLabels.ShowRange = True

End Sub

補足説明

Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×