| 
    
     |  | ▼igusukei さん: >りすりすさん
 >かみちゃん
 >殆ど同じ時刻に回答頂いたのですね、お二方ご親切にありがとうございます。
 >両方とも試して見ました、バッチリです!!
 >かみちゃん、細かい指導ありがとうございます
 >ActiveCell.FormulaR1C1 = これはR1C1 形式で と言う意味なんですね(^^;
 >Range(endR + 1, L).Select ← これは恥ずかしいでした
 >勉強になりました (^_^)
 >
 >そこで欲張って、さらに質問ですが…(図々しい ^^; )
 >実は合計を出す列がたくさんあるのです、L列〜Q列まで(7つ)
 >Sub Macro1()〜Sub Macro7() 作ればいいのですが、もっといい方法があるのではと…?
 >関数で
 >Function Totals(Col As Range)
 >Dim encR As Long
 >Sheets("Sheet1").Select
 >  endR = Range("A65536").End(xlUp).Row
 >  Range(Con & endR + 1).Select
 >  ActiveCell.Formula = "=SUM(Col&2:ol" & endR & ")"
 >End Function
 >
 >この様にして、 Totals(L) で実行できないかと試しましたが、エラーでだめでした。
 >このできると、Totals(L)〜Totals(Q) までを順に実行すれば、簡単かなとも思いました。考えているうちに For 〜 next 文で出来そうな気がしますが、どうやっていいものか…?
 >その場合はたぶん R1C1形式にしないといけないのでしょうね?
 >済みません、だんだん欲が出てきて難しくなりました(←自分には)
 >また教えてください、よろしくお願いします。m(__)m
 
 文字は ""の中が 文字になります
 "=SUM(Col&2:ol"
 とかいてあるものは
 =SUM(Col&2:ol
 になってしまいます
 
 変数の前で 一度文字を 分離してあげるといいです
 
 colが一箇所Conになっています
 
 Totals(Col As Range)
 は Rangeでなく
 stringを使った方がいいと思います
 
 ループはこんなのでいけると思います。
 
 Dim i As Long
 For i = UCase(Asc("l")) To UCase(Asc("q")) ' 小さい方を先に書く
 Totals (Chr(i))
 
 UCase: 大文字に変換  大文字小文字混在しても誤動作しないように
 Asc: 文字を文字コード(数字)に変換
 Chr: 文字コードを 文字に変換
 
 
 |  |