| 
    
     |  | こんにちは。かみちゃん です。 
 >実は合計を出す列がたくさんあるのです、L列〜Q列まで(7つ)
 
 ということで、以下のようにしてはどうでしょうか?
 列番号をLやQではなく、12番目の列、16番目の列などと扱う方法です。
 さらに、セルの指定は、RangeではなくCellsを使っています。
 
 Sub Macro4()
 Dim endR As Long '最終行
 Dim Col As Integer '列番号
 
 Sheets("Sheet1").Select
 'L列(12列目)〜Q列(16列目)まで
 For Col = 12 To 16
 endR = Cells(65536, Col).End(xlUp).Row
 '計算式を設定(例)=SUM(L2:L10)
 Cells(endR + 1, Col).Formula = _
 "=SUM(" & Cells(2, Col).Address _
 (RowAbsolute:=False, ColumnAbsolute:=False) & ":" & _
 Cells(endR, Col).Address _
 (RowAbsolute:=False, ColumnAbsolute:=False) & ")"
 Next
 MsgBox "計算式を設定しました"
 End Sub
 
 > endR = Range("A65536").End(xlUp).Row
 
 こうすると、A列の最終行が取得できますが、L〜Q列がその行よりも下に値が入っていると意図しない計算式が設定されますが、いいのでしょうか?
 
 >  ActiveCell.Formula = "=SUM(Col&2:ol" & endR & ")"
 
 変数と文字列の扱い方が混同されているようです。
 Colは変数。2は文字列。olは何?(Colの打ち損じ?)
 
 |  |