Excelを使用してオフィスを自動化している場合、毎日特定の時間にセル範囲の内容を自動的に印刷する方法があるかどうか疑問に思うかもしれません。たとえば、常に開いているワークブックがあり、別のプログラムからの入力をログに記録している場合があります。毎日特定の時間に、要約情報を含む範囲を自動的に印刷したい場合があります。

この問題には、Windowsスクリプトを使用して印刷を処理するなど、いくつかのアプローチを使用できます。ただし、ワークブックは常に開いているので、それに頼る必要はありません。代わりに、Excelのネイティブマクロ機能を利用できます。

ここで検討するソリューションには、2つのマクロが必要です。 1つ目は、ブックを最初に開いたときに実行されるものです。印刷を行う実際のマクロをトリガーする正しいイベントハンドラーを設定します。

Private Sub Workbook_Open()

'Schedule the printing     Application.OnTime TimeValue("17:00:00"), "PrintMe"

End Sub

この特定のマルコは、午後5時にトリガーされるようにOnTimeメソッドを設定します。が達成された。別の時刻を指定するには、マクロで時刻を(24時間表記を使用して)変更するだけです。午後5時ロールアラウンドすると、ExcelはPrintMeマクロを実行します:

Private Sub PrintMe()

Sheets(2).PrintOut     'Reschedule the printing     Application.OnTime TimeValue("17:00:00"), "PrintMe"

End Sub

このマクロは、ブックの2番目のシート(印刷する要約情報が含まれている必要があります)を印刷してから、OnTimeメソッドをリセットして午後5時に再度トリガーするだけです。次の日。別のデータ範囲を印刷する場合は、マクロの最初の行でPrintOutメソッドで使用されるオブジェクトを変更するだけです。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10632)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。