質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.37%

  • VBA

    1121questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    964questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

Excel VBA グラフラベルの更新

解決済

回答 2

投稿 2017/12/06 15:35

  • 評価
  • クリップ 0
  • VIEW 50

mochinn

score 6

Excel2016
横軸グラフを作成し、データが追加されるとグラフ範囲が更新されるマクロを作成しています。

Dim gr As Worksheet
Set gr = ThisWorkbook.Worksheets("Graph_RAW")

Dim c As Long
c = gr.Cells(1, 1).End(xlDown).Row

With Charts("Point Graph").SeriesCollection(1)
    .XValues = "='Graph_RAW'!$A$2:$A$" & c
    .Values = "='Graph_RAW'!$B$2:$B$" & c
    .DataLabels.Text = gr.Range("B2", Cells(2, c)).Value

End With


XValueとValueの更新までは問題なかったのですが、
データラベルの更新で「指定したディメンションは、このグラフの種類では無効です。」というエラーが出てしまいます。

最初作成したグラフのデータラベルには、元のデータの横の列のセルの値を指定していました。
イメージとしては、
Graph_RAWシートに
A列:店名
B列:獲得点数
C列:担当者名 という表があり、これに対して新規シートにグラフを作成し、
縦に店名が表示されていて、横に点数のグラフが伸びていて、データラベルに担当者名が表示、というかんじです。
A列の店名が今後増えていく予定です。

データラベルの範囲も更新されるようにするには、どのように修正したら良いでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

check解決した方法

+1

データラベルの設定範囲を変えるのではなく、全てのデータにラベルを付け直す形にしたら、うまくいきました!

With Charts("Duration Graph").SeriesCollection(1)
    .XValues = "='Graph_RAW'!$A$2:$A$" & c   
    .Values = "='Graph_RAW'!$B$2:$B$" & c    

    For i = 1 To c - 1    '行数-1(見出し行)
        With .Points(i)
                .HasDataLabel = True    'ラベルを設定
                .DataLabel.Text = gr.Cells(i + 1, 3).Value  '見出し分1行下になるため+1
        End With
    Next i

End With

投稿 2017/12/07 17:00

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

マクロを使わなくても、数式で動的にデータ範囲を自動変更できますよ。

http://officetanaka.net/excel/function/tips/tips71.htm

投稿 2017/12/07 09:21

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/07 16:53

    ありがとうございます。
    このサイトは既に参照していて、データを自動変更する仕組みはわかったのですが、ラベルにセルの値を指定していたので、その場合どこを「項目名」にすれば良いのかわからなかったのです・・。
    マクロは先程無事に、自己解決できました!
    お騒がせしました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.37%

関連した質問

同じタグがついた質問を見る

  • VBA

    1121questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    964questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。