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

Excel関数の解説、関数サンプルと高等テクニック
最終更新日: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 ・・・新着記事一覧を見る

SQL関数と演算子|SQL入門(12月1日)
データの取得:集約集計、並べ替え(DISTINKT,GROUP BY,ORDER BY)|SQL入門(11月30日)
データの取得:条件指定(SELECT,WHERE)|SQL入門(11月29日)
データの挿入:バルクインサート|SQL入門(11月28日)
データの挿入(INSERT)と全削除|SQL入門(11月26日)
テーブル名変更と列追加(ALTER TABLE)とテーブル自動作成|SQL入門(11月25日)
テーブルの作成/削除(CREATE TABLE,DROP TABLE)|SQL入門(11月24日)
データベースに接続/切断|SQL入門(11月23日)
SQLiteのインストール|SQL入門(11月22日)
SQL入門:VBAでデータベースを使う|エクセルの神髄(11月22日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.マクロって何?VBAって何?|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ひらがな⇔カタカナの変換|エクセル基本操作



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

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


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



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