Martinは、複数のワークシートの印刷範囲を同時に設定する方法があるかどうか尋ねました。彼は、まったく同じ構造のワークシートを多数含むワークブックを持っており、それぞれの印刷範囲をまったく同じにしたいと考えています。

Martinが発見したように、これをExcelで直接行う方法はありません。

複数のワークシートを選択し、印刷領域として設定する領域を選択してから、印刷領域を設定しようとすると、設定を行うオプションがグレー表示されていることがすぐにわかり、そのオプションを選択できません。

ただし、試すことができることがいくつかあります。 1つは、新しいワークブックから始めて、すべてのワークシートで必要な印刷領域を含む単一のワークシートを作成することです。次に、ワークブックで必要な回数だけワークシートをコピーします。コピーされたワークシートには、最初のワークシートと同じように印刷領域が設定されます。

もう1つのオプションは、印刷領域の設定を行うマクロを作成することです。次のマクロについて考えてみます。このマクロは、選択したすべてのワークシートの印刷領域を、アクティブなワークシートの印刷領域に設定します。 (複数のワークシートが選択されている場合、アクティブなワークシートは、マクロを実行したときに表示されるワークシートです。)

Sub SetPrintAreas1()

Dim sPrintArea As String     Dim wks As Worksheet

sPrintArea = ActiveSheet.PageSetup.PrintArea     For Each wks In ActiveWindow.SelectedSheets         wks.PageSetup.PrintArea = sPrintArea     Next     Set wks = Nothing End Sub

最初にアクティブなワークシートの印刷領域を設定する必要はなく、指定した範囲に印刷領域を設定したい場合は、マクロに1つの小さな変更を加えて、印刷領域の範囲を使用することができます。 :

Sub SetPrintAreas2()

Dim sPrintArea As String     Dim wks As Worksheet

sPrintArea = "A7:E22"

For Each wks In ActiveWindow.SelectedSheets         wks.PageSetup.PrintArea = sPrintArea     Next     Set wks = Nothing End Sub

必要に応じて別の印刷領域を選択するには、sPrintArea変数に割り当てられている範囲を置き換えます。さまざまなワークブックでマクロをかなり使用できると思われる場合、または印刷領域を定期的に変更する必要があると思われる場合は、マクロを変更して、ユーザーに次の範囲の入力を求めることができます。使用:

Sub SetPrintAreas3()

Dim sPrintArea As String     Dim wks As Worksheet

sPrintArea = InputBox("Enter print area range")

For Each wks In ActiveWindow.SelectedSheets         wks.PageSetup.PrintArea = sPrintArea     Next     Set wks = Nothing End Sub

注:

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

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

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

このヒント(3157)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Setting_Print_Ranges_for_Multiple_Worksheets [複数のワークシートの印刷範囲の設定]