- ベストアンサー
EXCEL 複数シートを1枚に印刷する方法
同じファイルにある複数のシートを1枚に印刷する方法を教えてください。 |--------- |シート1 | |シート2 | |シート3 |--------- シート1のデータの下にシート2のデータを シート2のデータの下にシート3のデータを というかんじです。 フリーソフトやプリンタ自体の設定でできるかもしれませんが、 EXCEL単体での作業を前提としています。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
残念ながら簡単に、とはいかないみたいです。 どんな感じにデータが記述されていて、どのように印刷したいのか、がわからないので、随分適当(本当にひっつけるだけ)ですが、単純なマクロを組んでみました。 1)ツール⇒マクロ⇒VisualBasicEditor でマクロ作成画面を開く。 2)挿入⇒標準モジュール で白紙の画面を開く。 3)以下のコードを貼り付ける。 --ここから-- Public Sub BOOKPRT() Dim sRow As Long, nRow As Long, eRow As Long Dim eCol As Integer, shCnt As Integer Sheets(1).Activate nRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count sRow = nRow 'データコピー For shCnt = 2 To Sheets.Count Sheets(shCnt).Activate With ActiveSheet.UsedRange eRow = .Row + .Rows.Count - 1 eCol = .Column + .Columns.Count - 1 End With ActiveSheet.Range(Cells(1, 1), Cells(eRow, eCol)).Copy Sheets(1).Activate Cells(nRow, 1).Select ActiveSheet.Paste nRow = nRow + eRow Next shCnt '印刷プレビュー表示。印刷ボタンを押せば印刷できます。 Sheets(1).PrintOut Copies:=1, Preview:=True, Collate:=True '編集結果を元にもどす Application.CutCopyMode = False Range(sRow & ":65536").Select Selection.Delete Shift:=xlUp Range("A1").Select End Sub --ここまで-- 4)VisualBasicEditor を閉じる 5)ツール⇒マクロ⇒マクロ で BOOKPRT を実行する。 これで全シートの内容がひっついた状態で印刷プレビューが表示されます。 (そこから印刷できます) 宜しければお試しください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
素人には出来て良さそうと思う課題だが、甘い。 エクセルはいろんな面で「シートが別だと別世界と思え」と小生は感じます。 現実にはそのカタチに無いもの(ルールだけは頭に思い描けるもの)を(設定や指定だけで)印刷することは出来ないと思ったほうがよい。グラフなどでそういう質問が出た場合アリ。 シート1の後にシート2、その後にシート3を継ぎ足した状態を作らないと質問のようなのは出来ない。VBAでもPageSetUpは特定の1つのシートに対して行うようになっている。 ーー 3シートの印刷を1度に行うだけなら、3シートを指定し印刷すれば順次印刷されると思うが。 === VBAが出来れば、シート2、シート3の表を継ぎ足すのは簡単だ。 それを勉強したら。 >データを が曲者で、見出しも含めるのか、実質データ行だけ持ってくるのか? の点は疑問があるが。
お礼
ありがとうございます。 簡単にできないことは分かりました。
- mu2011
- ベストアンサー率38% (1910/4994)
安直ですが、データをオブジェクト化して貼り付ける方法ですが如何でしょうか。 (1)シート1のデータ範囲をコピー→別シートにshiftキー押下しながら編集→図の貼り付け(又は、図のリンク貼り付け) (2)シート2・3も同様の操作、後はオブジェクトのサイズ調整を行う 因みに「図のリンク貼り付け」を選択すると、元データ変更時にも反映されます。
お礼
ありがとうございます。 その案も思いつきましたが、一発で印刷できる方法がないかと思いまして・・・。 手がなければその方法でやろうと思います。
お礼
ありがとうございます。 VBAは勉強を始めたばかりなので大変参考になります。 早速試してみようと思います。