- ベストアンサー
Excel、改ページ、マクロ
A列に数値が入ってたら、そのセルの上に改ページを入れたいです。 A列には数値か空白のセルがあります。 数値が変わったら改ページというマクロだと、数値が入ってるセルの上下に改ページがはいってしまいます… どのようにしたらいいか、教えてくださいm(_ _)m 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1一部訂正です ドットが抜けてました。 .HPageBreaks.Add Cells(i, "A") を以下に変更してください。 .HPageBreaks.Add .Cells(i, "A")
その他の回答 (1)
- kkkkkm
- ベストアンサー率66% (1719/2589)
A列に数値が入ってたらというのが以下のどちらのパターンか分からないので両方です。 Sheet1は実際のシート名に変更してください。 1行目の上には改ページを入れられないので2行目から調べています。 数値が連続している場合には一番最初の数値の上にだけ改ページ 123 456 789 空白 222 123と222の上にだけ改ページ Sub Test() Dim i As Long Dim flg As Boolean: flg = False With Sheets("Sheet1") .ResetAllPageBreaks '改ページを全て解除 For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row If IsNumeric(.Cells(i, "A").Value) = True _ And .Cells(i, "A").Value <> "" _ And flg = False Then .HPageBreaks.Add Cells(i, "A") flg = True ElseIf IsNumeric(.Cells(i, "A").Value) = False _ Or .Cells(i, "A").Value = "" Then flg = False End If Next End With End Sub 数値が連続していても数値の上に改ページ 123 456 789 空白 222 空白以外の123,456,789,222の上に改ページ789の下にはない Sub Test2() Dim i As Long With Sheets("Sheet1") .ResetAllPageBreaks '改ページを全て解除 For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row If IsNumeric(.Cells(i, "A").Value) = True _ And .Cells(i, "A").Value <> "" Then .HPageBreaks.Add Cells(i, "A") End If Next End With End Sub
お礼
ありがとうございます! さっそくやってみます(^^)