質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

10561閲覧

【エクセルマクロ】各シートからデーターをひっぱってグラフを重ねたいです。

macro-beginner

総合スコア25

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/01/26 07:30

できている事
まず"DATA"シートのH1から数値を取得して、その数値分シートを作成し、シート名をB2から下へ順に文字列を取得しそれぞれ変更していきます。
次にH1に記入した数値分C2から下へと記入してあるパス先からブックを開いていき、コピーしてB列にある文字列と同じシート名のシートに貼り付けていきます。
ここまではマクロで完成しています。

やりたい事
"Grapf"シートにて、"G-T"というボタンを押したら各シートから"A1014:A3014, B1014:B3014"をデーター範囲を取得して散布図のひとつのグラフにまとめたいです。

![イメージ説明

イメージ説明

完成系は下図のようにしたいです。
イメージ説明

Sub GrapfGT() Dim op As Workbook, slt As String, i As Integer, slt1 As String Dim cht As ChartObject Dim rng As Range Set op = Workbooks("CAB-Grapf.xls") slt = op.Worksheets("DATA").Range("H1").Value slt1 = op.Worksheets("DATA") Application.ScreenUpdating = False 'グラフ作成 Set cht = ActiveSheet.ChartObjects.Add(100, 100, 600, 200) cht.Chart.ChartType = xlXYScatterSmooth 'データ取得ループ>"Grapf"シートから"DATA"シートへ移行してH1セルの数値を取得。 For i = 1 To slt If i > 10 Then MsgBox "データーがそんなにないよ(V)o¥o(V)" Exit For End If 'データ範囲の取得>"DATA"のB列からシート名を取得し、その名前のシート先で("A1014:A3014, B1014:B3014")のデータ範囲を取得 Set rng = Sheets(slt1.Range("B" & i + 1).Value).Range("A1014:A3014, B1014:B3014") 'グラフにデータソースを設定 cht.Chart.SetSourceData Source:=rng Next End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

できました。できました。

投稿2017/01/30 08:33

macro-beginner

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問