ヘッダーとフッターの背景色(Microsoft Excel)
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に適用されます。