• 締切済み

表を自動で作成する方法を教えてください。

表を自動で作成する方法を教えてください。 エクセルでとあるモデルを作成しました。 それは二つの条件から複数の計算を経由して結果を出力するモデルです たとえば 数値Aと数値Bを入力すると、表に A B C(数値AとBに依存する複数の計算うを経由した結果) と出力されます。 これを表の縦軸にA横軸にBを様々なパターンの値にした表を作成して それぞれのAとBの値の組み合わせから計算された結果Cを、表に入れていきたいと考えています。 以下のようなものを想定しています。  B  B'  B'' A C C' C'' A’C'''C'''''  A'' このABの表から自動的に最初に構築した計算に反映して表を埋めていくような方法はありますでしょうか。 ご存知の方がいましたら教えていただきたいと思いまして質問させていただきました。 よろしくお願いいたします。

みんなの回答

  • soixante
  • ベストアンサー率32% (401/1245)
回答No.1

ちょっと質問文が分かりにくいですね。 どこに数値A、Bを入力するのか、「表」って何なのか。 また、AとBの取り得る値の全組み合わせによるCの結果をマトリクスにしたいのか、 繰り返し試行して得られる(A,B)の組み合わせとそれによるCの結果を継続的に記録していきたいのか、そのあたりも抽象的すぎてよく分かりませんでした。 マクロ使用ですかね。以下勝手な解釈で組んでみました。 ******************************************************************* シート1のA1セルにAを入力、A2セルにBを入力して、以下のマクロを実行。 そうしますと、シート2にあなたの書いた見本どおり、AとBの様々なパターンの一覧表が出来ます。 Cの計算過程は分かりませんので、以下はダミーで書いてあります(直角三角形の斜辺として) そのため、適切なものに書き換えてください。 For Next の r とc で回しているところです。そこの Cells(r,c) の計算部分のことです。 Sub ABshori() Dim r As Long, c As Long Dim EndRow As Long, EndColumn As Long Dim A As Double, B As Double Dim Ws1 As Worksheet, Ws2 As Worksheet Set Ws1 = Worksheets(1) Set Ws2 = Worksheets(2) A = Ws1.Cells(1, 1).Value B = Ws1.Cells(2, 1).Value Ws2.Select If Ws2.Cells(Rows.Count, 1).End(xlUp).Row = 1 Then    Ws2.Cells(2, 1).Value = A   Ws2.Cells(1, 2).Value = B   Ws2.Cells(2, 2).Value = Sqr(A ^ 2 + B ^ 2) Else   EndRow = Ws2.Cells(Rows.Count, 1).End(xlUp).Row + 1   EndColumn = Ws2.Cells(1, Columns.Count).End(xlToLeft).Column + 1   Ws2.Cells(EndRow, 1).Value = A   Ws2.Cells(1, EndColumn).Value = B End If For r = 2 To EndRow   For c = 2 To EndColumn     Cells(r, c).Value = Sqr(Cells(r, 1) ^ 2 + Cells(1, c) ^ 2)   Next c Next r Set Ws1 = Nothing Set Ws2 = Nothing End Sub

関連するQ&A

専門家に質問してみよう