エクセルVBAでのローリング平均
下に我々は移動平均テーブルを作成するエクセルVBAでプログラムを見ていきます。ワークシート上のコマンドボタンを配置し、次のコード行を追加します。
Range("B3").Value = WorksheetFunction.RandBetween(0, 100)
このコード行は、セルB3に0と100の間のランダムな番号を入力します。我々は、Excel VBAが新しい株式価値を取りたいとローリング平均テーブルの最初の位置に置きます。他のすべての値は、一つの場所を下に移動する必要がありますし、最後の値を削除する必要があります。
ワークシートの変更イベントを作成します。ワークシート上のセルを変更したときに、ワークシート変更イベントに追加されたコードは、Excel VBAで実行されます。
-
Visual Basicエディターを開きます。
プロジェクトエクスプローラでのシート1(シート1)2.ダブルクリックします。
3.左側のドロップダウンリストからワークシートを選択してください。右のドロップダウンリストから、変更を選択します。
ワークシートの変更イベントに次のコード行を追加します。
4.整数と二つの範囲(firstfourvaluesとlastfourvalues)のNEWVALUEと呼ばれる変数を宣言。
Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
5.ワークシートの変更イベントは、Sheet1のすべての変更を待機します。私たちは、何かがセルB3に変更された場合エクセルVBAで何かをしたいです。これを実現するために、次のコード行を追加します。
If Target.Address = "$B$3" Then
そしてレンジ( “D4:D7″)とlastfourvalues:6.私たちは、セルB3の値と範囲( “D6 D3″)とfirstfourvaluesをNEWVALUEを初期化します。
newvalue = Range("B3").Value Set firstfourvalues = Range("D3:D6") Set lastfourvalues = Range("D4:D7")
7.次に、単純なトリックをしています。私たちは、移動平均テーブルを更新します。あなたは、テーブルの最初の4つの値を持つ最後の4つの値を交換し、第1の位置に新たな株式価値を置くことによって、これを達成することができます。
lastfourvalues.Value = firstfourvalues.Value Range("D3").Value = newvalue
-
if文を閉じることを忘れないでください。
End if
セルD8に9.最後に、式= AVERAGE(D7 D3)を入力します。
10.テストコマンドボタンをクリックしてプログラム。