エクセル関数応用
グラフのデータ範囲を可変にする

Excel関数の解説、関数サンプルと高等テクニック
公開日:2013年5月以前 最終更新日:2013-06-09

グラフのデータ範囲を可変にする


データの範囲に合わせて、自動的にグラフのデータ範囲が変更されるようにします。


グラフのデータ個数が増えるたびに、

「データの選択」(2003は元データ)を変更するのは、いかにも面倒です。

できれば、マクロでやりたいところですが、マクロはちょっという人用に解説します。

一応、マクロも最後に載せています。

以下の表で説明します。

Excel VBA 解説


作成するグラフは、以下になります。

Excel VBA 解説


グラフはなんでも結構です。


ていっても限度がありますけど、上記の表なら折線か棒グラフくらいでしょう。

まず、名前定義をします。シート「リスト」を選択します。

  1. データのあるシートを選択
  2. Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
  3. 新規作成(追加)
  4. 「名前」に「グラフ軸」と入力。
  5. 「参照範囲」に「=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)
  6. 「OK」
  7. 新規作成(追加)
  8. 「名前」に「グラフデータA」と入力。
  9. 「参照範囲」に「=OFFSET($B$2,0,0,COUNTA($A:$A)-1,1)
  10. 「OK」
  11. 新規作成(追加)
  12. 「名前」に「グラフデータB」と入力。
  13. 「参照範囲」に「=OFFSET($C$2,0,0,COUNTA($A:$A)-1,1)
  14. 「OK」

2007以降の場合は、「範囲」は、「ブック」にして下さい。


では、グラフの設定です。

2007以降は、「データの選択」

Excel VBA 解説


ここで、「軸ラベル」の「編集」

Excel VBA 解説

範囲に、「ブック名!グラフ軸」と入れます。

ブック名は、拡張子も含めて正しく設定する必要があります。

続いて、「系列」の「編集」

Excel VBA 解説

これを、全ての系列に対して行います、ここでは2系列です。

名前定義したデータ列と一致するように、注意してください。

2003では、「元のデータ」

Excel VBA 解説


上図のように設定して下さい。

全ての系列に対して、行って下さい。

以上で完成です。

少し面倒ですが、一度設定してしまえば、データ個数に自動対応されますので、

その後は保守が楽になります。

しかし、この方法はいかにも面倒です。

系列が増えるたびに、名前定義からやらなければなりません。

やはり、できれば、マクロでやる事をお勧めします。

以下に、そのコードを一例を示しておきます。



Sub test()
  Dim i As Long, F As String, lngMax As Long
  lngMax = Cells(Rows.Count, 1).End(xlUp).Row
  With ActiveSheet.ChartObjects(1).Chart
    For i = 1 To .SeriesCollection.Count
      .SeriesCollection(i).Formula = _
        "=SERIES(" & _
        Cells(1, i + 1).Address(External:=True) & "," & _
        Cells(2, 1).Resize(lngMax - 1, 1).Address(External:=True) & "," & _
        Cells(2, i + 1).Resize(lngMax - 1, 1).Address(External:=True) & "," & _
        i & ")"
    Next i
  End With
End Sub


このマクロは、系列のデータが連続したセルにあることを前提にしています。

今回は、関数としての紹介なので、VBAの説明は省略します。


しかし、このマクロを実行すれば、

直ちにデータ範囲も変更されますし、系列が増えても、このマクロは変更が必要ありません。



同じテーマ「エクセル関数応用」の記事

誕生日一覧から、指定誕生月の人を全員取り出す
徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)
グラフのデータ範囲を可変にする
セルの個数を数える関数
【奥義】大量データでの高速VLOOKUP
数値を時刻に変換
関数のネスト方法
ワイルドカードが使える関数
グラフで特定の横軸の色を変更し基準線を引く
OFFSET関数 解説・応用・使用例


新着記事NEW ・・・新着記事一覧を見る

第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方 |生成AI活用研究(2025-05-20)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する! |生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
Geminiと100本ノック 23本目:シート構成の一致確認|生成AI活用研究(5月16日)
AIが問う出版の未来は淘汰か進化か:AIと書籍の共存の道とは|生成AI活用研究(2025-05-16)
Geminiと100本ノック 22本目:FizzBuzz発展問題|生成AI活用研究(5月15日)
すぐに使える!生成AI プロンプト作成 実践ガイド|生成AI活用研究(2025-05-15)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ