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

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

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

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

解決済

3回答

10084閲覧

Excelで複数データのグラフ、連続生成

U.s

総合スコア11

VBA

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2017/06/13 09:05

編集2017/06/14 08:24

イメージ説明

添付画像のように、データがA列に数千個羅列しています。
このデータを上から14個づつ画像右のような折れ線グラフ折れ線グラフを作成したいと考えています。

何か、最適な方法はないでしょうか。
ご回答よろしくお願いします。

環境
OS:windows7
Excel:2010

OR

os:macOS 10.12.5
Excel:Office 365 15.22

---------追記①---------------
VBA未経験ですので、見よう見まねで以下のように作成してみましたが、
"Next に対応する For がありません。"というエラーが発生します。
どう解決すればよろしいでしょうか。

VBA

1Sub Macro1() 2' 3' Macro1 Macro 4' 5' 6 7maxRow = Cells(Rows.Count, 1).End(xlUp).Row '最下行読み取り 8dataNum = 14 '14個ずつ 9 10For i = 1 To maxRow Step 14 11 12 13 Range(Cells(1, i), Cells(1, i + 14)).Select 14 ActiveSheet.Shapes.AddChart.Select 15 ActiveChart.ChartType = xlLine 16 'ActiveChart.SetSourceData Source:=Worksheets("updown").Range(Cells(i, 1), Cells(i + 13, 1)), PlotBy:=xlRows 17 With Sheets("updown") 18 ActiveChart.SetSourceData Source:=Range(.Cells(i, 1), .Cells(i + 13, 1)) 19 20 End With 21 22 Next 23 24 25End Sub 26

---------追記②---------------
End Withの追加で動きました。ありがとうございます。
が、思うようにはいきませんね...
初めて使う言語?ですので、試行錯誤やってみます。

1枚目の画像のようなグラフを生成したいのですが、2枚目のようになってしまいます。

VBA処理

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

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

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

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

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

guest

回答3

0

Withに対応するEnd Withが無いからだと思います。
Nextの前に差し込んでみてください。

投稿2017/06/14 07:56

koizumi

総合スコア230

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

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

U.s

2017/06/14 08:25

ありがとうございました。何とか動きました。しかし、必要な結果ではないので、まだまだ工夫が必要そうです。
guest

0

別シートにダミーの14個の値でグラフを作っておいて、それをテンプレートシートとする方法とかどうでしょう?
VBAでテンプレートシートの複製と、元データシートのA列から14個ずつ値を取り出してコピー先シートのA列と値を差し替える作業をループで回せばグラフを量産できます。
それと、予めテンプレートシートのグラフをカスタムしておけば、最終的に一個一個グラフを直す作業もなくなります。

投稿2017/06/13 11:03

oskbt

総合スコア1895

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

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

0

ベストアンサー

マクロを使います

・「マクロの記録」を使い、1~14を選択してグラフを作成するマクロを記録
・記録されたマクロをループ処理で括り、Rangeを変化(1~14の次は+14して15~28となっていくイメージ)させて連続作成する

単にこれだけだと全てのグラフが同じ場所に重なって作成されてしまうので
・グラフ生成後に少し位置をずらす
・タイトル名にデータ範囲を入れる

など、用途に応じて適当に工夫されてはいかがでしょうか

ただ・・・数千データを14個単位で、ということは仮に千データでもグラフが70個以上作成されます
数千なら百単位のグラフになると予想されます
その数のグラフを作ったことがないのでわかりませんが、ちょっとリソースが心配ですね

投稿2017/06/13 09:23

takito

総合スコア3111

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

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

U.s

2017/06/14 06:20

マクロを使って作成してみました。確認していただけると幸いです。
koizumi

2017/06/15 01:48

グラフのX軸とY軸を変えてみてはどうですか? 1時系列に14の点が存在しているので、見えてないだけのような気がします。
takito

2017/06/16 00:35

Range(Cells(1, i), Cells(1, i + 14)).Select この部分が間違ってますね これだと、横方向の連続セルになってしまいます 縦方向に14個取りたいので Range(Cells(i, 1), Cells(i + 14 - 1, 1)).Select としてみてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問