.Value, .Formula, .FormulaR1C1
今日は、ときどきいただく質問をご紹介。
セルに関数が入っている場合の処理について。
例えば、セルI4に「=Sum(C4:H4)」という数式が入っている。
その結果、セルI4には、「21」という値が表示されている。
このとき、「数式」を取ってきたい、または、「値」を取ってきたい、というとき。
どうやって、切り分けるか。
結論から言うと、.Valueと.Formulaを使い分ける。
Sub valueformulatest()
Range(“K4″).Value = Range(“I4″).Value ‘「値」を取ってくる
Range(“L4″).Value = Range(“I4″).Formula ‘「式」を取ってくる
Range(“M4″).Formula = Range(“I4″).Value ‘「値」を取ってくる
Range(“N4″).Formula = Range(“I4″).Formula ‘「式」を取ってくる
End Sub
この結果、セルK4~N4に入るのは、以下の数式または、値
セルK4: 21
セルL4: =SUM(C4:H4)
セルM4: 21
セルN4: =SUM(C4:H4)
これが何を意味するのかというと。
- Valueで設定しても、.Formulaで設定しても、違いはない。
- Valueで取得すると「値」、.Formulaで取得すると「式」を取得するという違いがある
ということ。
ついでに、.FormulaR1C1についても、簡単に解説。
.FormulaR1C1は、式を相対参照で取得します。
何のことやら?ということでしたら、以下を参考にしてください。
Sub formula_formular1c1()
Range(“I5″).Formula = Range(“I4″).Formula ‘セルI5に入るのは、「=SUM(C4:H4)」という式。
Range(“I6″).FormulaR1C1 = Range(“I4″).FormulaR1C1 ‘セルI6に入るのは、「=SUM(C6:H6)」という式。
End Sub
2024年11月20日 21:41
小川 慶一さん
2024年11月20日 21:28
AIユーザさん
2024年11月14日 17:04
小川 慶一さん
2024年11月13日 18:12
AIユーザさん
2024年11月13日 18:11
田中 宏明さん