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

このQ&Aのポイント
  • VBA初心者です。エクセルで特定のシート「シート3」を印刷する方法について教えてください。
  • シート0からシート5まで複数のシートがあるエクセルファイルで、シート3だけを印刷したいです。
  • 現在、シート3を選択してから印刷するVBAを試していますが、シート3のページに飛んでしまいます。他に解決方法はありますか?
回答を見る
  • ベストアンサー

エクセルで、特定のシートを印刷する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の両方が印刷されてしまい、希望通りにいきません。 そもそも、私の望んでいること自体が不可能なのか、 またそうでなければその解決方法をどなたか教えていただけないでしょうか。

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

  • ベストアンサー
  • snc35744
  • ベストアンサー率20% (8/39)
回答No.1

Sub zzz() Application.ScreenUpdating = False Sheets("Sheet3").PrintOut Application.ScreenUpdating = True End Sub

NEKO_1981
質問者

お礼

できました。有難うございました。

関連するQ&A

  • 印刷枚数を指定して印刷(印刷しないシートを含む場合)

    マクロ(VBA)の超超初心者です。 エクセルのブックの全シート(13sheet)の印刷を1つのシートで管理するマクロを作りたいと思っています。 下記のマクロでチェックしたシートのみ印刷することは可能になりました。 Sub チェックしたシートの印刷() 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 そこにさらに印刷枚数を指定して印刷したいのですが、下記のマクロだと、0枚(印刷しないときの)の設定ができません、、、 0枚でもマクロを実行できるよにするにはどうしたらよいのでしょうか、、、 さらに、このマクロを簡単に書きたいのです。(ほぼ同じことの繰り返しなので、、、、) Sheets("sheet1").PrintOut Copies:=Range("A1").Value Sheets("sheet2").PrintOut Copies:=Range("A2").Value ・     ・ ・ Sheets("Sheet13").PrintOut Copies:=Range("A13").Value End Sub 超超初心者があつかましい質問ですが、ご教授のほうよろしくおねがいいたします。

  • 複数のシートの1ページ目と2ページ目を連続印刷したい

    Vista Excel2007でマクロ作成中の初心者です。 複数のシートが12個あります。(増減あり) それぞれのシートには、必ず2ページの改ページが設定してあります。 この複数シートの1ページ目だけを連続印刷したいです。 また、2ページ目だけを連続印刷したいです。以下のようにしたのですが うまく印刷できません。よろしくお願いします。 Sub シートの1ページ目の印刷() Dim i As Integer For i = 1 To 12 With Worksheets(i) .Range("A1:Q44").PrintOut End With Next i End If End Sub ------------------------------------- Sub シートの2ページ目の印刷() Dim i As Integer For i = 1 To 12 With Worksheets(i) .Range("Q46:Q89").PrintOut End With Next i End If End Sub

  • 【エクセルVBA】特定のシートのみ検索したい

    VBA勉強中です。 フォルダにある複数のファイル(1ファイル内には複数シートあります)を順番に開けて検索をかけ、条件に合致した行をあるファイルへ転記・集約させるマクロを組みたいと思っています。 (条件は1番左の列が「○」であることです。) ネットや本を参考にしながら組んでみたのですが、「○」がない(シートの)行も転記されてしまい困っています。 (○があるシートは複数シートの内、1シートのみなのですが、○がないシートからも 「○があるシートの○がある行」と同じ行番号の行がが転記されているようです) 組んでみたマクロは以下のとおりです。 ------------------------------------------------ Sub 楕円1_Click() ActiveSheet.Range("A2:H30").ClearContents Dim ans, fn, wb, x, i, n, sh, myPath ans = "○" '条件 myPath = ThisWorkbook.Path & "\" fn = Dir(myPath & "*.xls") '選択したフォルダ内のExcelファイル Do Until fn = "" If fn <> ThisWorkbook.Name Then 'ファイルが当ファイル以外なら Set wb = Workbooks.Open(myPath & fn) '選択したファイルを開きます For Each sh In wb.Worksheets '各シートごとに x = sh.Cells(Rows.Count, 1).End(xlUp).Row '最終行取得 For i = 1 To x '1行目から最終行まで以下を実行します If Cells(i, 1) = ans Then '条件に合致するか検索 n = n + 1 With ThisWorkbook.Sheets("Sheet1") '転記 .Cells(n + 1, 1) = sh.Cells(i, "B") .Cells(n + 1, 2) = sh.Cells(i, "C") .Cells(n + 1, 3) = sh.Cells(i, "D") .Cells(n + 1, 4) = sh.Cells(i, "E") .Cells(n + 1, 5) = sh.Cells(i, "F") End With End If Next i Next sh wb.Close (False) '選択したファイルを閉じる End If fn = Dir() '次のファイルを検索 Set wb = Nothing Loop '繰り返し --------------------------------------------------------- このマクロでは各ファイルの全てのシートを検索していると思うのですが、 全シートを検索していることが問題でしょうか? 検索したいデータは特定のシートにのみ存在するので(全ファイル同じ名前のシートです) 特定のシートのみ検索してくれればそれで良いのですがどう変更すればよいかわかりません。 「For Each sh In wb.Worksheets '各シートごとに」 色々と調べてここを変更してみたのですが 何れもエラーとなり上手くいきませんでした。 どなたか上手く直す方法を教えて下さい。 宜しくお願いします。

  • エクセルの特定シート(複数)を印刷不可にする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シートは、印刷不可。 としたいのです。 ご伝授いただけると助かります。よろしくお願いします。

  • EXCEL VBA 印刷

    EXCEL VBA 印刷 初歩中の初歩で申し訳ありません・・・該当シート(Sheet1(名前は別名))の印刷をしたいと思い、ボタンの設定をしたのですが エラーとなります(画像を添付します。) お手数ですが、フォローの程宜しくお願いいたします。 参考までにコードも記載します。 Private Sub CommandButton9_Click() Range("A137").Select End Sub --------------------------上記はこんぼボックスで該当セルへジャンプしています。 Sub 印刷の実行() Worksheests("Sheet1").PrintOut End Sub

  • EXCEL VBA シートの連続印刷に白黒印刷

    EXCEL VBAの初心者です。回答、指導をよろしくお願いします。EXCEL2003を使用しています。シートAとBを連続で印刷するVBAに白黒で印刷するVBAを加えたいのですが記述方法がわかりませんのでご指導お願いします。シートの連続印刷VBAは下記ですが、これでよろしいでしょうか。どなたかご指導よろしくお願いします。 Sub purint複数シート印刷() Sheets(Array("A", "B")).PrintOut End Sub

  • エクセルのシート別印刷枚数指定(マクロ)

    よろしくお願い致します。 先ほど下記に関してのマクロを質問し回答を得られたのですが、 >>1)シート1のA1セルを右クリックするとシート2を印刷。 >>2)シート1のB1セルを右クリックするとシート3を印刷。 上記に対しての回答 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1:B1")) Is Nothing Then Exit Sub If Target.Address = "$A$1" Then Sheets("Sheet2").PrintOut ElseIf Target.Address = "$B$1" Then Sheets("Sheet3").PrintOut End If Cancel = True End Sub こちらを更に改良し、それぞれのシート印刷時に2部印刷が行われるようにする。 こちらのやりかたを教えて下さい。 よろしくお願い致します。

  • Excel VBAで他のシートを印刷するとき

    シート1からシート2を表示しないで印刷したいんですが下の記述だと一瞬ですがシート2が表示されます、どのようにすればシート1のままシート2を印刷することができるのでしょうか、よろしくお願いします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2004/7/23 ユーザー名 : H ' Sheets("Sheet2").PrintOut Copies:=1, Collate:=True End Sub

  • エクセル VBA 印刷設定

    エクセル VBAを使用して リストの入力を行い、全て入力後印刷を行うのではなく 入力途中で設定した列数(1ページ分60列)のデーターが 入力されたら入力時に印刷を実行したいのですが 前回印刷したページを印刷しない方法がわかりません。 Private Sub CommandButton1_Click() Hantei = 60 With Worksheets("発注残明細入力画面") For Hantei = Hantei To 1380 If .Cells(Hantei + 60, 1) = "" Then If .Cells(Hantei, 1) <> "" Then ActiveWindow.SelectedSheets.PrintOut _ From:=(Hantei / 60), To:=(Hantei / 60), Copies:=1, Collate:=True End If End If Hantei = Hantei + 59 Next Hantei   以下にリストシートに書き込むコードです   End Sub その他、ぜんぜん違う方法で設定できますでしょうか?

  • 複数のシートをマクロで印刷

    印刷したい複数のシートをアクティブ状態にして以下のマクロを実行すると、余計に印刷されてしまいます。 Sub Test()  Dim ws As Worksheet  For Each ws In ActiveWindow.SelectedSheets   ActiveWindow.SelectedSheets.PrintOut _   Copies:=1, Collate:=True  Next ws End Sub 例えば、Sheet1とSheet2を選択して実行すると、Sheet1とSheet2が二部ずつ印刷されます。また、Sheet1とSheet2とSheet3を選択して実行すると、それぞれが三部ずつ印刷されます。 それぞれを一部ずつ印刷するためには、マクロをどう直せばいいでしょうか?

専門家に質問してみよう