在宏中以分页符在页面底部绘制边框

页面创建日期 :

概述

打印时,通常使用标题和四面边框作为纸张框架。 但是,如果纸张是单个纸张,则只需手动绘制边框,但如果成为多页,则边框不会显示在每个页面的底部。 此外,还有手动绘制支持,但如果您中途添加或删除行,则必须在所有页面上绘制边框。

本节介绍如何使用宏在所有页面底部自动绘制边框。

マクロで改ページ単位でページ下部に罫線を引く

操作确认版本

支持的 Excel 版本

  • 2010
  • 2007
  • 2003
  • (可能在其他版本中工作,但未经验证)

检查 Excel 版本

  • 2010
  • 2007
  • 2003

内容

1ページの印刷

如果打印的页数为 1 页,则绘制行底部边框可以毫无问题地打印。

複数ページ印刷時の最下行

但是,如果有多个页面,则仅将边框绘制到行底部不会显示在每页的底行上。 您必须手动在分页符处设置边框,才能在每个页面上显示边框。

但是,如果沿途添加或删除行,分页符行和边框行将脱落,因此再次绘制会很麻烦。

因此,在这里,我想使用一种方法,使用宏批量在分页符行上绘制边框。

ボタンの配置

由于宏可以合并并运行,因此任何启动方法都是可能的,但在示例中,将按钮放在单独的工作表上,并在按下按钮时在分页符上绘制边框。

如果要分发已包含宏的文件,只需传递文件即可,但如果要自己组合宏,请设置 Excel 以组合宏。 有关如何执行此操作的信息,请参阅查看开发选项卡以放置窗体或启用 VBA编程。

マクロの登録

放置按钮时,将显示"注册宏"对话框,因此请按"新建"按钮创建它以执行单击事件。

宏和 Visual Basic 没有详细说明,因此请单独查看。

打开 Visual Basic 编辑器后,添加以下代码: 通过调用此函数,可以为指定工作表的分页符行绘制边框。

有关函数的说明,请参阅注释。

'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' targetSheet    : 改ページラインの描画対象シート
'  lineStyle      : 罫線のスタイル。XlLineStyle 列挙型から指定。
'  lineWeight     : 罫線の太さ。XlBorderWeight 列挙型から指定。
'  lineColorIndex : 罫線の色。XlColorIndex 列挙型から指定、またはカラー パレットのインデックス値を指定。
'
'【備考】
'  一度罫線を設定すると戻せないので注意。
Private Sub SetHPageBreakLines(targetSheet As Worksheet, _
                               Optional lineStyle As XlLineStyle = xlContinuous, _
                               Optional lineWeight As XlBorderWeight = xlThin, _
                               Optional lineColorIndex As XlColorIndex = xlAutomatic)

  ' 列の最大位置取得
  Dim maxColumn As Integer
  maxColumn = targetSheet.UsedRange.Columns.Count
    
  ' 各ページ描画
  For Each hpg In targetSheet.HPageBreaks
    Dim row As Integer
    Dim targetCell As Range
    row = hpg.Location.row - 1
    Set targetCell = targetSheet.Range(targetSheet.Cells(row, 1), targetSheet.Cells(row, maxColumn))
    
    ' 罫線のプロパティを設定する
    With targetCell.Borders(xlEdgeBottom)
      .lineStyle = lineStyle
      .Weight = lineWeight
      .ColorIndex = lineColorIndex
    End With
  Next
    
End Sub

单击按钮的过程如下: 在创建的 SetHPageBreakLines 函数中指定工作表以在工作表上绘制边框。 如果还希望指定边框样式,则可以使用其余参数指定它。

由于这是一个示例,因此直接在宏中指定工作表名称,但最好创建一个单元格,以便可以描述工作表名称并引用该单元格。

'【概要】
'  ボタンクリックイベント
Sub ボタン1_Click()
  ' 対象シート
  Dim syoriSheet As Worksheet
  Set syoriSheet = Worksheets("ドキュメント")

  ' 罫線を設定
  Call SetHPageBreakLines(syoriSheet)

  ' 下は線のスタイル指定
  'Call SetHPageBreakLines(syoriSheet, xlContinuous, xlThin, xlAutomatic)

  MsgBox syoriSheet.HPageBreaks.Count & "ページ分の線の設定が完了しました。"
End Sub

各ページ毎の罫線表示

运行宏时,您会知道每页的底行都设置了边框。 您可以在打印预览中查看它们。

需要注意的一点是,在运行宏后,无法返回您设置的边框,因此最好只在打印时运行宏并打印它。