• ベストアンサー

エクセル: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

  • エクセルで、特定のシートを印刷するVBA

    VBA初心者です。下記が可能か否かどなたか教えていただけませんか。 【内容】  一つのエクセルファイルに複数シートあるとします。(シート0~シート5まで)  「シート0」のトップページに選択ボタンをもうけて、それを押下したら、特定のシート「シート3」を印刷するのようなモノを作りたいと考えています。※ただし条件として、シートは「シート0」のままでその印刷処理を行いたいのです。(一度もシート3にいくことなく) 【今までの試み】 1.調べて下記のようなものを作ってみました。 Sub 特定シート印刷() Dim sh As Worksheet For Each sh In Worksheets If sh.Name Like "シート3" Then sh.PrintOut End If Next End Sub ただし、これだと、シート3のページに飛んで、印刷してしまいました。 2.次にマクロの記録で、マウス軌跡の実行を試みました。 具体的には、シート3をCtrlキーを押しながら選択し、ファイル→ 印刷→「選択したシートを印刷」を選択し実行しました。 この場合はシート0とシート3の両方が印刷されてしまい、希望通りにいきません。 そもそも、私の望んでいること自体が不可能なのか、 またそうでなければその解決方法をどなたか教えていただけないでしょうか。

  • vbaで全てのシートを選択状態にしたい 印刷

    マクロの記録で、全てのシートを選択すると、 Sheets(Array("シート1", "シート2")).Select というのが取得できるのですが、 このコードはシート名が増えたり、シート名が変更されると、使えなくなってしまいます。 全てのシートを選択状態にして、印刷をするvbaをしたいのですが、 シートが増えても使えるvbaコードはありますか?

  • VBAでシート名を変数で選択する方法

    ExcelのVBAの印刷でシート名の選択を変数で行いたいのですが、この変数をシート番号とシート名(文字列)のどちらでもできるようになりませんか? 目的は2~20までの全シート印刷と特定のページのみの印刷を同じプログラムで行いたいためです。 よろしくお願いします。

  • エクセルの特定シート(複数)を印刷不可にするVBA

    教えてください。VBA超初心者です。 エクセルで、特定の複数のシート(指定シート)を印刷不可にする方法はありますでしょうか? いろいろと調べてみたところ、特定シート(一つ)を指定する場合はわかりました。 BBシート印刷不可。 ========================== Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name <> "BB" Then Exit Sub MsgBox "印刷できません" Cancel = True End Sub '========================== できれば、3つあるシートのうち、 AAシートは印刷可能。 BBシートとCCシートは、印刷不可。 としたいのです。 ご伝授いただけると助かります。よろしくお願いします。

  • VBAで特定のシートを複数選択する方法

    エクセルのマクロで複数のシートから特定の文字のみが入力されているシートを全て選択したいのですが、どのようにプログラムすればよいのでしょうか? 最近勉強し始めたばかりでVBAについての知識が乏しく、完全に行き詰ってしまいました。

  • Excelのシートを並び変えたいのですが。。。

    Excelのシートを"データの並び替え"の様に並び替え出来ませんか? 今、1つのBook内に100シートあるファイルがあります。 それぞれ、シートには数字の名前がついています。 100から900までの数字に枝番号がついてます。 枝番号は、"-"後に1桁から2桁の英数字がついてます。 並び替えの条件は、"-"の前の数字の部分で昇降順にしたいのです。 もしそこで同じ番号のシートがあった時は、"-"後の数字で昇降順にしたいのです。 VBAもマクロも初心者です。よろしくお願いします。

  • VBAで2シートあるデータを一度に印刷する方法

    エクセルのシート1とシート2にそれぞれシート3からデータをVLOOKで引き込むように設定をしてあります。 印刷する際に、一括印刷や指定したものだけを印刷するボタンを作成してあるのですが、そこに『シート1のみ印刷・シート2のみ印刷、シート1と2両方印刷』が選択できるようなVBAを追加することは可能でしょうか?? シート1と2はまったく違うデータを引き込んでいます。 VBAは初心者です。 よろしくお願いします。

  • Excel VBA シート印刷

    VBA初心者で申し訳ないですが 質問させていただきます。 32社の企業様がいて入力用のシートに 全てリンクさせているのですが 都度印刷するタイミングが違います。 そこで、チェックボックスを活用して TRUEの時は印刷できるように設定したいのですが どのようなコードがありますでしょうか? ご教授いただければ幸いです。

  • 複数シートから特定シートを読み込む

    VBA初心者です。 ある特定のフォルダに入っている複数のファイルから、指定したシート名のシートだけコピーする方法はあるのでしょうか? ちなみに、フォルダに入っているファイルは全て指定したシートを読み込みたいと思ってます。

  • エクセルVBA 非表示シートがあるとエラー

    VBA初心者です。 エクセル2007を使用しております。 同一ブック内にある全てのシートで特定のマクロ(下記の例では×××)を実行するようにVBAマクロを個人用マクロブック上に作成しております。 Sub シート一括処理() Dim Sht As Worksheet For Each Sht In Worksheets Sht.Select Call ××× Next Sht End Sub ブック内に非表示シートがあった場合、エラーとなります。 ===================== 実行時エラー'1004' 'select'メソッドは失敗しました: ===================== 下記のような要件を満たすにはどのように修正すればよいでしょうか。 ・非表示シートに対しても、×××マクロは適応したい。 ・非表示シートは暫定的に表示してもよいが、最終的には非表示の状態にしたい。 よろしくお願いします。

専門家に質問してみよう