[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『改ページの自動調整』(みやび)
例えば以下のようなデータがあるとします。
りんご 個数
青森 10
岩手 9
秋田 5
・
・
・
みかん
青森 13
岩手 10
秋田 7
・
・
・
このように多種品目ごとに各都道府県が記載されているデータがあり、
自動で改ページを設定すると
りんご 個数
青森 10
岩手 9
秋田 5
・
・
・
みかん
青森 13
岩手 10
の様になります。
この改ページを品目の位置まで毎回手作業で変更しているのですが、
出来ればマクロで、例えば個数が入力されていない直近のセルの上の行で
改ページする。
のような動作をさせたいです。
宜しくお願い致します。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
自分で作る意志はありますか? それともまるっと作ってもらいたいですか?
あなたは後輩に仕事のやり方を質問されたら、全部やってあげるタイプですか? (´・ω・`) 2023/02/01(水) 13:48:48
Sub Sample() Dim sh As Worksheet Dim HPB_Range As Range Dim prvRow As Long Dim i As Long
prvRow = 1 '1ページ目の先頭行を登録
Set sh = ActiveSheet
sh.ResetAllPageBreaks '先にすでにある改ページを全部消しておく
'アクティブウィンドウよりも下側の改ページを指定するとエラーになるので先に最下部をアクティブにする
Intersect(sh.Columns(1), sh.UsedRange.SpecialCells(xlCellTypeLastCell).EntireRow).Activate
Do
i = i + 1
If i > sh.HPageBreaks.Count Then Exit Do
With sh.HPageBreaks(i).Location
'先頭行と前ページ最終行がともに空白でない場合で
'その一かたまりのセルの先頭行が前のページの先頭行よりも大きい(下行にある)場合に
'(一かたまりがページ最大行より大きい場合に改ページを挿入しない)
If .Value <> "" And .Offset(-1).Value <> "" And .End(xlUp).Row > prvRow Then
sh.HPageBreaks.Add .End(xlUp) '改ページを挿入
prvRow = .End(xlUp).Row '改ページ挿入行を変数に入れる
Else
prvRow = .Row '改ページ挿入しない場合はページ先頭行を変数に入れる
End If
End With
Set HPB_Range = Nothing
Loop
sh.Range("A1").Activate
End Sub
(お邪魔します) 2023/02/01(水) 16:11:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.