★合計の計算をするコード!R1C1形式
 

Sub 計算()
Range("D8").Activate
ActiveCell.FormulaR1C1 = "=SUM(R[-5]C:R[-1]C)"
End Sub

ActiveCell.FormulaR1C1 = "=SUM(R[-5]C:R[-1]C)"
アクティブなセルに "=SUM(R[-5]C:R[-1]C)" を入力しなさい!

ってことですね。

ActiveCellプロパティとFormulaR1C1プロパティは以前にも触れましたね。⇒Go

問題は
"=SUM(R[-5]C:R[-1]C)"
ですね。
SUMワークシート関数を使って、指定した範囲の数値の合計を求めます。
この範囲に出てくる
R[-5]C:R[-1]C
について少し勉強しましょう。

まぁ〜簡単に言うとこのR1C1形式っていうのは
指定したセルから上下に何行移動して、左右に何列移動しなさい
って言うことです。
次の表を参考に理解して下さい。

セルの番地 A B C D E F
1 ここです -3 ↓Row行
2 -2
3 -1
4 -2 -1 0 1 2
5 1
6 2
→Column列

ここではC4を基準にR[-3]C[-2]を考えてみましょう。

   R[-3]はRow(行)のRのことで、-3だから3行戻って1行目まで戻ります。
   C[-2]はColumn(列)のCのことで、-2だから2列戻ってA列まで戻ります。。

よってR[-3]C[-2]は、C4から3行戻って2列戻ったセルでA1のことを指します。

 またC4を基準にR[2]Cならどうでしょう?
   R[2]なので2行進んで6行目
   CはそのままだからC列のまま
   R[2]CはC4から2行進んだセルでC6のことです。お分かり?

 ですからR[-5]C:R[-1]CはD3:D7と同じ意味になり

   D3からD7の範囲ということになります。

そこをSUMワークシート関数で合計しなさいっていう命令になるんですね。
このR1C1形式を覚えるとすご〜く便利です。どうして便利かは後日どこかで。。。

分かれば計算のマクロの分析も簡単!簡単!楽勝!
お次は、消去のコードですよ!

[トップ][前へ][マクロで計算のコード / マクロで消去のコード][次へ]