Leonidは、ページのヘッダーまたはフッターの背景色を設定する方法があるかどうかを尋ねました。簡単な答えは、Excelにはそのような機能がないということです。ただし、この問題を回避するにはいくつかの方法があります。たとえば、Excel2002またはExcel2003を使用している場合は、ヘッダーまたはフッターにグラフィックを追加できます。適切なグラフィックを使用すると、実際には色を含むグラフィックであるにもかかわらず、ヘッダーとフッターに色が含まれているように見せることができます。

別のオプションは、「偽の」ヘッダーとフッターを作成することです。別の色のヘッダーを使用するだけの場合は、ワークシートの最初の数行をヘッダーとして使用できます。これらの行は、行の色の設定など、必要に応じてフォーマットできます。次に、印刷出力のすべてのページの上部でこれらの行を繰り返すようにExcelに指示できます(この場合は[ページ設定]ダイアログボックスを使用します)。

Excelには各ページの下部で行を繰り返すことができる機能が含まれていないため、フッター領域で行を繰り返すことはより問題になります。ヘッダーとフッターの行を追加するマクロを作成することは可能ですが、ワークシートが変更されます。偽のヘッダーとフッターの行を追加する必要があります。

例として、次のマクロについて考えてみます。印刷物の左右に1インチの境界線が必要であり、1ページあたり46行のみを印刷することを前提としています。余白を設定してからワークシートをステップ実行し、必要に応じて偽のヘッダー行とフッター行を追加します。 (マクロはワークシートのデザインを調整するため、マクロを実行する前に必ずワークシートを保存してください。)

Sub FakeHeaderFooter()

Dim LHeader As String     Dim CHeader As String     Dim LFooter As String     Dim CFooter As String     Dim CBottom As Integer     Dim CRow As Integer     Dim PageSize As Integer          LHeader = "Top Left"

CHeader = "Top Center"

LFooter = "Bottom Left"

CFooter = "Bottom Center"

PageSize = 46

With ActiveSheet.PageSetup         .PrintTitleRows = ""

.PrintTitleColumns = ""

.PrintArea = ""

.LeftHeader = ""

.CenterHeader = ""

.RightHeader = ""

.LeftFooter = ""

.CenterFooter = ""

.RightFooter = ""

.LeftMargin = Application.InchesToPoints(1)

.RightMargin = Application.InchesToPoints(1)

.TopMargin = Application.InchesToPoints(0)

.BottomMargin = Application.InchesToPoints(0)

.HeaderMargin = Application.InchesToPoints(0)

.FooterMargin = Application.InchesToPoints(0)

.PrintHeadings = False         .Orientation = xlPortrait     End With

CBottom = Range("A16000").End(xlUp).Row

CRow = 1     Do Until CRow > CBottom         If CRow Mod PageSize = 1 Then             Rows(CRow).Select             Selection.Insert Shift:=xlDown             Selection.Insert Shift:=xlDown             CBottom = CBottom + 2

Cells(CRow, 1).Value = LHeader             Cells(CRow, 4).Value = CHeader             Range(Cells(CRow, 1), _               Cells(CRow, 8)).Interior.ColorIndex = 34             Range(Cells(CRow + 1, 1), _               Cells(CRow + 1, 8)).Interior.ColorIndex = xlNone             CRow = CRow + 2         ElseIf CRow Mod PageSize = PageSize - 1 Then             Rows(CRow).Select             Selection.Insert Shift:=xlDown             Selection.Insert Shift:=xlDown             CBottom = CBottom + 2

Cells(CRow + 1, 1).Value = LFooter             Cells(CRow + 1, 4).Value = CFooter             Range(Cells(CRow + 1, 1), _               Cells(CRow + 1, 8)).Interior.ColorIndex = 34             CRow = CRow + 2         Else             CRow = CRow + 1         End If     Loop

LastPageNumber = PageNumber + 1     LastRow = LastPageNumber * PageSize     If CBottom <> LastRow Then             Range(Cells(LastRow, 1), _               Cells(LastRow, 8)).Interior.ColorIndex = 34             Cells(LastRow, 1).Value = LFooter             Cells(LastRow, 4).Value = CFooter     End If

CBottom = Range("A16000").End(xlUp).Row

CRow = 2     Do Until CRow > CBottom         If CRow Mod PageSize = 1 Then             Cells(CRow, 1).PageBreak = xlManual         End If         CRow = CRow + 1     Loop End Sub

1ページあたりの行数を変更するには、PageSize変数に割り当てられた値を変更するだけです。 LHeader、CHeader、LFooter、およびCFooter変数に割り当てられているものを変更することにより、「header」および「footer」領域に表示されるものを変更することもできます。

注:

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

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

このヒント(3056)は、Microsoft Excel 97、2000、2002、および2003に適用されます。