
No.2ベストアンサー
- 回答日時:
こんばんは。
以下の場合は、このようになります。
------------
○ .Cells(i + 1, 1) 1行足されている
------------改ページ
しかし、そうではなく、以下のようになるなら、このようにします。
------------
------------改ページ
○ .Cells(i - 1, 1) 1行減らす
印刷範囲を最初に設定してから、マクロを行ってください。
出来上がったら、改ページプレビューで確認してください。
標準モジュールに設定してください。
'------------------------
Sub PageBreak_enter()
Dim Rng As Range
Dim i As Long
'区切れの文字列
Const CHKSTRING As String = "○"
With ActiveSheet
If .PageSetup.PrintArea = "" Then
MsgBox "印刷範囲を設定してください"
Exit Sub
End If
.ResetAllPageBreaks
' ↑(何回も行わないなら要りません)
Application.ScreenUpdating = False
Set Rng = .Range(.PageSetup.PrintArea)
For i = 1 To Rng.Rows.Count
If .Cells(i, 1).Value Like CHKSTRING Then
'ここで、改ページを調整可
.Cells(i + 1, 1).PageBreak = xlPageBreakManual
End If
Next
End With
Application.ScreenUpdating = True
Set Rng = Nothing
End Sub
No.4
- 回答日時:
改ページは
A(1)手動
(2)位置を知らせる仕組み(#3回答?)
(3)ボタン化(VBA)
B(1)決まった行数で改ページ
(2)ある列のデータが変化したらその直前で改ページ(#2回答
(3)決まった語句や数が出てきたら改ページ
(4)改ページを入れないでプログラムでRange(○).PrintOutの○を調節
などが考えられる。
この質問ではB(3)かなと思う。
ーーー
A列 B列
得意先A1
2
3
4
5
得意先B2
3
4
ff
のようなデータの場合
標準モジュールに
Sub test01()
d = Range("B65536").End(xlUp).Row
For i = 2 To d
If InStr(Cells(i, "A"), "得意先") > 0 Then
Cells(i, 1).PageBreak = xlPageBreakManual
End If
Next i
Cells.PrintOut
End Sub
で良いようです。
ーー
A(3)は
シートにボタンを貼り付け、そのClickイベントに
Private Sub CommandButton1_Click()
ActiveCell.PageBreak = xlPageBreakManual
End Sub
No.3
- 回答日時:
わたしからは手動で行う場合にちょっと楽になる方法を。
A列にオートフィルタをかけて、○を抽出します。
一番最初の○のある行を行ごと選択して、
[挿入]-[改ページ]
を行います。
以下、
下矢印=>[F4]=>下矢印=>[F4]...
と繰り返しキー入力をすればOK。
#[F4]キーは[前の動作を繰り返す]操作なので、これは改ページ挿入=>下移動の繰り返しになります。
No.1
- 回答日時:
以下のマクロはB列の値が変わる行で改頁を挿入するマクロです。
もしカテゴリが大分類、小分類などに分かれているならもう少し判断を加える必要があるので補足するか、ご自身で改造してみてください。
(1行目がタイトル、2行目以降がデータの想定です)
ご存じと思いますが、以下のマクロをALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択して実行します。MacroBKが改行挿入、macroBKDELが改行削除です
Sub MacroBK()
Dim PB As HPageBreak
Dim idx As Long
Const tCol As String = "B" '改頁判断する列
With ActiveSheet
For idx = 3 To .Cells(65536, tCol).End(xlUp).Row
If .Cells(idx, tCol) <> .Cells(idx - 1, tCol) Then
ActiveSheet.HPageBreaks.Add Before:=.Cells(idx, tCol)
End If
Next idx
End With
End Sub
Sub MacroBKDEL()
Dim idx, PB As Integer
PB = ActiveSheet.HPageBreaks.Count
For idx = 1 To PB
ActiveSheet.HPageBreaks(1).Delete
Next
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCEL 改ページ自動挿入方法を教えてください。
Excel(エクセル)
-
Excelで特定の文字のところで自動的に改ページしたい
Excel(エクセル)
-
特定文字のセル(エクセルデータ)の所で改ページ印刷する仕組みは可能?
Excel(エクセル)
-
4
Excelについて。特定の範囲内で自動的に改ページされることを禁止する
その他(Microsoft Office)
-
5
エクセルの改ページを行ごとに自動挿入するには?
Excel(エクセル)
-
6
エクセルで複数行に一度に改ページを挿入する方法
Excel(エクセル)
-
7
VBAでデータが変わった切れ目で改ページしたい
Excel(エクセル)
-
8
Excel 改ページのVBAうまくいかないです
Excel(エクセル)
-
9
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
10
EXCEL、マクロ-改ページ行番号の取得方法を教えてください
Visual Basic(VBA)
-
11
ヘッダー
Excel(エクセル)
-
12
Excelの改ページ 同シート内で複数の改ページの設定
Excel(エクセル)
-
13
エクセルで改ページを連続挿入方法
Excel(エクセル)
-
14
数式による空白を無視して印刷するマクロ
Excel(エクセル)
-
15
改ページ条件を簡単に設定する方法
Access(アクセス)
-
16
VBAでの改ページ位置の変更
Excel(エクセル)
-
17
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
18
ExcelのVBAにてページごとの枠線を引きたい
その他(Microsoft Office)
-
19
印刷時、改ページごとの下枠にのみ罫線を引きたい
Excel(エクセル)
-
20
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
改ページの2ページ目の作り方
-
5
エクセルでA4 2枚をA3 1枚で印...
-
6
EXCEL改ページプレビューのペー...
-
7
word 改ページできないのはな...
-
8
エクセルのマクロで印刷プレビ...
-
9
EXCELで1行の内容を1枚の紙に印...
-
10
excel2010改ページプレビュー時...
-
11
Excelで全ての行単位で改...
-
12
エクセルのA3横一枚のデータをA...
-
13
ExcelVBA 改ページの横破線を消...
-
14
YMM4 で MOV ファイルが読み込...
-
15
Excelで縦を拡大、横を縮小する...
-
16
エクセルのセルの枠線の点線に...
-
17
エクセル上に貼り付けた画像が...
-
18
ホームページビルダー18でPDFフ...
-
19
アクセスのレポートのプレビュ...
-
20
エクセルで点線を引き、印刷す...
おすすめ情報
公式facebook
公式twitter