セルに数式を入力するには、Rangeオブジェクトに数式を文字列として入力します。
エクセルは「=」で始まる文字列は、数式として認識することになっています。
目次
FormulaとValueプロパティ
■ コード内を「Wクリック」で選択できます。[code] Sub サンプル2535() Range(“B2”).Value = 30 Range(“B3”).Value = 20 Range(“B4”).Formula = “=B2+B3” Range(“B6”) = Range(“B3”) Range(“B7”) = “=B3” Range(“B8”) = Range(“B4”).Formula MsgBox Range(“B6”).Value & vbCrLf & Range(“B6”).Formula MsgBox Range(“B7”).Value & vbCrLf & Range(“B7”).Formula MsgBox Range(“B8”).Value & vbCrLf & Range(“B8”).Formula End Sub [/code]
上のマクロを実行すると、次のようにデータが入ります。
それぞれのセルに表示される「数式バー」の中を見ると、次のようになっています。
セルB6の内容をMsgBoxに表示すると、Range(“B6”).Valueは「30」、Range(“B6”).Formulaも「30」で変わりません。
[code] MsgBox Range(“B6”).Value & vbCrLf & Range(“B6”).Formula [/code]
[code] MsgBox Range(“B6”).Value & vbCrLf & Range(“B6”).Formula [/code]
セルB7の内容をMsgBoxに表示すると、Range(“B7”).Valueは「20」、Range(“B7”).Formulaは「=B3」で数式が入ります。
Valueは値が入り、Formulaは数式が入ります。
[code] MsgBox Range(“B7”).Value & vbCrLf & Range(“B7”).Formula [/code]
Valueは値が入り、Formulaは数式が入ります。
[code] MsgBox Range(“B7”).Value & vbCrLf & Range(“B7”).Formula [/code]
セルB8の内容をMsgBoxに表示すると、Range(“B8”).Valueは「50」、Range(“B8”).Formulaは「=B2+B3」で数式が入ります。
Valueは値が入り、Formulaは数式が入ります。
[code] MsgBox Range(“B8”).Value & vbCrLf & Range(“B8”).Formula [/code]
Valueは値が入り、Formulaは数式が入ります。
[code] MsgBox Range(“B8”).Value & vbCrLf & Range(“B8”).Formula [/code]
ValueやFormulaの省略
マクロではRangeオブジェクトのValueやFormulaは省略されることが多い。
マクロでは省略されても「=」のときは、数式と判断されます。
[code] Sub サンプル2540() Range(“B2”).Formula = “=D4” Range(“B3”).FormulaR1C1 = “=R6C5” ‘Formula を省略した場合 ‘Range(“B5”) = “=D4” ‘Range(“B6”) = “=R6C5” End Sub [/code]
マクロではRangeオブジェクトのValueやFormulaは省略されることが多い。
マクロでは省略されても「=」のときは、数式と判断されます。
Formula のA1形式とR1C1形式
次のようなデータがあります。
[code] Sub サンプル2540() Range(“B2”).Formula = “=D4” Range(“B3”).FormulaR1C1 = “=R6C5” ‘Formula を省略した場合 ‘Range(“B5”) = “=D4” ‘Range(“B6”) = “=R6C5” End Sub [/code]
“=D4″の表示方法を「A1形式」といいます。
[code] Range(“B2”).Formula = “=D4” [/code]
[code] Range(“B2”).Formula = “=D4” [/code]
“=R6C5″の表示方法を「R1C1形式」といいます。
「R1C1形式」では絶対値表示になります。「=$E$6」のように表示されます。
[code] Range(“B3”).FormulaR1C1 = “=R6C5” [/code]
[code] Sub サンプル2545() Range(“D8”).Formula = “=SUM(D2:D6)” Range(“E8”).Formula = “=SUM(E2:E6)” End Sub [/code]
「R1C1形式」では絶対値表示になります。「=$E$6」のように表示されます。
[code] Range(“B3”).FormulaR1C1 = “=R6C5” [/code]
●マクロの実行結果
ワークシート関数
■ コード内を「Wクリック」で選択できます。[code] Sub サンプル2545() Range(“D8”).Formula = “=SUM(D2:D6)” Range(“E8”).Formula = “=SUM(E2:E6)” End Sub [/code]
SUM関数などを使うことができる。
[code] Range(“D8”).Formula = “=SUM(D2:D6)” [/code]
[code] Range(“D8”).Formula = “=SUM(D2:D6)” [/code]
●マクロの実行結果
目次