- ベストアンサー
エクセル VBA もっときれいな書き方?
Sub test() Dim i As Integer, n As Integer n = 1 For i = 2 To 150 If Cells(i, 1) <> Cells(i - 1, 1) Then Cells(i - 1, 5) = i - n Cells(i - 1, 6) = Application.WorksheetFunction.Sum(Range("B" & n & ":" & "B" & i - 1)) n = i End If Next i End Sub 上記のマクロですが Application.WorksheetFunction.Sum(Range("B" & n & ":" & "B" & i - 1)) この部分、もっとスマートに書く方法を教えてください。 Range("B" & n & ":" & "B" & i - 1)って、ちゃんと動きますが、書き方が何か変なような気がするんです。 よくわかってもいないのにすみません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 別に変じゃないと思いますが。 ""で括られていて、文字列として指定しているのが変な気がするのでしょうか。 それなら、Cellsプロパティを使用する方法でしょうか。 Application.WorksheetFunction.Sum(Range(Cells(n, 2), Cells(i - 1, 2)))
その他の回答 (2)
- maruru01
- ベストアンサー率51% (1179/2272)
No.1さんへ。 R = Range(P) のところは、 Set R = Range(P) じゃないとダメじゃないでしょうか。
- rara_sun
- ベストアンサー率50% (271/539)
Dim R as Range Dim P as String : (中略) : P = "B" & n & ":" & "B" & (i - 1) R = Range(P) Cells(i - 1, 6) = Application.WorksheetFunction.Sum(R) : (中略) : っていうのは、いかが?
お礼
ありがとうございました。 解決いたしました。
お礼
ありがとうございます! 美しい!これです、まさにこれです。 ほんとうにありがとうございました。