テレサは、セルの内容が特定の基準を満たしている場合に特定のワークシートが自動的に印刷されるようにセルをフォーマットする方法があるかどうか疑問に思います。簡単な答えはノーです。この目標を達成するためにフォーマットを使用する方法はありません。ただし、イベントハンドラマクロを使用して印刷を行うことはできます。

たとえば、Excelでサポートされているイベントハンドラーの1つは、ブック内の何かが変更されるたびにトリガーされます。どのセルが変更されたかを調べるイベントハンドラーを作成できます。それが特定のセルであり、そのセルに特定の値が含まれている場合は、ワークシートを印刷できます。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "B2" Then         If Target.Value = 1001 Then             Worksheets(1).PrintOut         End If     End If End Sub

このマクロは、どのセルが変更されたかを調べます。セルB2であり、セルに値1001が含まれている場合、ワークシートは自動的に印刷されます。

もちろん、特定のセルの内容で、誰かが実際に印刷することを選択したときに何を印刷するかを制御したい場合があります。たとえば、ユーザーが印刷を選択した場合、セルの内容(E2など)を調べて、そのセルの内容に基づいて、印刷内容を自動的に変更することができます。次のマクロはこのアプローチを採用しています:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Application.EnableEvents = False     Select Case Worksheets("Sheet1").Range("E1")

Case 1             Worksheets("Sheet1").PrintOut         Case 2             Worksheets("Sheet2").PrintOut         Case 3             Worksheets("Sheet3").PrintOut         Case 4             Worksheets("Sheet4").PrintOut         Case Else             ActiveSheet.PrintOut     End Select     Cancel = True     Application.EnableEvents = True End Sub

マクロは、セルE2に1、2、3、または4が含まれているかどうかに応じて、Sheet1、Sheet2、Sheet3、またはSheet4を出力します。

注:

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

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

このヒント(11578)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります:

link:/ excel-Printing_Based_on_Cell_Contents [セルの内容に基づく印刷]