自動的に数値を変えて結果を記録するマクロ

Pocket

Excelで複雑な計算をする場合、数値を少しずつ変えて入力し、その計算結果を記録する場合に、これを自動化するマクロです。
ゴールシークは「変化させるセル」の数値を変えて「数式入力セル」の数値が「目標値」になるまで自動的に実行する機能ですが、ここで紹介するマクロはこれに似ています。
「目標値」を探すのではなく、数値入力と計算結果を自動的に別のシート(ログ)に書き出します。

VBA

Sub 計算結果をログに記録()
    Const cell_input = "B2" '数値入力のセル(変化させるセル)
    Const cell_output = "E5" '計算結果のセル(数式入力セル)
    Const input_from = -10 '数値の最小値
    Const input_to = 10 '数値の最大値
    Const input_step = 0.1 '数値の幅
    Const sheet_calc = "計算" '計算式などを設定するシート
    Const sheet_log = "ログ" '計算結果を連続してセットするシート
    '「ログ」シートをクリア
    Sheets(sheet_log).Cells.ClearContents
    Sheets(sheet_log).Cells(1, 1) = "input"
    Sheets(sheet_log).Cells(1, 2) = "output"
    'メイン
    gyo = 2
    For atai = input_from To input_to Step input_step
        Sheets(sheet_calc).Range(cell_input) = atai
        kekka = Sheets(sheet_calc).Range(cell_output)
        Sheets(sheet_log).Cells(gyo, 1) = atai
        Sheets(sheet_log).Cells(gyo, 2) = kekka
        gyo = gyo + 1
    Next atai
End Sub

使い方

「計算」と「ログ」というシートを2枚用意します。シート名を変えてください。
「計算」シートには計算式を入力します。シート全体を使っても構いません。ただし「数値入力のセル」と「計算結果のセル」を一つずつ作ってください。
「ログ」シートに結果を書き出しますので、何も入力しないでください。実行時にすべてクリアされます。
VBA(マクロ)の次の行を必要に応じて書き換えてください。

cell_input 数値入力のセル(変化させるセル) 「B2」のようにセルを文字列で指定。
cell_output 計算結果のセル(数式入力セル) 「E5」のようにセルを文字列で指定。
input_from 数値の最小値 繰り返し計算させるときに入力する数値の最小値。
input_to 数値の最大値 入力する数値の最大値。
input_step 数値の幅 入力する数値の幅。0.1ずつ増やすならば「0.1」
sheet_calc 計算式などを設定するシート
sheet_log 計算結果を連続してセットするシート

マクロ「計算結果をログに記録」を実行します。

[ 2013年1月25日 | カテゴリー: Excel | タグ: , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報