• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:地区ごとに並んだ全社員リストの地区間に列挿入マクロ)

地区ごとに並んだ全社員リストの地区間に列挿入マクロ

このQ&Aのポイント
  • 地区ごとの小計を出すために、社員リストの地区間に列挿入するマクロを作成したいです。
  • マクロにより、1行のシステムデータを3行のフォーマットに変更し、地区ごとの小計を出す必要があります。
  • マクロの難易度に関しては、詳しくない方でも理解しやすい形で教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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 回答した通りにサンプルのレイアウトを実際に作成して、動作を確認してください そのあと、実際のレイアウトに応じて自力で適切に応用してください。