アプリ版:「スタンプのみでお礼する」機能のリリースについて

Book1、Book2には、異なる行列のデータがあります
この2つのブックのデータを参照してグラフを書くマクロをVBAで組んでいます
Book1,Book2のシートをそれぞれグラフに書くところまでは出来ました

質問1.
Book1のA1~An(Aのセルすべて)を、Book2の指定のセル(例えばC1~Cn)に
コピーしたい

質問2.
Book2のセルB1~B100のデータと
Book1からコピーしたC1~C300のデータを
同じグラフ上にプロットしたい
AのセルをX軸のデータとして使用する

宜しくお願いします

A 回答 (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行目が見出しかどうかとか、何グラフがほしいか具体的なことがわからないと、なんとも答えようがないと思います。
    • good
    • 0
この回答へのお礼

ヒントをありがとうございました

NewSeriesで片付いてしまいました

お礼日時:2011/03/23 19:02

エクセルのグラフは、1つのシートに、望みのグラフに適した形式(行と列、系列)で作らないと、Book1の何処から、Book2のあそこから、といってみても何もなりません。


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

まぁ、そうですね

お礼日時:2011/03/23 18:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!