エクセルで計算式を入れる方法。文字列や、数字をセルに入れる方法は、cells(行,列)で入りますが、計算式をセルに入れたいときに記載用法を、ご紹介いたします。
構文
式は、ActiveCell.FormulaR1C1 = “=式の内容”となります。
これは、今あるセルに「式の内容」という式を入れなさい。という命令です。
たとえば、以下のようになります。これは、左のセルにセル番地が入っている場合に行数だけを計算する場合の式です。
ActiveCell.FormulaR1C1 = "=+MID(RC[-1],2,10)*1"
マクロ構文の例
たとえば、A2に「今日は」という文字列を入れて、今日「+today()」という式を、B2に入れて、「昨日は」という文字列をA3に入れて、B3に「+B2-1」という式を入れた場合、
Sub 日付の式() Range("A2").Select ActiveCell.FormulaR1C1 = "'今日は" Range("B2").Select ActiveCell.FormulaR1C1 = "=+TODAY()" Range("A3").Select ActiveCell.FormulaR1C1 = "'昨日は" Range("B3").Select ActiveCell.FormulaR1C1 = "=+R[-1]C-1" Range("A1").Select End Sub
と、なります。ポイントは、下から3行目の
ActiveCell.FormulaR1C1 = "=+R[-1]C-1"
の ”+R[-1]C-1” ですが、Rは行を示していて、R[-1]とは、現在の行数よりも一つ少ない値という意味です。Cは、そのあとに” [] ”が付いていないので、列は同じ列、つまり、現在地が”B3”なので、”B2”を示していて、さらに ” -1 ”となっているので、エクセル上の式は、+B2-1 という意味となります。
参考として
上記内容は、まず、Range(“A2”).Select で、選択するセルを選んで、そこに、ActiveCell.FormulaR1C1 = “”今日は”とか、入れておりますが、
指定したセルに、文字列や数字を入れるなら、
Celles = "'今日は"
でも同じことができます。
それなので、マクロ式を
Sub 日付の式() Cells(2, 1) = "'今日は" Cells(2, 2) = "=+TODAY()" Cells(3, 1) = "'昨日は" Cells(3, 2) = "=+R[-1]C-1" Range("A1").Select End Sub
でも、同じ結果ができました。ただし、ここで注意しなければならないことは、この場合は、今あるセル(アクティブセルの位置)が変わらないことです。それなので、下から2行目に記載してある、それで最後のセルは、ここを選択しなさいと記述しておいたほうが、良いと思います。
どちらでも好きな方を使ってください。でも、マクロは記録機能があるので、できるだけ記録機能を使うとすると、前者になるかもしれません。
コメント