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

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 ・・・新着記事一覧を見る

import文(パッケージ・モジュールのインポート)|Python入門(9月24日)
例外処理(try文)とexception一覧|Python入門(9月23日)
リスト内包表記|Python入門(9月22日)
Pythonの引数は参照渡しだが・・・|Python入門(9月21日)
lambda(ラムダ式、無名関数)と三項演算子|Python入門(9月20日)
関数内関数(関数のネスト)とスコープ|Python入門(9月18日)
関数の定義(def文)と引数|Python入門(9月18日)
組み込み関数一覧|Python入門(9月17日)
辞書(dict型)|Python入門(9月16日)
入力規則への貼り付けを禁止する|VBA技術解説(9月16日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




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


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



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