在宏中以分页符在页面底部绘制边框
概述
打印时,通常使用标题和四面边框作为纸张框架。 但是,如果纸张是单个纸张,则只需手动绘制边框,但如果成为多页,则边框不会显示在每个页面的底部。 此外,还有手动绘制支持,但如果您中途添加或删除行,则必须在所有页面上绘制边框。
本节介绍如何使用宏在所有页面底部自动绘制边框。
操作确认版本
支持的 Excel 版本
- 2010
- 2007
- 2003
- (可能在其他版本中工作,但未经验证)
检查 Excel 版本
- 2010
- 2007
- 2003
内容
如果打印的页数为 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
运行宏时,您会知道每页的底行都设置了边框。 您可以在打印预览中查看它们。
需要注意的一点是,在运行宏后,无法返回您设置的边框,因此最好只在打印时运行宏并打印它。