AIと戦って、あなたの人生のリスク診断 >>

エクセルで目次シートを作り、他の全シート名をリストアップし、その目次シート上で全シートの印刷管理ができるようなマクロを作りたいと考えています。
目次としてリストアップされたシート名の隣にチェックを入れるセルをつくり、そこにチェックが入っているシートだけをまとめて印刷できるようにしたいんです。

シートのリストはあらかじめ手入力しておくとして、後の印刷のところをどうやればいいのかわかりません。
どなたかわかる方教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

> チェックが入っているシートだけをまとめて印刷できるように。



チェックではなく、目次シートにリストアップされたシート名の左側の
セルに、印刷したいものには半角の 1 を入力するとします。
チェックボックスを使う場合は、そのリンク先セルが True なら 1 が
表示されるように設定してください。

複数シートを選択するための正式な「配列追加」処理が不得意ですので
我流でやっつけてみました。

まず、リストアップされたシート名が入ったセル範囲(例:B3:B100)を
選択して、IDX という名前を定義してください。
その後に以下のモジュールを実行します。

Sub PrtTest()
 Dim rng, shChk, PrtSh
 For Each rng In Range("IDX")
  If rng.Offset(0, -1) = 1 Then
   shChk = shChk & rng.Value & ","
  End If
 Next
 shChk = Left(shChk, Len(shChk) - 1)
 PrtSh = Split(shChk, ",")
 Sheets(PrtSh).Select
 ActiveWindow.SelectedSheets.PrintOut
End Sub


ついでに、シートのリストを自動作成するオマケの処理です。
例えばC4を選択して以下のモジュールを実行すると、C4以降のC列に
全シート名が書き出され、その範囲に自動的に IDX という名前を定義
します。

Sub ListTest()
 Dim i, ad
 If Selection.Column < 2 Then Exit Sub
 ad = Selection.Address
 For i = 2 To Worksheets.Count
  Selection.Value = Worksheets(i).Name
  If i < Worksheets.Count Then Selection.Offset(1, 0).Select
 Next
 Range(ad & ":" & Selection.Address).Select
 ActiveWorkbook.Names.Add Name:="IDX", RefersToLocal:=Selection
End Sub
    • good
    • 0

シートを追加(シートを印刷するかを入力すすシート)


Sheet4
A1:B3に入力。
3シートしかない例。
シート名 印刷するかどうかのサイン(この例ではpが印刷)
Sheet1p
Sheet2
Sheet3p
「印刷」(さらに進んだことを指定するなら「ページ設定})のマクロの記録を採って勉強しておく。
ーーー
Sub test01()
d = Worksheets("Sheet4").Range("A65536").End(xlUp).Row
MsgBox d
For i = 1 To d
If Worksheets("Sheet4").Cells(i, "B") = "p" Then
s = Worksheets("Sheet4").Cells(i, "A")
Worksheets(s).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End If
Next i
End Sub
をVBEの画面に入力(コピー)し実行。
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
はマクロの記録から引き写したものです。
「ページ設定」の内容までもを各シートで、別々に変えた(指定した)ければ
Sheet4のC列以右各列に指定内容を入力し、VBAで、C列以右の列の内容をSheet4のセルから採り、PageSetUpのマクロ記録で出たコードの該当行(=の右辺)にセットして、その後PrintOutの行を実行するようコードを組み立てればよい。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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


人気Q&Aランキング