5. R1C1形式 と A1形式
数式の表記で 行と列の表示形式をいいます 通常はA1形式です
-
ツール>オプション>全般タブ
の設定のなかの「R1C1参照形式を使用する」で設定します。
-
FormulaR1C1はR1C1形式の記述であることを意味します。
A1形式の場合は、Formulaを使用します。
-
D3に =B3+C3
の式を自動登録すると Range("D3").Select ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]" となります。
-
R
はRow(行) C はColumn(列)を意味します。 [ ]の数字は
基準となるセルからどの方向の行列かを意味します。 RC[-2]+RC[-1] は R[0]C[-2]+R[0]C[-1]
とも表記できます。
0 は省略可能というわけです。
-
A1形式では自動登録できないため、書き直すことになります。 Range("D3").FormulaR1C1 = "=RC[-2]+RC[-1]"
は、 Range("D3").Formula = "=B3+C3" となります。
注意しなければならないのは
下記のような記述は間違いだと言うことです。 Range("D3").FormulaR1C1 = "=B3+C3"
とすると、エラーになります。 また Range("D3").Formula = "=RC[-2]+RC[-1]"
や Range("D3").Value = "=RC[-2]+RC[-1]" や Range("D3").Value = "=B3+C3"
は、 ちゃんとセルに式は入りますが、記述方法に誤りがあることになります。
★サンプルファイル 2_005.xls
R1C1形式で記述する数式を絶対セル番地で扱いたい時は、
A1をR1C1としてとらえ、R1C1形式の数値を囲む[
] を使用せずに記述します。 セルE7の = E5+E6 の数式で説明すると、 相対 : R[-2]C+R[-1]C = E5+E6 絶対 :
R5C5+R6C5 = $E$5+$E$6
記述例 '---------------------------------------------------------------- '相対: Sub
PlusA003() Range("E5").Value = 123 Range("E6").Value = 456
Range("E7").FormulaR1C1 = "=R[-2]C+R[-1]C" End Sub
Sub
PlusA004() Range("E5").Value = 123 Range("E6").Value = 456
Range("E7").Formula = "=E5+E6" End
Sub '---------------------------------------------------------------- '絶対: Sub
PlusA0031() Range("E5").Value = 123 Range("E6").Value = 456
Range("E7").FormulaR1C1 = "=R5C5+R6C5" End Sub
Sub PlusA0041()
Range("E5").Value = 123 Range("E6").Value = 456
Range("E7").Formula = "=$E$5+$E$6" End
Sub '----------------------------------------------------------------
Top
|