- ベストアンサー
あるシートを10枚印刷するマクロを組みました。
あるシートを10枚印刷するマクロを組みました。 これの前後にauto open,close を足せば、アイコンをクリックするだけで、10枚印刷することができると思うのですが、どのように書けばいいか調べたのですが、わかりませんでした。 初歩的な質問だとは思いますが、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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/17069)
これも初心者的な生半可な点が見える。 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)
VBEで標準モジュールを追加して Sub auto_open() '10枚印刷するマクロを記載 Application.Quit '↓ 'ThisWorkbook.Close SaveChanges:=False にするとブックだけが終了します。 End Sub で、印刷してエクセルを終了します。