アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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 だったらプリントです。

以上。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/06/04 22:37

こんにちは。



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
    • good
    • 0
この回答へのお礼

ご指導ありがとうございます。
"Like "GP_*" "この書き方が分からなかったのです。
勉強になります、ありがとうございました。

大変申し訳ないのですが、点数は回答順につけさせていただきます。
お二方とも大変感謝しております。

お礼日時:2008/06/04 22:39

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

このQ&Aを見た人はこんなQ&Aも見ています