web-dev-qa-db-ja.com

ExcelVBA-上下にのみ境界線を追加する合計行

合計行の上部に境界線を追加し、下部に境界線を追加したい

例えば。行2から3および列3-4のデータがあり、行5の行2-3を合計する合計行を追加しました。

行5の上下に、列4までだけ境界線を追加したいと思います。

変数LastRow + 2(データの最後の行と合計行の位置の間に空白行があることに注意してください)とLastColumnをRange( "A5:D5")で使用できますか?これは毎回可変になるので選択しますか?

私の現在のコード:

Range("A5:D5").Select
With Selection.Borders(xlEdgeTop)
   .LineStyle = xlContinuous
   .Weight = xlThin
   .ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
   .LineStyle = xlContinuous
   .Weight = xlThin
   .ColorIndex = xlAutomatic
End With
6
HL8

NexttRowはまだ良い考えであり、コードも簡略化できると思います。これにより、合計が追加され、合計行がrow2からデータの下部にフォーマットされます。

NR = Range("A" & Rows.Count).End(xlUp).Row + 1

Range("C" & NR, "D" & NR).FormulaR1C1 = "=SUM(R2C:R[-1]C)"
With Range("A" & NR, "D" & NR)
    .Borders(xlEdgeTop).Weight = xlThin
    .Borders(xlEdgeBottom).Weight = xlThin
End With
4
Jerry Beaucaire

LastRow変数やLastCol変数は実際には必要ありません。次のように、範囲の最後の行を参照してください。

With Range("A5:D5")
    With .Rows(.Rows.Count)
        With .Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    End With
End With

これを、範囲を渡すサブルーチンに一般化することができます。

2
Doug Glancy