• ベストアンサー

エクセル:VBAで特定のシートを選択し印刷

お世話になります。 エクセルの特定のシートを選択し印刷をかけるVBAを教えてください。 シートは[Paste_Up][…][Merge][GP****][GP****][GP****]・・・と続きます。このGPで始まるシート名を全て一括で印刷をかけたいのです。 GPの後に続く****は4桁の数字で当然全てユニークです。また、何枚出るかはその日によって違います。このGPで始まるシートは必ず[Merge]という名前のシートの後に来ます(設定を変えれば[Paste_Up]の前に全て持ってくることも可能です)。[Paste_Up]と[Merge]の間には何枚かシートが入ります。For…Nextでシート名が[Merge]になるまで等考えたのですが。。。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

簡単なサンプルを。。 '------------------------------------------- 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 だったらプリントです。 以上。

TENSAW
質問者

お礼

早速のご指導ありがとうございます。 こんなシンプルに作れるのですねぇ。。。 まだまだ勉強不足です。早速使わせていただきます。 今夜中に解決できると思っておりませんでしたので、とっても助かりました。ありがとうございました。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。 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

TENSAW
質問者

お礼

ご指導ありがとうございます。 "Like "GP_*" "この書き方が分からなかったのです。 勉強になります、ありがとうございました。 大変申し訳ないのですが、点数は回答順につけさせていただきます。 お二方とも大変感謝しております。

関連するQ&A

専門家に質問してみよう