• ベストアンサー

Excelの範囲可変グラフ

akiramax19の回答

回答No.2

コメントアウト文が汚かったので際回答させていただきます。 すでにグラフが存在しており、グラフに出力する範囲のみを変更する 場合について説明します。 例として、セルA1に開始位置、セルA2に終了位置を入力するとします。 (開始位置に4、終了位置に10を入力するとします。) 以下にマクロを示します。 あとはこのマクロを起動するボタンなどを御自分で設定すれば使用しやすくなります。 -------------以下マクロ------------------- Sub Macro1() 開始位置 = Range("A1") 'A1に入力されている値を取得 終了位置 = Range("A2") 'A2に入力されている値を取得 '範囲の設定 '「A4:A10」の形に変換。trim(Str())はStr()で数字を文字列に変換し、trim()で空白部分を削除しています 範囲 = "A" + Trim(Str(開始位置)) + ":" + "A" + Trim(Str(終了位置)) 'グラフ 1というグラフの範囲を変更するとします。 'グラフの名前がわからない場合は、グラフを選択して、右クリック、グラフウインドウをクリックすればグラフ名が表示されます。 '例Sheet1 グラフ 1  ←この「グラフ 1」がグラフ名 ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.ChartArea.Select '現在作業中のシート名と範囲を指定 'シート名Sheet1の場合 ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(範囲), PlotBy _ :=xlColumns End Sub

campus
質問者

お礼

MATCH関数をマクロの中に入れるやりかたが分からなかったので、 一端、他のセルに普通のMATCH関数で該当する行番号を表示させ、 そのセルをマクロで読み込んで、範囲指定するよう書き換えることで、 期待通りのグラフを作ることが出来ました。 どうもありがとうございました。感謝です。

campus
質問者

補足

早速の回答ありがとうございます。 初心者にも分かり易い細かい説明、非常に助かります。 難しい構文だけが羅列された回答が来たらどうしようと思ってました。 一応、思った感じで動作しました。 が・・ 説明不足だったせいか、意図した内容とちょっと違います。。 頂いた内容を元に補足させて頂きます。 >「A4:A10」の形に変換 開始位置、終了位置で指定するパラメータ(4や10)は、 A列に入ってる時間情報(文字列 1,2,3,..)のことで、 その情報から、Excelのセル座標(行座標)を求めグラフ化したかったです。 なので、 開始位置に4、終了位置に10と指定すると、 範囲として指定したいのは、A4,A10ではなく、 4という文字列(時間値)の入ってる行座標と、 10という文字列(時間値)の入ってる行座標で構成されるグラフです。 A列の時間情報(1,2,3,4,..)がA5セルから始まってるとすると、 1=A5、2=A6、3=A7、4=A8なので、 開始位置パラメータ=4から求められるのは、A8を期待します。 同様に、終了位置パラメータ=10から求められるのは、A14を期待します。 また、グラフ化したいのは、その求めたA8とA14の間で構成されるグラフなので、 グラフの範囲は、A8:A14ではなく、例えば列がCまであった場合は、 グラフの範囲は、A8:C14を期待しています。 >3と8なので、グラフの範囲としては、A7:B12。 >(実際には、列はもっと多いですが) すみません、よろしくお願い致します。 具体的には、 横軸に時間軸、縦軸に複数の系列の累計の棒グラフとした場合、 ある時刻の間だけを抜き出して表示したい。というモノです。

関連するQ&A

  • グラフの範囲指定をVBAで可変にしたい

    1シートに複数のグラフがあり、値を入れて完成させているファイルがあります。 データ範囲が毎回違うため、いちいちグラフを選択し、範囲を変更しています。 系列:行 データ範囲:A列から~H列までだったり、A列からJ列までだったりします データがH列までの場合はI列は値が入っていませんが、L列からまた他のグラフのデータ範囲になっているという形です。 データが始まる位置はすべて固定です。 シートにある複数のグラフを一度に変更したいのですが、どのようにしたら良いのでしょうか? (選択しているグラフのグラフ変更ではなく、選択していないものも変更したい) 以下のようなマクロを仮で組んでみたのですが、うまく動きません。 よろしくお願いします。 Sub グラフ範囲変更() Dim lastcolumn As Integer lastcolumn = Range("A2").End(xlToRight).Column ActiveChart.SetSourceData Source:=Range(Cells(1, 1), Cells(1, lastcolumn)) End Sub

  • エクセルのグラフ範囲を毎日かえてグラフをかく

    Sheet1に 列に日にち(A~AEまで31日分) 行には計算したデータがあります。 例) ?月1日ならば A1をグラフ範囲としてグラフを書き、 ?月2日ならば A1からB1をグラフ範囲としてグラフをかく といった感じで毎日 その日までをグラフ範囲として描きたいのですが 毎日毎日自分でグラフ範囲を指定するのは面倒なので 自動的にグラフ範囲を指定したいのです。 わかりにくい文章ですみません どなたか教えて下さいお願いします。

  • Excel関数で列方向データの可変範囲グラフ作成

    こんにちは Excel2010を使用しています 関数にて行方向の可変範囲グラフの作り方サイトを参考にして列方向のデータを可変範囲グラフに しようとしているんですが、うまく作成出来ません。 下記のような列のデータを可変範囲グラフにするにはどうしたらよろしいでしょうか。 A B C D E 1 item a b c d 2 date 1 2 3 4 すみませんが、よろしくお願いいたします。

  • [excel2007]可変範囲のグラフを含むシートのコピーについて

    [excel2007]可変範囲のグラフを含むシートのコピーについて ・やりたいこと 可変範囲を参照するグラフをシート内に作成し、 そのシートを複数コピーして、可変範囲を参照するグラフのまま利用したい。 ・現状 以下のサイトを参考に、可変範囲のグラフをシート内に作成しました。 http://www2.odn.ne.jp/excel/waza/graph.html#SEC13 しかしこのシートをコピーすると、 名前"label","value"は新しいシートに複製されますが、 グラフの参照範囲はその名前でなく、固定値(新しいシートのA2:A5など)になってしまいます。 可変範囲のままシートをコピーしたいです。 (excel2003だと、そもそもコピー前のシートを参照するようですが) ・環境 excel2007 可変範囲のグラフの作成方法は、上記サイトの方法に限定はしていません。 何か良い方法をご存知でしたら、ご教授ください。 よろしくお願いいたします。

  • 自動可変グラフ作成

    おはようございます。  生産実績を下G7に日付け G87に合計を入力し、合計欄には 85行と86行をプラスしております。      G H I J・・・・・・・・ 7月日  3/1 3/2 3/4 3/5 ・・・・・・・・・3/18  ・  ・ 87 実績 100 90 102 103       103 このように実績表を作成し、別のシートに日付け(3/18)をあるセルに入力した場合、グラフ範囲を関数で3/1~3/18日まで期間を抽出させようと関数を調べておりましたら、 http://www2.odn.ne.jp/excel/waza/graph.html#SEC13のサイトに可変グラフ作成が掲載されており、横方向のデータで可変グラフを作成をしようとしましたが、式が複雑すぎてグラフ範囲が設定できませんと表示され3/13日以降の可変グラフが作成されません。  どのようにしたら宜しいのでしょうか?

  • Excelマクロ:折れ線グラフの行範囲を可変

    Excel2010を使用しています。 マクロを記録して折れ線グラフを作ろうとしていますが、マクロを記録出来ないところがあるらしくマクロを実行できません。 マクロを使用するのが初めてで、VBAは勉強中の為、自力での組み立てが出来そうにありません。 どうかお力を貸して頂けないでしょうか。 sheetによって行の数に違いが有る為、行のみを可変範囲設定出来ればと思っています。 1行目に系列が表示しており、2行目からはすべて数字となっています。 A列を横軸の目盛りで表示し、C・D・E列を折れ線グラフで表示し、B・F列はグラフには使用しません。 よろしくお願いします。

  • エクセル 範囲 最後

    エクセルの範囲選択について。 A2からB列の最後までを範囲指定したいです。 グラフのデータ選択のため。 =$A$2:B・・・(中途半端です よろしくお願いいたします。 A B ------------- 1| 54 75 2| -4 6 ・・・・ A2からB列の最後まで

  • EXCELでグラフのデータ範囲を自動化したい

    EXCELについて質問があります。 いまあるデータをグラフ化しようと思っているのですが、グラフのデータ範囲を自動で指定したいのです。 詳しく話しますと、A列に日付データ、B~Fに数値データが入っています。 なお、B~F列には他のシート(同一ファイル)のデータからVLOOKUPによって日付を検索値にて抜き出した数字が入っております。 そして、グラフ化するデータ範囲は一番古い日付から前日までのB~Fのデータになります。また、A列を項目軸ラベルとして使用します。自動化するのはこの、「前日まで」という部分です。 ちなみにA列には、2003年から2008年までの日付が予め入っています。 ですので、B~F列にはVLOOKUPで検索している関係で現在の日付以降の欄には最後に入力された日付のデータが下にずらずらと表示されています。 現在は手動でグラフの範囲の更新をしている為、未来の日付にデータが入っていることには支障はありません。もし、自動化するにあたって他の方法を用いてデータを抜き出した方がよいのであればその点も明記していただけますと助かります。 よろしくお願い致します。 ※データ詳細 ・4行目からデータが入っています。 ・A列には2003年3月31日から1日ずつ日付が入っています。 ・B~F列には数値データが入っており、B列はsheet2に元データがありA列に日付、E列に抜き出すデータが入っています。C列以降もsheet3,4…と元データが入っており、A列に日付がありますが、抜き出すデータはシートごとに列が違います。 ・元データの日付の開始日はシートによって異なります。(全て03/03/31からあるわけではないという意味です。) ・グラフ形式は積み上げ面です。B~Fの合計値の推移を見る為です。

  • エクセルのグラフ範囲を自動にしたい

    エクセルのグラフのデータ範囲が頻繁に変化する計算をしており、 そのたびにデータ範囲を指定し直して大変です。 グラフのデータ範囲を自動で設定できる方法はないでしょうか? マクロでも構いません。 ちなみに、グラフは ・単純な2本の折れ線グラフ ・データはXY値ともに縦に並んでいる。 ・このデータ量が、多くなったり、少なくなったり頻繁に変化する 以上、よろしくお願いいたします。

  • excelのグラフ 範囲可変の複数系列の指定

    Excelである表を元に、グラフを作成します。 元データは、月々データが増え、最新の36件についてグラフを作成します。 そこで、名前の定義で元データの範囲(offsetとCountaを使います)を指定するのですが、系列が8個あります。 各系列を8個の名前で定義すればいいのでしょうが、 元の表のグラフにする「範囲」に名前を定義して、グラフの各系列の参照データを、範囲の名前をつかって、指定することはできませんか? 系列1・・・”名前”の1行目 系列2・・・”名前”の2行目  ・  ・ という指定の方法はできますか? 同じようなグラフを数種類作成するため、1グラフの名前の定義数を減らして、すっきりさせたいのです。 ちなみに、今回は、マクロを利用できません。 よろしくお願いします。