|
▼toto さん:
おはようございます。
> A列
>1 書籍部門
>2 関東地区
>3 2005-09
>4 コミック
>5 雑誌
>6 単行本
>7 文庫本
>.
>.
>上記データをCopyメソッドを使用してThisworksheetに貼り付けました。
>A4以降のデータはコピー元によって行数が異なります。
>最小でA4まで、最大でもA10まであります。
>これを印刷する時、A1〜A3まではすべての用紙に、4行目はA4以降のデータを
>順番に、全4行印刷された用紙がA4〜A10に値のある行数分出力したいです。
>Thisworksheetに印刷用の書式を作成する時に、A1からA3までを印刷タイトルに
>設定し、A4からA10までは一行ごとに改ページをあらかじめ設定しようと
>考えています。
>印刷前にMsgboxで「用紙を○枚セットしてください」と表示し、
>commandbutton「OK」をクリックすると印刷が開始する、
>という風にしたいと思います。
>その際の○に返すコードと、実際の印刷を行うコードについて、
>アドバイスを頂きたいと思います。
八割方、マクロの記録を応用しました。
標準モジュールに
'=================================================
Sub test()
Dim シート名 As String
シート名 = "sheet1" '←このシート名を変えてみて下さい
Call set_page(Worksheets(シート名))
MsgBox "用紙を" & Application.ExecuteExcel4Macro("GET.DOCUMENT(50,""" & シート名 & """)") & "枚 用意してください"
Worksheets(シート名).PrintPreview 'プレビューにしておきましたが、
'Worksheets(シート名).PrintOut ' 実際は、←ですね?
End Sub
'===================================================
Sub set_page(sht As Worksheet)
Dim lrow As Long
With sht
With .PageSetup
.PrintTitleRows = "$1:$3"
.PrintTitleColumns = ""
End With
lrow = .Cells(.Rows.Count, 1).End(xlUp).Row
For idx = lrow To 5 Step -1
.HPageBreaks.Add .Cells(idx, 1)
Next idx
End With
End Sub
プロシジャーtestを実行してください
|
|