• ベストアンサー

複数のブックのデータを集めて、グラフを書きたいです

Book1、Book2には、異なる行列のデータがあります この2つのブックのデータを参照してグラフを書くマクロをVBAで組んでいます Book1,Book2のシートをそれぞれグラフに書くところまでは出来ました 質問1. Book1のA1~An(Aのセルすべて)を、Book2の指定のセル(例えばC1~Cn)に コピーしたい 質問2. Book2のセルB1~B100のデータと Book1からコピーしたC1~C300のデータを 同じグラフ上にプロットしたい AのセルをX軸のデータとして使用する 宜しくお願いします

  • joqr
  • お礼率92% (77/83)

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

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.2

VBAはどのBookにあって、 >Book1のA1~An(Aのセルすべて)を、Book2の指定のセル(例えばC1~Cn)にコピーしたい というのはBook1のどのシートとBook2のどのシートで、どんなグラフをどのシートに書くのか、具体的な情報が不足してるので、例えばです。 C:\Book1.xlsのSheet1のA列のデータを、このVBAのあるBookのSheet1のC列にコピーする。 このVBAのあるBookのSheet1のA:B列にはあらかじめデータがある。 つまりこのVBAがあるBookが質問のBook2だった場合です。 Sub sample1() Dim book1 As Workbook Dim sheet1 As Worksheet Set book1 = Workbooks.Open("C:\Book1.xls") 'Book1を開く Set sheet1 = book1.Sheets("Sheet1") 'Book1のデータがあるシート ThisWorkbook.Sheets("Sheet1").Columns("C").Value = sheet1.Columns("A").Value 'このBookのSheet1のC列に、Book1のSheet1のA列の値をコピー book1.Close False 'Book1を保存せずに閉じる End Sub Sheet1のA:C列にデータがある場合で、A列の値がX軸でB列とC列の値がY軸の折れ線グラフです。 1行目はデータです。 Sub sample2() Dim dataSheet As Worksheet Dim c As Chart Set dataSheet = Sheets("Sheet1") 'データがあるシート Set c = Charts.Add 'グラフ追加 c.ChartType = xlLine '折れ線グラフ c.SetSourceData Source:=dataSheet.Range("B1:C30"), PlotBy:=xlColumns 'B列とC列がデータ c.SeriesCollection(1).XValues = dataSheet.Range("A1:A300") '横軸をA列に設定 c.Location Where:=xlLocationAsObject, Name:=dataSheet.Name 'グラフをデータのあるシートに移動 End Sub 実際は1行目が見出しかどうかとか、何グラフがほしいか具体的なことがわからないと、なんとも答えようがないと思います。

joqr
質問者

お礼

ヒントをありがとうございました NewSeriesで片付いてしまいました

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

エクセルのグラフは、1つのシートに、望みのグラフに適した形式(行と列、系列)で作らないと、Book1の何処から、Book2のあそこから、といってみても何もなりません。 ーー まず手作業でデータをシートに(架空のデータで良い)つくり並べてみて、それを挿入ーグラフーグラフの種類ー以下グラフの設定操作でやってみて、意図どおりの形が出来上がってから、そのデータ例をこの質問文に挙げて、さてどうVBAのプログラムを組んだら良いでしょうと聞くもんだ。できれば自分でやれるとこまでやってみる。 1シートにあるデータでも、意図どおりのグラフの書き方操作もわかってない状態ではないのか。 まずそれを勉強するのが先だ。 あとはマクロの記録が、グラフの場合良く取れるので、マクロの記録を採って、勉強するのだ。 其れでグラフを描く部分はVBAコード化は比較的心配はいらない。 ーー そして上記でシートに作ったデータを作るには、2ブックを巻き込んだ、どういうコードになるのか考えるのが順序だ。 ーー 基本的なことは、グラフの系列の考えに合うようなデータの並べ方のデータを作れば良いのだが、C1~C300なんていわずにC1-C5ぐらいの データ例でもあげて質問するもんだ。

joqr
質問者

お礼

まぁ、そうですね

関連するQ&A

  • エクセル グラフはあるけれどデータがないBOOKにおいて、データを抽出することは出来ますか?

    BOOK1にあるデータでBOOK1にグラフを書き、そのグラフをコピーして BOOK2に貼り付けた場合において、 BOOK1を削除しても、BOOK2にはグラフが残っていますよね。 このBOOK2にはグラフしかありませんが、グラフの元のデータを 取り出す方法はないでしょうか?

  • 複数のBookから決まったセルの値を別のBookに

    お世話になります。 EXCELで複数のBOOKから決められたセルにある値を抽出してひとつのBOOKに纏めたいのです。 BOOK1~50、 BOOKには31枚のSheetがあります。 その中のSeet31にSeet1~30のデーターを纏めてあります。 Seet31の A1~3 B1~2 C1~3 のデーターを抽出して 新しく作ったBook【集計】のSeet1にBook1~50から抽出した データーを縦に並べたいのです。 【 例 】   A1 A2 A3 B1 B2 C1 C2 C3 1  5  2  4  3  6  7  1  3 2  2  3  4  6  9  7  5  2 3  7  8  5  6  2  3  1  8 と、いった感じです。 なお、Book名は『漢字+数字』です。 宜しくお願いします。

  • 別のブックからコピーしてきたグラフで、元のデータは新しいブックのものを使いたい

    別のブック(A)からコピーしてきたグラフで、元のデータは新しいブック(B)のものを使いたいのです。お知恵を拝借願います。XPでExcel2003です。 具体的には、日報のように、1日ごとに項目は同じ別のブックを作っている場合です。1つのブックは「元データシート」と「日報グラフ」で成り立っています。グラフは数種に渡り、系列も各グラフに10ずつと、多いです。 ブックAで新しい種類のグラフを追加したので、既存のブックB、C、・・・(30くらいのファイル)にも同じグラフを追加したいのですが、AからグラフだけをコピーしてBに貼り付け(形式を選択して貼り付けはできない)すると、 Bのグラフの元のデータは「=’[A]日報グラフ’E11:E1000」(例えばE列の場合)となってしまいます。 これをただの「=’日報グラフ’E11:E1000」にさせることはできませんか?? つまり、コピー元のAを参照したくなく、貼り付け先の同じブックのデータを仕様したいのです。 「グラフの体裁と範囲指定だけを流用したい」という考え方でもかまいません。 過去にも同じような悩みを持つ質問者がいたようですが、未解決のようですので、わかる方、お願いします。 (元のデータを1つずつ修正していくのは大変です。)

  • 複数のブックから特定データ群を新ブックにまとめたい

    こんにちは。 EXCEL2007について、ご教示ください。 EXCEL2007で、複数ブック内の特定シート上にある特定のデータ(複数) を特定ブックにまとめたいのですが、うまくできずに悩んでいます。 <やりたいこと>  ・参照元は特定フォルダ内にある全ファイルが対象(100程度)  ・ブック内の特定シートが対象(シート名は  ・コピー   (1) 元シートのA4~F4セル(セル結合されています)のデータを、     先シートのB2セルへコピー   (2) 元シートのG4~L4(セル結合)のデータを、先シートのC2セル     へコピー   (3) 元シートのG6~R6セルのデータを、先シートのE2セルへコピー  ・コピー2   次ブックを読み込み、1行下(B3、C3、E3)にコピーする。  ・コピー3   以降1行下にコピーし、ファイルが無くなるまで繰り返す。 以上ですが、マクロでできるように教えていただけないでしょうか。 よろしくお願いいたします。

  • エクセルで複数のブックの1つのセルを複数でコントロールする方法

    エクセルで複数のブックの1つのセルを複数でコントロールする方法 こんなことは可能でしょうか? たとえば、 Book.A、Book.B,Book.Cの3つのBookがあります。 それぞれの"A1"セルは、可変数値でBook.A、Book.B,Book.Cのそれぞれから変えることができる。 一般的には、「Book.Aを変えるとBook.B,Book.Cがリンクしている」というものなのですが、 Book.BからでもBook.Cからでも変えることができる方法を知りたいのです。 共有ブックという方法以外でお願いします。

  • Book間のデータ転記を自動化したい

    Book A からBook Bへ毎日データをコピーしています、これを自動化できないでしょうか? Book A      A    B    C    D 1 会社名1  data11 data12 data13 2 会社名2  data21 data22 data23 3 会社名3  data31 data32 data33 Book B     A    B    C    D 1 日付1  data11 data12 data13 2 日付2  data14 data15 data16 3 日付3  data17 data18 data19 Book A は1日につき1ファイルづつ毎日増えていきます会社数は日によって違いますが大体40~50くらですデータ数は1行につき15個で一定です。 Book B は会社ごとにシートが作ってありBook Bの中に約35シート入っています。 少し説明がわかりにくいかもしれませんが、やりたいことは毎日Book Aというファイルを渡されるのでその中から主な会社35社のデータを会社別に日付順にしたいのでBook Bへ手作業でコピーしています、毎日のことなので結構大変です自動でコピーできないでしょうか? それとも何か別の方法でもっとスマートに処理できますか?

  • 複数のブックを簡単にひとつにまとめるには?

    複数のBOOKの中のシートを別のBOOKに簡単にまとめることは出来ないでしょうか? 例えば、BOOK1にA,B,C。BOOK2にD,E,F。BOOK3にG,H,I。と言うシートが各3枚あるとします。これをひとつBOOKを開いては移動、をくり返すのではなく簡単に1度の操作でA,B,C,D,E,F,Gのシートを持つひとつのBOOKにする方法がないでしょうか? もし、良い方法をご存じの方がいらっしゃいましたらお願いします。

  • bookからbookへの数式のコピーについて教えてください

    bookからbookへの数式のコピーについて ??BookのSheet1のセルにSheet2を参照にした数式が入っています =2+Sheet2!$A8 これを!!BookのSheet1のセルにコピーすると =2+[Book1.xls]Sheet2!$A8 こうなりました コピーしたセルは11,475セルあります [Book1.xls]をすべて消したいのですが、簡単な方法はありますか?

  • エクセル ブック間で同一データのチェックしたいのですが・・

    請求書のフォームのようなものを作成しています。 book1にはA列:IDNO. B列:商品名 C列:金額・・・などとデータが保存されています。件数が2000ちかくあります。 book2で、請求明細のようなものを作りたく、Vlookupを使い、IDNO.を打ち込むとbook1にある、データが反映されるようになりました。 そこで、教えていただきたいのですが。・・ book2でIDNO.を入力したときに 同一の book1データ内にあるIDNO.の となりの(B列:商品名)セルに、色をつけることは出来ますでしょうか?   質問がわかりづらくてごめんなさい。ぜひ教えてください。m(__)m

  • エクセル(VBA)のブック間でのコピーペーストについて

    こんにちは。VBA入門レベルのものですが、質問させてください。 ブックAとブックBを開いた状態にし、 ・ブックA⇒VBAを組む&データ貼付け先 ・ブックB⇒データコピー元 ブックBの特定セル(例:D10)からブックAの特定セル(例:E12)にコピー⇒貼付 する方法を探しています。 なお、ブックBは、ブック名とシート名が都度変わるので、「ブックAではない方の開いているエクセルファイルからデータをコピーし、ブックAに貼付ける」の構文にしたいです。 また、コピペの他に数式(イコール)で飛ぶ方式でもかまいません。 この内容でのVBAの記述方法が分かる方、どなたか教えて頂けますでしょうか。 すみませんがよろしくお願いいたします。 ※エクセル2003です。

専門家に質問してみよう