[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイルを開かないで印刷』(印刷)
初めまして。
エクセルファイルを開かないで中のシート全てを印刷する方法は有るのでしょうか
よろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
なぜ開かないのでしょう? 開かないで他のブックのセルの値を参照する方法はありますが、 シートとなるとシートのレイアウトも反映させたいでしょうから、 素直にブックを開いて、ループで各シートをプリントアウト、とした 方が簡単だとおもいます。 (カリーニン) 2015/09/22(火) 11:45
↓の過去ログは、特定のブックではなく、特定のフォルダ直下の全ての ブックの全てのシートをプリントアウトするものですが、参考になると思います。
[[20060908131836]] 『複数ファイルの一括印刷』(TMG)
(カリーニン) 2015/09/22(火) 11:51
↑は2006年の過去ログですので、拡張子が「xls」となっています。 (カリーニン) 2015/09/22(火) 11:53
印刷も含めて【ブックを開かずに・・・したい】というリクエストは、過去から、途切れることなく でてきますね。これからも出続けるでしょうね。
そのたびに、それはできないと考えよう、かりにごりごりやっても効率が悪いだけでコスト対効果が見合わないですと そう回答するんですが、一方、そういった関数なりメソッドをMSが提供してくれたら、ずいぶんといいのになぁと 思わないでもありませんね。これだけ根強いニーズがあるわけですから。
なので、実は【思い切り開いている】んですが、以下のようなコードを準備しておいて、アプリ側は
Call InVisiblePrint(ブックフルパス) とか Call InVisiblePrint(ブックフルパス,"シート名","シート名",・・・)
として印刷実行してもいいかもしれませんね。(前者はシートすべて、後者は特定シートのみの印刷)
Sub InVisiblePrint(fullPath As String, ParamArray shn()) Dim xlapp As Application Dim wb As Workbook Set xlapp = New Application Set wb = xlapp.Workbooks.Open(fullPath) If UBound(shn) < 0 Then wb.Worksheets.PrintOut Else wb.Worksheets(shn).PrintOut End If wb.Close False xlapp.Quit Set xlapp = Nothing Set wb = Nothing End Sub
(β) 2015/09/22(火) 17:39
↑ 考えてみれば、別エクセルを立ち上げずとも、Application.ScreenUpdating の手当てだけで よかったですねぇ。
Sub InVisiblePrint(fullPath As String, ParamArray shn()) Application.ScreenUpdating = False With Workbooks.Open(fullPath) If UBound(shn) < 0 Then .Worksheets.PrintOut Else .Worksheets(shn).PrintOut End If .Close False End With End Sub
(β) 2015/09/22(火) 17:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.