• ベストアンサー

VBAの印刷について教えてください

私は、VBAを始めて、まだ3日目の初心者ですので、詳しく教えて下さい。 エクセルの1つのブックの中にシートが10枚あるのですが、シートに印刷ボタンを表示して、ボタンを押したときに、シート1,4,5の印刷ボタンと、また、違う印刷ボタンを押したときにシート2.3、6が印刷されるようにしたいと思っていますので、よろしくお願いします。

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

  • ベストアンサー
  • mitsu-s
  • ベストアンサー率25% (7/27)
回答No.2

前の方の言う通りマクロの記録で動作を記録してからソースコードを加工する方法が一番簡単だと思いますよ。 Private Sub 1つ目のコマンドボタン名_Click() ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("シート名1").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("シート名4").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("シート名5").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 End Sub Private Sub 2つ目のコマンドボタン名_Click() ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("シート名2").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("シート名3").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 Sheets("シート名6").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 End Sub こんな感じでどうでしょう?

m-happy-t
質問者

補足

あと少し教えてください。 ユーザーホームのボタンとコマンドボタンは違うのですか。 違うのでしたら、コマンドボタンの作成を教えてください。

その他の回答 (3)

  • mitsu-s
  • ベストアンサー率25% (7/27)
回答No.4

>ユーザーホームのボタンとコマンドボタンは違うのですか。 >違うのでしたら、コマンドボタンの作成を教えてください。 ボタンは 簡単に言うと、 ボタンはクリックした時にマクロが実行されるように割り当てる。 コマンドボタンはコントロール自体にマクロを記述する。 というイメージになるのでしょうか。 で、作成方法は、 「表示」-「ツールバー」-「コントロールツールボックス」にチェックを入れます。 表示されたコントロールツールボックスの中からコマンドボタンをクリックし、シート上へ配置します。 作成したコマンドボタンをダブルクリックすると、 Visual Basic Editorが起動され、 Private Sub CommandButton1_click() End Sub と表示されます この Private Sub Command… から End Sub の間に 自分が処理したいコードを書き込みます。 ちなみに、CommandButton1_click()というのは commandButton1 という名前のコマンドボタンを クリックした場合に End Sub まで記述してある コードを実行します。

m-happy-t
質問者

お礼

ありがとうございました。 私は、初心者ですので、詳しく書いてくれてましたので助かりました。

  • sgh
  • ベストアンサー率61% (75/121)
回答No.3

>シートに印刷ボタンを表示して、印刷は出来ないのですか。 メニューから「表示」「ツールバー」「フォーム」をクリックすると、ツールバーが出てきます。 ボタンらしきアイコンをクリックして、シート上に配置すると、「マクロの登録」画面が出てきますので、作成したマクロを登録してください。 ちなみに、オートシェイプにもマクロは登録できます。

m-happy-t
質問者

お礼

ありがとうございました。 本よりわかりやすかったです。

  • sgh
  • ベストアンサー率61% (75/121)
回答No.1

こんなのでいかがでしょうか? Sub Print145() Sheets("Sheet1").Select ActiveWindow.SelectedSheets.PrintOut Sheets("Sheet4").Select ActiveWindow.SelectedSheets.PrintOut Sheets("Sheet5").Select ActiveWindow.SelectedSheets.PrintOut End Sub EXCELの場合は、マクロの記録を使って、動作をコード化してもらい、不要なところを削除するのが簡単です。

m-happy-t
質問者

補足

早速試してみました、印刷は出来たのですが、出来れば下記のようにしたいのですが、教えてください。 シートに印刷ボタンを表示して、印刷は出来ないのですか。

関連するQ&A

  • Excel2007のVBAでPreviewすると

    初めまして。 Excel2007のVBAで困っていることがあり解決方法を探しています。 もともとExcel97で稼働していたマクロ+VBA付きのシートをExcel2007で稼働させようとしています。 マクロ・VBAで作成されたシート(sheet2)をフォームに配置した印刷ボタンをユーザーに押してもらうことでプレビューを表示します。 印刷ボタンを押したときのプレビューのコード Worksheets("sheet2").PrintOut Copies:=1, Preview:=True でプレビュー画面を表示したところ、印刷ボタンや印刷設定ボタン等の上部にあるボタンが薄いグレーの配色で押せなくなりました。 調べた結果、ScreenUpdatingがfalseだと同じ状態になるとわかったので Application.ScreenUpdating = True Worksheets("sheet2").PrintOut Copies:=1, Preview:=True と書き換えましたが、不具合は解消されませんでした。 またブックを閉じずに、マクロを再起動させて同様の動作をおこなうと 何故かちゃんとボタンが押せるプレビューが表示します。 その状態のブックを保存して改めて開くと同じようにプレビューのボタンが押せなくなっています。 同じような現象で解決された方いらしたら解決方法を教えて頂ければありがたいです。 よろしくお願いいたします。

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

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

  • VBAで別のExcelブックのボタンのマクロ登録

    Excelブック1とExcelブック2があります。 Excelブック1はVBAで 1)Excelブック2を開いて 2)Excelブック1のワークシート(Sheet1)と  モジュールシート(Module1)を  Excelブック2にコピーします。 3)ワークシート(Sheet1)にはコントロール(ボタン)が貼り付けてあって  このボタンをクリックするとモジュールシート(Module1)の中の  Excute_Button()というプロシージャ(マクロ)を呼び出すため  Excelブック1のVBAで  wb.Worksheets("Sheet1").Shapes.Range(Array("Button 1")).Select  Selection.OnAction = "Excute_Button"  と記述してボタンのマクロの登録をします。   (wbはExcelブック2を指しています) 4)Excelブック2を保存して閉じる。 という処理をしています。 この後、Excelブック1を閉じて、 Excelブック2を開いてワークシート(Sheet1)のボタンをクリックすると Excelブック1が開いてしまいます。 Excelブック2のボタンのマクロの登録のマクロ名を見てみると Excelブック1のファイル名!Excute_Button となっています。 Excelブック1のVBAで、ここを単にExcute_Buttonだけにするには どのようにすればよいでしょうか。

  • VBAで印刷の定義

    VBAの初心者です。ExcelでVBAを使用して印刷をしているのですが、 VBAで毎週日曜日と第2土曜日だけが特別シートを出力する場合 VBAでどうなるのでしょうか。 教えていただけますでしょうか。 例えば: シートは4つ(sheet1~sheet4)あるとします。 sheet1~sheet3までは毎週日曜日に出力。 Sheet4だけが第2土曜日に出力。 宜しくお願いします。

  • Excel VBAで印刷ジョブを一つにしたい

    Excel VBAを使用して、シートAの元データの表の一行目から、 決められたセルに5レコードずつ読み込んで表示させる AccessのレポートようなシートBを作りました。 シートAには約500レコードあり、 シートBのページ数は約100ページ分になります。 このシートBの100ページを一度に印刷したく マクロを組み、ページを変えながらPrintOutメソッドで 印刷をしてみましたが、 プリンタのジョブが多くなりすぎて困っています。 Excelのみで、別のブックを使わずに解決する方法を探しています。 何か良い方法はないでしょうか。 よろしくお願いします。

  • 印刷後メッセージボックスを表示したい

    VBA初心者です。 エクセルで作成したワークシートの中で特定のシートを印刷した後にメッセージボックスで” 枚印刷しました”と表示させたいのですが、できないでしょうか? 印刷はVBAを組まずにツールバーをクリックでしたいです。 うまく説明ができなくてわかりにくいかもしれませんが宜しくお願いいたします。

  • マクロ 印刷及び印刷プレビューについて

    Excelのブックに3つ(「目次」「入力用」「出力用」)のシートを作成しております。 ツールの印刷ボタン又は印刷プレビューボタンを押した時に、その内の一つ(「出力用」)のシートのみを印刷又は表示したいのですが、そのようなことは出来るのでしょうか? できればマクロの登録をして使うボタン?は使いたくありません。 よろしくお願いいたします。

  • VBA 印刷 画面

    エクセルVBAについて。 ワークシートの印刷をVBAで行っています。 worksheets("○○○").printout ワークシートを複数印刷する際に、逐一 そのワークシートに画面遷移しないようにするには、どうすればよいでしょうか? よろしくお願いします。 Excel2010以上

  • Excel VBAの連続印刷について。

    Excel VBAをこれから始めてみようとしている超初心者です。 手始めとして、以下の処理をさせてやろうかと思っていたのですが いきなり挫折しまいました。。 ◎Sheet1から順番に最終シートまでを連続印刷。 ◎最終シートまで印刷されたら処理終了で、Sheet1を表示させる。 ・データによってシート数は変動する。最終がSheet50の時もあれば  Sheet300の時もあり。 ・シート名は「Sheet」+半角数字で、連続している。 シート名を変数にして、1ずつ加えていって…と考えながら、色々と 繰り返し処理についてもネットで調べてみたのですが、結局頭の中で 行き詰ってしまいました。 非常に簡単な処理だとは思うのですが、どのような書き方があるのか ご教示頂ければ助かります。 宜しくお願いします。

  • エクセル2010VBA での質問です。

    VBAはやったことないので全く初心者です。 町内の諸費用をエクセルで管理しています。 年度が変わる度、当番も変わってデータを引き継いで管理するのですが、最初に連続印刷のVBAを作ってくれた人がもういないので、今まで、前年度のものをコピーし、中のデータを書き換えて使っていたようなのですが・・・ どのような設定がされているか把握するために質問させて頂きます。 エクセルを開き、マクロで作ってある印刷ボタン?を押すと、Sheet1にあるデータベース約100人分 (B列に100人分の名前・2行目にいくつかの項目・各項目の下に金額)が別のSheetにある個人請求書に連続印刷されるというものですが、添付していますVBAの内容を把握したい事が一つ目です。 年度が変わるごとにそのシートをコピーして中のデータを書き換えて使っているのですが、問題は有りますでしょうか?(二つ目です) 添付しております、ファイルのVBAを自分はわからないのですが、このBOOKを開いた時に ”このブックには、ほかのデータソースへのリンクが含まれています。 ・リンクを更新するとエクセルは最新のデータを取り込もうとします。 ・リンクを更新しないと、以前の情報が使用されます。 注意:データリンクは許可なく機密情報にアクセスして共有するのに使用される可能性があります。また、その他の問題を起こす可能性のある操作に使用される場合があります。このブックの作成元が信頼できない場合にはリンクを更新しないでください。   更新する・更新しない・ヘルプ ” というメッセージが出てきますが、このBOOKが入っているフォルダ以外のデータも参照されているのでしょうか?(三つ目) 情報が少なくて済みません。 宜しくお願い致します。

専門家に質問してみよう