Gerryは、R1C1セル参照を使用する数式をまとめるのが最も簡単だと考えています。彼女は、数式をワークシートに手動で追加するときにこれを行う方法を知っていますが、マクロを使用してまとめてセルに詰め込む数式でR1C1参照をどのように使用できるのか疑問に思っています。彼女はこれをするときに気をつけなければならないことがあるかどうか疑問に思います。

通常、数式をセルに詰め込む場合は、マクロで次のタイプの構文を使用します。

Cells(3,1).Formula = "=A1 + A2"

Range("A3").Formula = "=A1 + A2"

これらのいずれも正常に機能します。どちらもセルA3に簡単な数式を詰め込みます。ただし、セルA3に配置する数式でR1C1参照を使用する場合は、FormulaプロパティをFormulaR1C1プロパティに変更するだけで済みます。

Cells(3,1).FormulaR1C1 = "=R1C1 + R2C1"

Range("A3").FormulaR1C1 = "=R1C1 + R2C1"

上記のR1C1数式をセルに配置し、ワークシートでR1C1表示がオンになっていない場合、Excelは数式を変換してアクティブな表示を反映することに注意してください。つまり、「= R1C1 + R2C1」を「= $ A $ 1 + $ A $ 2」に自動的に変更します。逆もまた真です。数式「= A1 + A2」をセルに配置すると、R1C1ディスプレイがオンになっている場合は、「= R [-2] C + R [-1] C」と表示されます。

また、FormulaとFormulaR1C1はどちらもプロパティであるため、それらを読み取って、セル内の数式を目的の形式で表示できることにも注意してください。たとえば、セルA3に数式「= A1 + A2」が含まれているとします。次に次のマクロを実行すると、数式が目的の形式で表示されます。

Sub TestFormula()

Dim sMsg As String

sMsg = "Regular format: " & Cells(3,1).Formula & vbCrLf     sMsg = sMsg & "R1C1 format: " & Range("A3").FormulaR1C1     MsgBox sMsg End Sub

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(5294)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。