たとえば、エクセルで次のような表があった場合、地域コード別に改ページを挿入したい、とします。
通番 | 地域コード | 支店コード |
---|---|---|
1 | 100 | 1220 |
2 | 100 | 1420 |
3 | 200 | 2358 |
4 | 200 | 2306 |
5 | 300 | 3243 |
地域コードは昇順でソートするものとして、その境目に改ページを挿入すればよいのですが、大量にある場合には面倒。
これをマクロで実行する場合のVBAは次の通りです。
Sub 改ページ挿入()
Const colkey = 2 '改ページのキーとなる列
myrow = 3
Do
If Cells(myrow - 1, colkey) <> Cells(myrow, colkey) Then
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(myrow, colkey)
End If
myrow = myrow + 1
Loop Until Cells(myrow, 1) = ""
End Sub
Const colkey = 2 '改ページのキーとなる列
myrow = 3
Do
If Cells(myrow - 1, colkey) <> Cells(myrow, colkey) Then
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=Cells(myrow, colkey)
End If
myrow = myrow + 1
Loop Until Cells(myrow, 1) = ""
End Sub
ここでは、キーとなる列、すなわち地域コードは2列目ですので、「Const colkey = 2」となっています。
もし支店コード別に改ページを挿入したい場合には「Const colkey = 3」とします。
コメント
ヤフーで検索したらヒットしましたので、拝見させていただきました。
ちょうど、仕事で一定の条件で改ページをするマクロを探していたので、大変役に立ちました。
自分の記述したマクロだと、余計な改ページまで入ってしまい、悩んでいたところです。
「Const colkey」と「myrow」、使えます。色々と活用したいと思います。
ありがとうございました。
コメントありがとうございます。
お役に立てて嬉しいです。