• 締切済み

Excel グラフのコピーについて

VBAでグラフシートをコピーして新しくデータを貼り付けたのですが、グラフ側のデータ範囲がぜんぜん違う所になってエラーになります。データ貼り付け範囲はコピー元と同じ範囲です。(件数は可変) データ範囲までコピーするためにはどうすればよいのでしょうか。 シートのコピー方法は、  Sheet("Sheet1").Select  Sheet("Sheet1").Copy Before:=Sheet(2) です。 グラフシートにはボタンマクロを配置して、そのボタンを押すと、データを範囲(件数)を求めて グラフを再作成するようにしています。ところが、上記コピーですとコピー後ボタンを押すと、 「実行時エラー'1004'; Series クラスの XValues プロパティを設定出来ません」 とエラーが出ます。 よろしくお願いします。

みんなの回答

  • ap_2
  • ベストアンサー率64% (70/109)
回答No.1

ぅーん…イマイチ状況が分らないです(--; ボタンマクロのエラーなら、コピーは問題ないのでは…? XValue=グラフのX値が設定できないのは、「グラフを再作成」する際のデータ参照範囲がマズそうです。コピー後のみエラーになるのは、シート名などの変化に対応できていないことに起因するからかと。 ちなみに、エラー発生時に「デバッグ」ボタンを押すと、問題発生時の変数の中身などを確認できます。ローカルウィンドウを開けば、オブジェクトの中身まで細かくチェックできます。F8キーを押せば、1行ずつ実行することも可能。VBEは高機能で便利なので、いろいろ使ってみてください。

関連するQ&A

  • エクセルでのグラフコピー

    5シート構成のブックのうち4シート目にグラフがあります。このグラフの元データは5シート目にあります。この2シート(4,5シート目)をCOPY(シートを選択してCOPYをつくるでbook1へCOPYして別名保存)して公開データにするマクロをおぼえさせたのですが グラフのデータが 元のブック(5シート構成)のデータを参照する形になってしまいます。元データもコピーしているのにbook1の2シート目のデータを使わない。 手動で元データを修正することはできますが マクロでするには元データを再設定してやるしかないのですか?  

  • エクセルで複数のグラフを描くには?

    エクセルで折れ線グラフを描いてますが、1シートにたくさんデータ表が有り、それぞれ同じグラフを書きます。その場合、系列がたくさんあるため、1個づつグラフを書くのが大変です。そこで、グラフをコピー・貼り付けで、データ範囲を変更したのですが、系列の名前と項目軸ラベルの表示がエラーとなります。たくさんあるデータに対して同じグラフを書く場合、2個目からは簡単に描く方法はありませんか? 教えてください。

  • グラフ可変範囲のデータ設定

    環境Excel2002です グラフ 1が棒グラフ2個、折れ線グラフ1個で作成されています Sheets("支社")に8支社のデータがあります グラフシートは1Sheetにしたいので グラフシートで支社を選択することにより Sheets("支社")の該当支社のグラフデータを取得します そうすると、グラフデータは可変範囲で設定することになります そのVBAが下記です ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection(1).Select With ActiveChart.SeriesCollection(1) .XValues = Sheets("支社").Range(Cells(497, i), Cells(497, i + 12)) .Values = Sheets("支社").Range(Cells(497, i + 1), Cells(497, i + 12)) End With .XValues = Sheets("支社").Range(Cells(497, i), Cells(497, i + 12)) のところで実行時エラー1004がでてしまいます エラー回避方法を教えてください

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

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

  • エクセルVBAでコピーしたグラフについて

    別シートからグラフをコピーして新シートにはりつけました 元データの範囲を1行下を参照するようにマクロで作成したいのですが。。。 =SERIES(系列名,Xの値,Yの値,系列番号) の系列名とYの値を一行下の範囲を参照したいのです。 グラフから下のようにデーター範囲を取得し、一行下の行のデータ範囲に変えてグラフを変更したいです。  ActiveChart.SeriesCollection(1).Formula = _ "=SERIES(元データ!$B$19,元データ!$C$3:$DI$3,元データ!$C19:$DI19,1)"                     ↓ このようにしたいのですが1回ごとに19を20に打ち直さずにマクロ                       でしたいのです ActiveChart.SeriesCollection(1).Formula = _ "=SERIES(元データ!$B$20,元データ!$C$3:$DI$3,元データ!$C20:$DI20,1)" ループさせて 19を20につぎは20を21に・・・・・最終的には59を60行を参照するように 取得して変換していきたいのです 書き方が悪くて申し訳ありません。 どなたかわかるかた大至急教えてください。宜しくお願いいたします。

  • EXCELでコピーしたグラフのデータ範囲変更について

    EXCELでコピーしたグラフのデータ範囲変更について シートをコピー([ Ctrl ]キーを押しながらドラック&ドロップ)をした際 コピーしたシートのグラフのデータ範囲がコピー先のセルになりません。 毎回データ範囲を選択し直しているのですが、コピーしたシートのグラフデータ範囲がコピー先シートのセルに出来るような方法はあるのでしょうか? 是非、教えてください。宜しくお願いします。 ちなみに同じブックのシートをを別のPCで開いてシートのコピーをすると、グラフはちゃんとコピー先シートのデータを参照します。 パソコンの設定が悪いのでしょうか? よろしくお願いいたします。

  • EXCELでコピーしたグラフのデータ範囲変更について

    EXCELについて質問致します。 EXCELのシートをまるごとコピーして 違うシートへペーストした場合、ペーストしたグラフのデータ範囲はコピー元のセルになっていると思います。 同じ形式のデータをグラフ化するのに毎回データ範囲を選択し直しているのですが、ペーストしたグラフのデータ範囲がコピー先シートのセルに出来るような方法はあるのでしょうか? 是非、教えてください。宜しくお願いします。

  • Excelで、VBAを用いてのグラフ作成。1日ごとの範囲でグラフシート

    Excelで、VBAを用いてのグラフ作成。1日ごとの範囲でグラフシートを作成。それぞれのグラフのX軸の範囲を、グラフタイトル名とグラフシート名に設定したい。(使用環境 : Excel 2004 Mac 日本語版) Excel VBAに関して質問します。グラフの元になる「表1」シートには、次のように1分間隔でデータが入力されています。 #######ここから####### 日時 系列A 系列B 2010/3/1 12:00 0 5 2010/3/1 12:01 1 2 2010/3/1 12:02 1 5 2010/3/1 12:03 5 5 (中略) 2010/3/31 11:57 2 1 2010/3/31 11:58 5 1 2010/3/31 11:59 3 1 2010/3/31 12:00 5 100 #######ここまで####### この表を、2010年3月1日から2010年3月31日までの、1日ごとのグラフにしようと思います。 私は初め、「日時」セルから、最後の「100」セルまでを選択し、グラフウィザードからグラフシートを作成しました。このグラフシートを、すべてのグラフシートの大本になるグラフシートとして、「おおもと」と名付けました。 そうして次のVBAプログラムを書きました。 #######ここから####### Option Explicit Sub Macro1() ' ' Macro1 Macro '3月1日分 Sheets("おおもと").Select Sheets("おおもと").Copy Before:=Sheets(1) ActiveChart.Axes(xlCategory).Select With ActiveChart.Axes(xlCategory) .MinimumScale = #2010/3/1 12:00# .MaximumScale = #2010/3/2 12:00# .MinorUnit = 0.0416666667 .MajorUnit = 0.125 End With ActiveChart.Deselect '3月2日分 Sheets("おおもと").Select Sheets("おおもと").Copy Before:=Sheets(1) ActiveChart.Axes(xlCategory).Select With ActiveChart.Axes(xlCategory) .MinimumScale = #2010/3/2 12:00# .MaximumScale = #2010/3/3 12:00# .MinorUnit = 0.0416666667 .MajorUnit = 0.125 End With ActiveChart.Deselect (中略) '3月30日分 Sheets("おおもと").Select Sheets("おおもと").Copy Before:=Sheets(1) ActiveChart.Axes(xlCategory).Select With ActiveChart.Axes(xlCategory) .MinimumScale = #2010/3/30 12:00# .MaximumScale = #2010/3/31 12:00# .MinorUnit = 0.0416666667 .MajorUnit = 0.125 End With ActiveChart.Deselect End Sub #######ここまで####### 上記のVBAプログラムを実行し、一応グラフは描けたのですが、作成したそれぞれのグラフシートのシート名とグラフタイトル名が、それぞれのグラフの日時の範囲を反映したものとなっておらず、一見してどの日時範囲をグラフ化したものか読み取れず、難儀しています。 そこで、3月1日分から3月30日分までのグラフシートとグラフタイトル名を、それぞれの日付の範囲に即した物(たとえば3月1日分のグラフシートは、グラフシート名が「3月1日」、グラフタイトル名が「3月1日」)になる、VBAの書き方を教えて貰えないでしょうか。 長々とした質問ですが、どうぞ、よろしくお願いします。

  • エクセルシートコピーでグラフ元データー範囲もコピーしたい

    エクセルで記入専用シートを作成しました。 このシートを他のエクセルファイルシートにコピーしたいのですが、 グラフの元データーがコピー元の範囲になってしまします。 コピーしたシートにグラフ範囲をしたいのですが良い方法がありませんか? エクセル2000を使用しています。 よろしくお願いします。

  • エクセル2007 グラフ 貼り付け

    現在、エクセル2007でグラフを作成し、データ範囲と グラフは同一シート内です、そのまま別シートに貼り付けし 他データ及びグラフを作成したいのですが。 貼り付けると、グラフが図形式で貼り付けになり データを入力してもグラフに反映されません よい方法あればお願いいたします

専門家に質問してみよう