エクセルのマクロで一気に線のグラフを作成する方法

このQ&Aのポイント
  • エクセルのマクロを使用して、線のグラフを一気に作成する方法について教えてください。
  • 具体的には、A列の289行がX軸となり、B列からIV列の289行がY軸となる線のグラフを255本作成する方法を知りたいです。
  • 手作業で一つずつ作るのは手間がかかるため、効率的にマクロを使って一気に作成する方法を教えてください。
回答を見る
  • ベストアンサー

マクロです。

マクロです。 エクセルのマクロ A列289行がX軸 B列~IV列289行がY軸 これを (A列、B列)・(A列、C列)・(A列、D列)・(A列、…IV列) というように、1枚のグラフシートに255本の線のグラフを書くプログラムではなく、 一本一本の線を1枚のグラフシートの書いてくれる プログラムを教えてください。 手でしていたら気がとおくなる作業なのでマクロで一気につくってくれるプログラムをもとめています。 お願いします。 補足 途中過程が手元にないのですが 結果はこのようにしたです。 とりあえず、(A列、B列)で普通に作ったやつです。 これを、255枚つくりたいです。 なお画像では、グラフシートではありません。 あとグラフタイプは散布図の平滑線でつないだマーカーなしです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

255個も作れないだろう...と思い、論より証拠でやってみましたが、データがとても少ないグラフシートなら、254個作れました。自動記録を手直ししたコードですが、#1とは別の切り口でやっています。 まず、Sheet1のA列と、B列で、ご希望のグラフをSheet1に作ります。このグラフをコピー&ペーストし、複製のグラフの系列を選択して、列を示す部分を変更した後、グラフの場所を新規グラフシートに変更するという操作を、ループを回して処理できる様にアレンジしたものが下記のコードです。(冗長なところは削っています)なお、当方xl2000です。 Sub test() Dim i As Long Const seriesFormula As String = "=SERIES(Sheet1!R1C2,Sheet1!R2C1:R289C1,Sheet1!R2C2:R289C2,1)" For i = 1 To 254 Sheets("Sheet1").Select ActiveSheet.ChartObjects(1).Activate ActiveChart.ChartArea.Copy Range("A1").Select 'これを削ったら、グラフ 1が消えてしまった ActiveSheet.Paste ActiveChart.SeriesCollection(1).Formula = Replace(seriesFormula, "C2", "C" & (i + 1)) ActiveChart.Location Where:=xlLocationAsNewSheet Next i End Sub しかしながら、グラフシートを沢山作ってみても、同時に見られる訳で無し、選択も厄介という事で、あまり意味が無いと思います。シート上のグラフで、とあるセルに列番号を入力すると、それに応じてグラフ書き直しといった姿の方が、実用的だと思います。

その他の回答 (1)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

メニューから「ツール - マクロ - 新しいマクロの記録」で、操作内容をマクロとして記録することができます。 まずは、(A列、B列)のグラフを手動で作って、その動作をマクロに記録してみましょう。 そして次に(A列、C列)で動揺のことをしてみましょう。 その2つの違いを見つければ、それ以降のグラフも、マクロ記録しないで、既に記録されたマクロを少し修正するだけで作れます。 そのやりかただと、マクロを255個作ることになります。 それを、変数と繰り返し構文を使うことによって、1個のまくろで255個のグラフを作ることができるようになります。 変数や繰り返し構文(ループ構文)は、基本なので、これを機に勉強しましょう。

関連するQ&A

  • excelのグラフ作成をマクロで

    excelのデータが多くてマクロで手っ取り早く処理したいのですが、どうすればよいのでしょうか? 初心者なもので。。。 A列をx軸にしてB列~P列をy軸にします。 1枚目がAとBでグラフを作成し、続いて2枚目としてAとCでグラフ作成し、同様にD・E・F・・・って作成したいです。 グラフは新しいシートを作成していきたいです。(計15枚だと思います。) で、そのシートの名前もつけたいです。 で、書式設定もマクロ上できたらうれしいです。 できないでしょうか? よろしくお願いします。

  • Excel2000マクロ

    お世話になっております。 マクロのことで教えてください(マクロ初心者です(^_^;)) A列・・日付 B列・・時刻 C列・・数値データ “時刻”が2秒おきのデータなので1分おきのデータを抽出したいので、D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、 B列がX軸でC列がY軸のグラフを作ります。 これをマクロで記録して自動的にやりたかったのです。 ですが、 「D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、・・」 のところは、うまくマクロで自動化できるのですが、 別シートに出来たグラフを見ると、一番最初に記録して作ったグラフがそのまんまできてしまいます。 次のデータでグラフをつくりたかったのですが。。 これはどうしてでしょう? グラフまではうまくできないのでしょうか?

  • マクロが止まってしまいます. (マクロ初心者です)

    ある2列のデータを選択して(例えばA1からB10まで) グラフウィザードを選択して散布図のグラフを作成する. 上記のようなマクロを作成したのですが, 作ったエクセルのファイル上ではちゃんと動いてくれるのですが 別のファイルで使うと 「実行エラー9 インデックスが有効範囲にありません」 と警告がでて途中で止まってしまいます. マクロ初心者でプログラムもわからないです. 保存先がよくないのでしょうか? それとも,もともとこのような作業(マクロを別のファイルで使用) はできないものなのでしょうか? よろしくお願いします. windows98 Excel2000

  • エクセル初心者です・・・。

    例えば、Aの列に1から100行目まで a,0.01,-0.01 b,0.02,-0.02 a,0.02,-0.02 b,0.03,-0.03 . . . と値がある場合、 1)0.01と-0.01、0.02と-0.02、・・・をそれぞれ B,Cの列に100行一気に分けたい場合、どのようにすれば良いか。 2)aからbまでを線で結ぶという作業を100行目まで50回繰り返し一気に行い、それを散布図として表すことは可能か? 宜しくお願いします。

  • エクセルのマクロについての質問です。

    エクセルのマクロについての質問です。 長文申し訳ございません。 Excelマクロが何度作り直してもうまく作動せず非常に困っております。 (1)ファイルAのシート1のDB列3行目に1の値をいれます。 (2)ファイルAのDC列172行目の値をファイルBのシート名が「1」のシートのD列4行目に入れます。 (3)ファイルAのDC列2733行目の値をファイルBのシート名が「1」のシートのD列6行目に入れます。 (4)ファイルAのDC列3128行目の値をファイルBのシート名が「1」のシートのD列7行目に入れます。 (5)ファイルAのシート1のDB列3行目に1.2の値をいれます。 (6)ファイルAのDC列172行目の値をファイルBのシート名が「1.2」のシートのD列4行目に入れます。 (7)ファイルAのDC列2733行目の値をファイルBのシート名が「1.2」のシートのD列6行目に入れます。 (8)ファイルAのDC列3128行目の値をファイルBのシート名が「1.2」のシートのD列7行目に入れます。 (9)以上のようにファイルAのシート1のDB列3行目に入れる値を0.2ずつ増やしていき、その値に対応したファイルBのシートに上記のように値を入れていくという動作を20まで繰り返す。 以上のようなマクロを作る事は可能でしょうか? マクロについて勉強はしているのですが上手く使いこなせず苦労しております。 長文の質問で大変申し訳ございませんがよろしければ皆さまのお知恵をお貸しください。 宜しくお願い致します。

  • EXCELマクロで順番にグラフをつくるには?

    エクセルマクロ・VBA初心者です。 現在、グラフ作成で困ってます。 お詳しい方、よければアドバイスを下さい! 作成したいグラフは、元データが5000行×50列で、 1番左列に時刻、2列目からデータとなっており、 1-2列、1-3列、1-4列、・・・・1-50列 という感じの一般的な時系列グラフを多量につくりたいのです。 これをマクロを使って、別シートにグラフ(散布図)を並べて作るというものです。 さらに、別に用意したグラフの名称を並べたセルから、 順に、上記グラフのタイトルとして入力していきたいのです。 これをVBAを使って行いたいのですが、 一体どうすればいいのでしょうか? 「マクロの記録」では、 ■「50列目まで順番にグラフをつくれ!」 ■「名前を順番に入れていけ!」 という命令が私には作れません。 お詳しい方、ご返答宜しくお願い致します。

  • エクセル マクロ グラフの追加

    (A列) (B列)(C列)(D列)(E列)      5/1 6/1 7/1 8/1 -10℃  100 150 200 250 20℃  110 160 210 260 50℃  120 170 220 270 -10℃  100 150 200 250 20℃  110 160 210 260 50℃  120 170 220 270 … 例えば、上記のようなデータで-10℃~50℃で1つのグラフを作成しています。 既に5/1~7/1のデータでグラフを書いており新たに入力された8/1のデータをマクロを使ってグラフに追加したいと考えています。 -10℃~50℃のデータは複数あり、別のシートに64個のグラフをまとめています。 (x軸:温度、y軸:抵抗) ActiveChart.SeriesCollectionを使って上手くできませんでしょうか? ご教授お願いします。

  • EXCEL2000 グラフをつくりたい(散布図)

    お世話に(かなり(笑))なっております、aimerです グラフをつくりたいんです。。。(散布図です) グラフの元データは下記のような感じです。 1行目にはタイトルがあります。 2行目から下記のようなデータがあります。 左からA列、B列です。C列にもデータがあります。 つまり、A列が日付、B列が時刻(1分ごと)で、C列に前記に対応したデータなわけです 2002/9/24  0:31:0 2002/9/24  0:32:0 2002/9/24  0:33:0 2002/9/24  0:34:0 2002/9/24  0:35:0 2002/9/24  0:36:0 2002/9/24  0:37:0 これについてグラフがつくりたいわけですが、 B列と、C列についてデータグラフがつくりたいのです。 なので、B列とC列を範囲選択してグラフウィザードでつくりました。 グラフウィザード-2/4-グラフのもとデータというダイヤログボックスの系列タブで、きちんとXの値は=Sheet4!$B$2:$B$541 で。Yの値は=Sheet4!$C$2:$C$541 。。となっているのです。ちゃんと選択されているのに、出てくるグラフは、Y軸は問題ないのですが、x軸にでてこなくてはいけないものは時刻なはずなのに、なぜか普通の数値?がでるのですたとえば 0 100 200 300 400 のようにです。 なにがわるいのでしょう?

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。