- ベストアンサー
エクセル:VBAで特定のシートを選択し印刷
お世話になります。 エクセルの特定のシートを選択し印刷をかけるVBAを教えてください。 シートは[Paste_Up][…][Merge][GP****][GP****][GP****]・・・と続きます。このGPで始まるシート名を全て一括で印刷をかけたいのです。 GPの後に続く****は4桁の数字で当然全てユニークです。また、何枚出るかはその日によって違います。このGPで始まるシートは必ず[Merge]という名前のシートの後に来ます(設定を変えれば[Paste_Up]の前に全て持ってくることも可能です)。[Paste_Up]と[Merge]の間には何枚かシートが入ります。For…Nextでシート名が[Merge]になるまで等考えたのですが。。。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
簡単なサンプルを。。 '------------------------------------------- Sub Test() Dim mySheet As Worksheet For Each mySheet In ActiveWorkbook.Worksheets If Left(mySheet.Name, 2) = "GP" Then mySheet.PrintOut End If Next mySheet End Sub '-------------------------------------------- 見れば分かると思いますが、 全部のシート名を調べて、 シート名の頭2桁が、GP だったらプリントです。 以上。
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。 1. For Each で全てのワークシートについてループ処理をする 2. LIKE 演算子はワイルドカードが使えるので、シート名で条件分岐 Dim sh As Worksheet For Each sh in ThisWorkbook.Worksheets If sh.Name Like "GP_*" Then sh.PrintOut End If NExt
お礼
ご指導ありがとうございます。 "Like "GP_*" "この書き方が分からなかったのです。 勉強になります、ありがとうございました。 大変申し訳ないのですが、点数は回答順につけさせていただきます。 お二方とも大変感謝しております。
お礼
早速のご指導ありがとうございます。 こんなシンプルに作れるのですねぇ。。。 まだまだ勉強不足です。早速使わせていただきます。 今夜中に解決できると思っておりませんでしたので、とっても助かりました。ありがとうございました。