• ベストアンサー

あるシートを10枚印刷するマクロを組みました。

あるシートを10枚印刷するマクロを組みました。 これの前後にauto open,close を足せば、アイコンをクリックするだけで、10枚印刷することができると思うのですが、どのように書けばいいか調べたのですが、わかりませんでした。 初歩的な質問だとは思いますが、よろしくお願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

auto openに印刷して、閉じる マクロを組み込むと印刷は出来ると思いますが ファイルを編集するのに大変ではないでしょうか? 編集したくてもすぐに閉じてしまいます。 >アイコンをクリックするだけで、10枚印刷することができると思うのですが デスクトップにアイコンを作って、クリックするということですよね。 一例ですが、VBSファイルを使って、印刷する方法です。 メモ帳を開いて Option Explicit Dim objExcel Dim xlBook Dim xlSheet Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True objExcel.Workbooks.Open "F:\TEST.xls" Set xlBook = objExcel.Workbooks(1) Set xlSheet = xlBook.Worksheets(1) xlSheet.PrintOut ,,5 objExcel.Workbooks(1).Close objExcel.Quit Set objExcel = Nothing Set xlBook = Nothing Set xlSheet = Nothing を貼り付けて、名前をつけて保存、デスクトップに 印刷.VBS(必ず拡張子を VBS とします) デスクトップに テキストファイルのアイコンが出来るのでクリックしてみてください。 VBAではなくて VBS の機能が実行されて印刷されます。 プログラムの流れは F:\TEST.xls を開いて Worksheets(1) 一番上のシートを  xlSheet.PrintOut ,,5 5枚印刷して objExcel.Workbooks(1).Close ブックを閉じて objExcel.Quit エクセルを終了 と云った流れです。 うまく作動するようになったら objExcel.Visible = True の行を削除してください。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

これも初心者的な生半可な点が見える。 auto_openやWorkbook_OpenやBeforeCloseはボタンやアイコンをクリックするのをキッカケにするのでなく、エクセルブックを開いたり閉じることをきっかけにして行われるイベントです。 これらはGoogleででもそれぞれで照会すればコード例が多数出るだろう。 Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub や Private Sub Workbook_Open() End Sub ーーー だから>アイコンをクリックするだけで、とは違う範疇のものです。 ーーー 普通はシート上やフォーム上にコマンドボタンを貼り付け、そのクリックイベントに印刷するマクロ(普通はVBAという)を入れる。 Private Sub CommandButton1_Click() End Sub ーーー 他に ボタン 作成 方法 (メニュバーに設定) http://excel-macro-vba.seesaa.net/article/137336564.html ーー 内容的に出来上がっている(閉じている)ブックに対し、印刷をするためにだけ、デスクトップに アイコンを作るようなことを考えるなら Googleででも「vbs マクロ 実行」で照会し、記事を読むこと。質問者には早すぎる課題と思う。 http://www.happy2-island.com/bbs/bbs.cgi?mode=past&no=59など ーーー >初歩的な質問だとは思いますが は見当違い。10枚+印刷は初歩的コードでも、キッカケの仕組みに凝るとVBAの上級の課題だと思う ので、当面は、閉じると印刷で我慢しては。

全文を見る
すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

VBEで標準モジュールを追加して Sub auto_open() '10枚印刷するマクロを記載 Application.Quit '↓ 'ThisWorkbook.Close SaveChanges:=False にするとブックだけが終了します。 End Sub で、印刷してエクセルを終了します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロ auto_open がうまくゆかない

    マクロで たとえば auto_open()  Sheets("sheet1").select というように編集しても ファイルをオープンした時全然このマクロ自体が有効にならず、手動で、「セキュリティの警告 マクロが無効にされました オプション」 となっている「オプション」をクリックしてはじめて sheet1 が自動表示されます。 AUTO_ OPEN はファイルを開いた時に即有効になるんではないかと思いますが、どうしてでしょうか。

  • エクセルでデータがあるシートだけ印刷するマクロ

    エクセルのマクロで印刷するマクロを使っていますが、5つある ワークシートを全て選択して印刷するマクロでこれをデータ(数値)が 入っているワークシートだけ印刷するマクロにしたいのですがどのようにすればいいのでしょうか?

  • 指定のシート枚数をマクロで印刷

    こんにちは。 エクセルマクロを使用しての印刷に関して、皆様の知恵をお借りしたく投稿させて頂きました。 現在は ・マクロを実行し印刷したいエクセルブックを開く。 ・指定した名前のエクセルシートの選択。 ・選択した名前のシートの印刷。 となります。 それを ・マクロを実行し印刷したいエクセルブックを開く。 ・2枚目のシートから4枚目のシートまでを選択。 ・空白のシートを追加(両面印刷する際に奇数だと次のファイルが同じ紙の裏面に印刷されてしまうため) ・2枚目から4枚目シート+空白シートの印刷。 と変更したいのです。 ※2~5枚目シート選択、1~6枚目シート選択など、変更できると助かります。 ※偶数シートの印刷の場合は空白シート追加は不要となります。 1000近くのエクセルブックを印刷しているのですが、シート名が統一されていないため、マクロが止まってしまい困っておりました。 なんとか知恵をお貸し頂けないでしょうか。 宜しくお願い致します。 下記に現在使用しているマクロのコードを提示致します。 --------------------------------------------------------------------------------------------------------- Sub Excelファイルの指定したシートのみ印刷_資料2から資料3Ver() '複数のファイルを選択する Dim vntFileName As Variant Dim vntGetFileName As Variant Dim B As Boolean Dim W As Workbook 'ファイルを開くダイアログを開きます vntFileName = _ Application.GetOpenFilename( _ FileFilter:="xlsxファイル(*.xlsx),*.xlsx" & _ ",エクセルファイル(*.xls),*.xls" _ , FilterIndex:=1 _ , Title:="印刷するファイルを選択" _ , MultiSelect:=True _ ) If IsArray(vntFileName) Then For Each vntGetFileName In vntFileName Set W = Workbooks.Open(vntGetFileName) If B Then Sheets(Array("資料2", "資料3", "資料4")).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1 '通常設定のプリンタで出力 Else Sheets(Array("資料2", "資料3", "資料4")).Select Application.Dialogs(xlDialogPrint).Show '印刷ダイアログを表示 B = True End If W.Close False Next End If 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を選択して実行すると、それぞれが三部ずつ印刷されます。 それぞれを一部ずつ印刷するためには、マクロをどう直せばいいでしょうか?

  • マクロVBAで印刷

    マクロはまったくの初心者です。 エクセルで入力シートにて明細書を作成したものを、出力シートに反映させ、 マクロで作成した印刷ボタンをクリックすると、1枚目には「お客様控え」・2枚目には「支店控え」・ 3枚目には「当社控え」となる様なマクロが出来てます。 これを「当社控え」だけを印刷するように変更したいんです。 出力シートには「お客様控え」としかなってないのに、印刷するとその3枚が印刷されます。 他の人が作ったもので、私は分からないためにマクロの変更・修正が出来ません。説明も分かりずらくて申し訳ございません。 どなたか分かる方教えてください。

  • シート1にある印刷ボタンを押してシート2とシート3を印刷するには?

    シート1にある印刷ボタンを押して シート2とシート3を印刷するには どのようなマクロにすればよいですか?

  • エクセルシートをまとめて印刷(ボタンを使い)

    Excel(エクセル)印刷について質問です。 シートをまとめて印刷する場合に シフトを押しながらシートのタブを クリックすれば印刷出来るのは、 解りますが、毎日同じ入力を行うので 下記のような事が出来ないかと思います。 Sheet1にマクロで?ボタンを造り そのボタンを押すだけで、 Sheet2~4までをまとめて印刷したい。 宜しくお願い致します。

  • 2つのシートを同時に印刷するボタン【画像あり】

    タイトルの件、質問します。 下記の画像を例に、質問させて頂きます。 シート【印刷1】とシート【印刷2】を同時に印刷できるボタンを シート【印刷支持ボタン】に作成したい。というのが質問です。 現在は、シート【印刷1】で印刷を1回クリック→シート【印刷2】に移動して、印刷を1回クリックして 2つのシートを印刷しています。おそらく、マクロとかで、できる気がします。 ご存知の方、いらっしゃいましたら、宜しくお願いします。

  • マクロで自動印刷

    マクロを使用して印刷を行う場合の マクロを教えていただけないでしょうか? 1つのエクセルブックに、 『あ』と『い』と『う』の3個のシートがあります。 それぞれ印刷範囲設定済みです。 マクロボタンをすでに作成済みで ・ シート『あ』と『い』と『う』印刷ボタン ・ シート『あ』と『い』印刷ボタン ・ シート『う』のみ印刷ボタン があります。 それぞれのボタンの、マクロを教えていただけないでしょうか。 宜しくお願いいたします。

  • EXCELでワークシートを開いたらマクロを自動実行したい

    いつもお世話になります。 EXCEL2000を使用しています。 EXCELファイルの中のあるワークシートを開いたときにマクロを自動実行することはできますか? AUTO_OPENだとファイルを開くたびに自動実行されるので、特定のワークシートを開いたときだけマクロを自動実行できるようにしたいのです。 よろしくお願いします。

専門家に質問してみよう