- ベストアンサー
地区ごとに並んだ全社員リストの地区間に列挿入マクロ
- 地区ごとの小計を出すために、社員リストの地区間に列挿入するマクロを作成したいです。
- マクロにより、1行のシステムデータを3行のフォーマットに変更し、地区ごとの小計を出す必要があります。
- マクロの難易度に関しては、詳しくない方でも理解しやすい形で教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
作成例: エクセルに取り込んだところから たとえば A列に地区 B列に社員番号 C列に名前 D,E,F列に最初の3項目 G,H,I列に次の3項目 1行目はタイトル行 2行目からまだ一人1行ずつのデータ sub macro1() dim r as long ’地区で並べ替える 既に並べ替えられているなら省略する range("A1").currentregion.sort key1:=range("A1"), order1:=xlascending, header:=xlyes ’先に地区小計を1行形式で挿入する range("A1").currentregion.subtotal groupby:=1, function:=xlsum, totallist:=array(4,5,6,7,8,9), replace:=true, pagebreaks:=false, summarybelowdata:=true range("A1").currentregion.value = range("A1").currentregion.value ’そのあと各1行を3行にする for r = range("A65536").end(xlup).row to 2 step -1 cells(r + 1, "A").resize(2, 1).entirerow.insert cells(r + 1, "D") = cells(r, "E") cells(r + 2, "D") = cells(r, "F") cells(r + 1, "G") = cells(r, "H") cells(r + 2, "G") = cells(r, "I") next r range("H:I").delete shift:=xlshifttoleft range("E:F").delete shift:=xlshifttoleft end sub 回答した通りにサンプルのレイアウトを実際に作成して、動作を確認してください そのあと、実際のレイアウトに応じて自力で適切に応用してください。