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

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

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

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

Q&A

4回答

1561閲覧

エクセル・VBA、マクロを用いて乱数再計算ごとの結果を一つのグラフにまとめて表示したい。

unoyu

総合スコア10

VBA

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

0グッド

1クリップ

投稿2018/12/26 17:37

前提・実現したいこと

エクセルでマクロを用いて以下の処理を行いたいです。
[現状]
Sheet1
A1:A100にRAND()で生成した乱数を入れています。

B1:B100に上記乱数を計算に組み込んだ数値が入っています。(例B2=30A2C2・・・)
1〜100を横軸にしたB1〜B100の線付き散布図を表示しています。
Sheet2
Sheet1のA1:A100を参照してA1:A100まで埋めています。
B1:B100に上記を組み込んだ数値が入っています。(例B2=10A2C2・・・)
1〜100を横軸にしたB1〜B100の線付き散布図を表示しています。
Sheer3以降はSheet2同様、Sheet4まであるとします。
[行いたい処理]
乱数を100回再計算させ、都度得られる線付き散布図を重ねて表示して一つのグラフとしたものをSheetごとに生成する。
その際、100回試行する一回ごとの乱数の値は各Sheetで共有し、異ならないようにする。

分かりにくい長文ですいません!不明な点はどんどん突っ込んでいただいて大丈夫です。
何卒よろしくお願いいたします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

一つのSheetに関してなら、100回の結果をまず作業スペースに表示させて、それから一つグラフを作って、残りをデータ系列として追加していくのかなーというイメージまでしかできていません・・・

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

seastar3

2018/12/26 20:35

C列のウェイトが分からないので縦軸の範囲が分かりませんが、例えば横軸100番まで縦軸0-1000等の範囲で400ドットが並んだ散布図グラフを100枚作りたいと言うことですね。 その各グラフは100個の独立したファイルに置いていくのでしょうか。それとも400枚のワークシートを並べて、各4の倍数番のシートに置いていくのでしょうか。 いずれにしろ、D列あたりに1番から100番までの連続番号を与えておかないと横軸に対応できないでしょう。(本来は左端が望ましい。)
seastar3

2018/12/26 20:49

sheet2からsheet4までの作成値をなぜsheet1の右の列に列記できないのでしょうか。 また、4つのグラフ及び全ドットのグラフを1つのシート上に表現してはいけないのでしょうか。
guest

回答4

0

シート1のA1:A100の値を更新
シート1の計算結果であるB1:B100をコピー
シート5に値として貼り付け
をシート5のA~CVまで100回繰り返すコードです。
これによりシート1の100回試行結果がシート5にありますので、
シート5のデータよりグラフを生成してください。

シート2→シート6等はご自分でソースを改変して作成してください。
申し訳ありませんがこのソースがさっぱりわからないようでしたら、
テラテイル向きの質問ではないかと思われます。(これ以上の回答は望めないかと思います)

また、「そうじゃなくて!」という場合は質問の内容を変更できますので、
"削除せず追記"にてさらなる説明をお願いいたします。

VBA

1 For o = 1 To 100 2 With Worksheets("Sheet1") 3 For i = 1 To 100 4 .Cells(i, 1).Value = Rnd 5 Next i 6 End With 7 With Worksheets("Sheet1") 8 .Range(.Cells(1, 2), .Cells(100, 2)).Copy 9 End With 10 With Worksheets("Sheet5") 11 .Range(.Cells(1, o), .Cells(100, o)).PasteSpecial Paste:=xlPasteValues 12 End With 13 Next o

投稿2019/01/05 04:31

shinobu_osaka

総合スコア456

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

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

0

んと、VBAを使う必要性がわかりません。

1回数式を仕込んでおけば、「F9]キー押下で再計算がなされ、
グラフもその都度結果を反映すると思います。
特定のセルを参照したければ、参照式を書くことができます。
めんどくさければ、コピーしてリンク貼り付けで、
参照式を貼り付けられます。

どの作業を自動化したいのですか?

投稿2019/01/05 02:44

mattuwan

総合スコア2136

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

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

0

2番目の追記依頼に書いた事に関して、1シートでよいのならば。新たなシートを追加し、ひな形である第1シートを複写しては再計算していく操作を100回繰り返せば、一連の思惑のグラフは手に入るでしょう。それならば同一のブック内のマクロで処理できるので、単純にできます。

投稿2018/12/26 20:55

seastar3

総合スコア2285

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

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

0

シンプルに別ファイルを100個作るのであれば、ひな形の0番ファイルを完成させます。そして、グラフ生成マクロのためのエクセルブックからこの0番ファイルを呼び出しては再計算し、各番号のファイル名を付けて別名保存します。これを100回繰り返せば、100枚のグラフが手に入ります。

投稿2018/12/26 20:41

seastar3

総合スコア2285

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問