Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


52464 / 76736 ←次へ | 前へ→

【29110】Re:印刷枚数とデータの数
発言  ichinose  - 05/9/25(日) 10:13 -

引用なし
パスワード
   ▼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を実行してください
0 hits

【29107】印刷枚数とデータの数 toto 05/9/25(日) 1:58 質問
【29110】Re:印刷枚数とデータの数 ichinose 05/9/25(日) 10:13 発言
【29111】Re:印刷枚数とデータの数 toto 05/9/25(日) 11:27 発言
【29117】Re:印刷枚数とデータの数 ichinose 05/9/25(日) 12:50 発言
【29127】Re:印刷枚数とデータの数 toto 05/9/25(日) 20:05 お礼

52464 / 76736 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free