VBAでExcelの給与データに部門合計と支社合計の行を追加したいです。
追加する合計行は、合計された数値を入れるのではなく「=SUM」の形で表示。
|職員№|職員名|支社№|支社名|部門№|部門名|1月|2月|3月|4月|5月|6月|7月|8月|9月|10月|11月|12月|合計|
|:--|:--:|--:|
|1|A|1|ねこ|1|役員|4500|4500|4500|4500|4500|4500|4500|4500|4500|4500|4500|4500|54000|
|2|B|1|ねこ|1|役員|3500|3500|3500|3500|3500|3500|3500|3500|3500|3500|3500|3500|42000|
|3|C|2|いぬ|2|営業|255|258|243|255|258|254|245|245|245|245|245|245|2993|
|4|D|2|いぬ|2|営業|230|243|230|230|267|245|245|247|245|245|245|245|2917|
|5|E|2|いぬ|3|事務|163|197|160|164|210|201|173|188|191|173|173|173|2166|
|6|F|2|いぬ|4|企画|163|198|204|198|204|212|212|155|142|137|145|145|2115|
|7|G|2|いぬ|4|企画|717|111|102|142|389|464|107|977|418|687|726|977|5817|
|8|H|2|いぬ|5|SE|514|429|623|670|701|596|998|889|101|317|432|889|7159|
|9|I|3|うさぎ|3|事務|235|251|235|235|266|245|245|223|249|245|245|266|2940|
|10|G|3|うさぎ|4|企画|163|197|160|164|210|201|173|188|191|173|173|210|2203|
部門合計の行の追加、合計行(イメージ図の灰色の部分)と支社合計行の追加(薄緑)までは出来たのですが、
支社合計のSUM関数部分の出し方が分からなくて詰まってしまいました。
G28(いぬ支社合計)は「=SUM(G27,G25,G22,G20)」、G33(うさぎ支社合計)は「=SUM(G32,G30)」としたいです。
Sub test() Dim intSortCol As Integer Dim intSortRow As Integer Dim r As Integer Dim k As Integer Dim i As Integer Dim j As Integer Dim c As Integer Dim v As Integer r = 6 i = 0 j = 0 v = 3 intSortCol = Sheets("Sheet1").Cells(4, Columns.Count).End(xlToLeft).Column intSortRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To intSortRow If Cells(r, 5) <> Cells(r - 1, 5) Then Rows(r).Insert Range(Cells(r, 1), Cells(r, intSortCol)).Interior.color = RGB(192, 192, 192) If Cells(r - 1, 5) = 1 Then Cells(r, 1) = "役員計" Cells(r, 3) = Cells(r - 1, 3) Cells(r, 3).Font.color = RGB(192, 192, 190) End If If Cells(r - 1, 5) = 2 Then Cells(r, 1) = "営業計" Cells(r, 3) = Cells(r - 1, 3) Cells(r, 3).Font.color = RGB(192, 192, 190) End If If Cells(r - 1, 5) = 3 Then Cells(r, 1) = "事務計" Cells(r, 3) = Cells(r - 1, 3) Cells(r, 3).Font.color = RGB(192, 192, 190) End If If Cells(r - 1, 5) = 4 Then Cells(r, 1) = "企画計" Cells(r, 3) = Cells(r - 1, 3) Cells(r, 3).Font.color = RGB(192, 192, 190) End If For c = 9 To intSortCol Cells(r, c) = "=SUM(" & Cells(v, c).Address(False, False) & ":" & Cells(r - 1, c).Address(False, False) & ")" j = j + 1 Next c r = r + 1 v = r i = i + 1 End If r = r + 1 Next k End Sub
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/15 10:31