プロが教える店舗&オフィスのセキュリティ対策術

同じシート内で多くの改ページを設定しなければならない場合
1ページ毎に設定していかないといけないのでしょうか?
それとも改ページしたいデータで並び替えて、同データのある行で改ページを分割していくのは可能でしょうか?

たとえばA列に上から111112223333344455555とある場合に自動的に1と2の間、2と3の間、3と4の間、4と5の間にそれぞれ自動的に改ページを入れたいのですが・・・

A 回答 (4件)

マクロなら入力している値が変わったところに「改ページ」を挿入することが可能です。


「マクロはNG」なら手作業で1カ所ずつ挿入する必要があります。「プレビュー」→「改ページプレビュー」を利用すれば、改ページ位置の変更を、多少、楽に操作できるかもしれませんが、行数が多いならこの方法でも大変だと思います。

A列の値が変わったら改ページを挿入するマクロのサンプルは以下になります。
以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。

Sub Macro4()
Const col As String = "A" '改ページを判断するデータの列名
Dim idx As Long
Dim sv
sv = Cells(1, col).Value
For idx = 1 To Cells(65536, col).End(xlUp).Row
  If Cells(idx, col).Value <> sv Then
    ActiveSheet.HPageBreaks.Add Before:=Rows(idx)
    sv = Cells(idx, col).Value
  End If
Next idx
End Sub

でも実際のシートはそんなに単純ではないと思います。質問文に具体的な指示がないので、100%期待に添えるとは思いませんが、「ご参考まで」にどうぞ。
なおマクロの実行結果は「UNDO」で戻せませんので試しに実行するなら、シートは必ず保存しておいて、元に戻せるようにしておいてください。
    • good
    • 1
この回答へのお礼

できました!これで作業がスムーズに進みます。
ありがとうございました。

お礼日時:2008/01/16 18:25

たびたびすみません^^;


他のアイデアです。
全ページ同じ位置での設定でかまわないのであれば、
1)まずSheet1に、改ページの設定をします。
2)そのページを、必要な分だけコピーします。(Sheet1(2)・・・)
3)コピーした(改ページ設定済みの)Sheet1(2)に、もともとあったSheet2の内容を貼り付けます。
逆転の発想ですが、いかがでしょうか??
    • good
    • 3
この回答へのお礼

ありがとうございます。
すべてが同じ位置であればよかったのですが、すべてが違う位置なので…

お礼日時:2008/01/16 18:16

こんにちは。


質問者さまはマクロの記録ができますか?
できるならば、Sheet1の改ページの設定を記録させて、
次ページからはマクロを実行すれば、だいぶ手間が省けます。
ただ、マクロの記録ですと全ページ同じ位置に改ページが設定されてしまうので、
もしもページごとに違う位置に設定したい場合はVBAを組むしかないですね。
    • good
    • 1
この回答へのお礼

ありがとうございます。
すべて同じ位置ではないので手作業でします。
VBAは無理なんで・・・

お礼日時:2008/01/16 18:14

Data作成中のPage設定は不要です、印刷するときだけ、印刷プレビューで設定すれば良いです。

この回答への補足

すいませんよくわからないのですが・・・
印刷プレビュー時に改ページの設定ができるのですか?
それは、1ページずつ設定する必要はないのですか?

補足日時:2008/01/16 17:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています