Top > よくつかうプログラム> シートの合体印刷

VBA通信教材申込み

VBA課題解決型実践塾セミナー内容

申込 ヤフーショッピング

シートの合体印刷

(12)シートの合体印刷

東京のシート

シートの合体印刷

大阪のシート

シートの合体印刷

名古屋のシート

シートの合体印刷

印刷用のシート(合体分)

シートの合体印刷

印刷プレビュー

シートの合体印刷

各シートを一回で印刷したい時があります。
数行しかないデータのシートを1枚ずつ印刷するとみにくいばかりでなく、紙の無駄になります。
そのようなときに1枚にまとめて印刷できれば助かります。
発想の転換ですが各種シートを1枚の印刷用シートに合体してその印刷用シートのみを印刷すれば可能です。
そのためにはプログラムの基本
1)変数の使い方
2)条件文
3)繰り返し
の応用になりますが2)条件文はつかいません。

プログラムのポイント

行と列の移動に2重ループを使ってプログラムを短くしている。
東京シートから大阪シートに移る場合大阪シートを印刷用シートに転記するために
印刷用シートの行数を saigo = iで覚えておく。
Sub 印刷()
  Dim i As Long
  Dim j As Long
  Dim k As Long
  Dim saigo As Long
  Dim lastrow As Long
  Worksheets("印刷用").Cells.Clear
  lastrow = Worksheets("東京").Cells(Rows.Count, 1).End(xlUp).Row
'東京シートを貼り付ける
  Worksheets("印刷用").Cells(1, 1) = "東京"
  For i = 1 To lastrow
    For j = 1 To 2
      Worksheets("印刷用").Cells(i + 1, j) = Worksheets("東京").Cells(i, j)
    Next
  Next
  saigo = i
  k = 2
'大阪シートを貼り付ける
  lastrow = Worksheets("大阪").Cells(Rows.Count, 1).End(xlUp).Row
  Worksheets("印刷用").Cells(saigo + 1, 1) = "大阪"
  For i = 1 To lastrow
    For j = 1 To 2
      Worksheets("印刷用").Cells(saigo + k, j) = Worksheets("大阪").Cells(i, j)
    Next
    k = k + 1
  Next
'名古屋シートを貼り付ける
  saigo = saigo + k
  k = 2
  lastrow = Worksheets("名古屋").Cells(Rows.Count, 1).End(xlUp).Row
  Worksheets("印刷用").Cells(saigo + 1, 1) = "名古屋"
  For i = 1 To lastrow
    For j = 1 To 2
      Worksheets("印刷用").Cells(saigo + k, j) = Worksheets("名古屋").Cells(i, j)
    Next
    k = k + 1
  Next
  Worksheets("印刷用").PrintPreview
End Sub
シートが多くてすべてのシートを印刷する場合はブック内のすべてのシートを合体させシート名を先頭に記入すればできます。
その時は繰り返しが使えないところは条件文を使います。

 
塾長あいさつ
基本方針(考え方)
通信教育内容
課題解決セミナー内容
初心者基礎コース内容
カリキュラム・料金
案内地図・各種リンク
問合せ・申込み
アベノ塾
システムの内製化
アサイコンピュータACS
応用部品集(有料)
販売管理(事例)
財務管理(事例)
顧客管理(事例)
見積もり(事例)
給与(事例)
介護(事例)
ゴースト暗算(事例)
部品集(部品の基礎)
部品集(シート関連)
部品集(データベース)
部品集(セル関連)
部品集(関数)
部品集(フォーム関連)
部品集(ブック関連)
部品集(その他)
変数の勉強
繰り返しと条件文
マスター登録.訂正.削除
フォルダー内のファイル
項目をシート名で作成
ブックの操作
CSVファイルの取り込み
呼び出し元・先
商品マスター検索
エクセル関数をVBAで
エクセル関数を使う
よくつかうプログラム
販売管理(ソース)
財務管理(ソース)
給与管理(概要・画面)
見積もり(概要・画面)
工程管理(概要・画面)
原価管理(概要・画面)