VBAでセルに式を埋め込むときに良い式展開の方法はないでしょうか


VBAでセルを足し算するんじゃなくって、  
式を埋め込みたいときに思いついた方法が文字列でゴリ押しする方法でした。  
一応成功しましたが。これだとさすがに冗長すぎると思いました。

前にも似たような質問をしたのですが、VBAでrubyのように式展開させる方法はないのでしょうか？

[code]

    sub cells_sum
      for i = 1 to sheets.count
        for j = 4 to 34
          sheets(i).cells(j, 5) = "=sum(b"+cstr(j)+":c"+cstr(j)+")" 
      next j: next i
    end sub
    
[/code]

format()で実現できそうな気配ですが、なかなか情報にたどりつきません。  

[code]

    sub fo
    dim s as string
    dim array(100) as integer
    for i = 0 to 100
      array(i) = i + 1
    next i
    for each a in array
      a = cstr(a)
      range("a1") = format(a,"=sum(a@:b@)")
    next a
    end sub 'NG
    
[/code]




セル`E4`に数式`=SUM(B4:C4)`を埋め込みたいということでしょうか？
この数式はExcelで広く使われているA1形式での表現形式となっていますが、この他にR1C1形式があり、こちらを使うと`=SUM(RC[-3]:RC[-2])`と相対アドレスが簡単に表現できるようになります。その結果、数式が固定文字列になるため

[code]

    sub cells_sum
      for i = 1 to sheets.count
        for j = 4 to 34
          sheets(i).cells(j, 5).FormulaR1C1 = "=SUM(RC[-3]:RC[-2])" 
      next j: next i
    end sub
    
[/code]

で済みます。さらに言えば範囲指定で一気に代入できます。

[code]

    sub cells_sum
      for i = 1 to sheets.count
        sheets(i).range("E4:E34").FormulaR1C1 = "=SUM(RC[-3]:RC[-2])" 
      next i
    end sub
    
[/code]

より複雑な数式を扱う場合、[`ADDRESS`標準関数](https://support.office.com/ja-
jp/article/address-%E9%96%A2%E6%95%B0-d0c26c0d-3991-446b-8de4-ab46431d4f89)を使用することでセルを表す文字列を生成できます。この文字列を使用すれば柔軟に数式を組み立てることができます。

