構文
Object.Formula / Object.FormulaR1C1
Valueプロパティはセルの入力値を取得しますが、
Formulaプロパティ/FormulaR1C1プロパティはセルの数式を取得します。
FormulaはA1形式で数式を取得します。
FormulaR1C1はR1C1形式で数式を取得します。
Formula/FormulaR1C1のコードサンプル
Public Sub test() '■セルA1に"=SUM(A2:A10)"と入力した場合 Debug.Print Range("A1").Formula '=SUM(A2:A10) Debug.Print Range("A1").FormulaR1C1 '=SUM(R[1]C:R[9]C) '■セルA1に"=SUM($A$2:$A$10)"と入力した場合 Debug.Print Range("A1").Formula '=SUM($A$2:$A$10) Debug.Print Range("A1").FormulaR1C1 '=SUM(R2C1:R10C1) '■セルA1に"=SUM(A$2:A$10)"と入力した場合 Debug.Print Range("A1").Formula '=SUM(A$2:A$10) Debug.Print Range("A1").FormulaR1C1 '=SUM(R2C:R10C) '■セルA1に"=SUM($A2:$A10)"と入力した場合 Debug.Print Range("A1").Formula '=SUM($A2:$A10) Debug.Print Range("A1").FormulaR1C1 '=SUM(R[1]C1:R[9]C1) '■セルA1に"あいうえお"と入力した場合 Debug.Print Range("A1").Formula 'あいうえお Debug.Print Range("A1").FormulaR1C1 'あいうえお End Sub
注意点
- 数式があれば、数式通りに取得します。数式でない場合はそのまま値を取得します。
- 数式かどうかチェックしたい場合はHasFormulaプロパティで判別可能です。
関連記事
セルに値を入力する【Valueプロパティ】【ExcelVBA】
セルのシリアル値を取得する【Value2プロパティ】【ExcelVBA】
セルの表示しているデータを取得する【Textプロパティ】【ExcelVBA】
【VBA基本】変数のデータ型一覧
【VBA基本】セルやセル範囲の値を消去する
RangeとCellの使いわけ【VBA基本】
コメント