Нарисуйте границу в нижней части страницы на основе страницы за страницей в макрос
Обзор
При печати, я думаю, что он часто используется в качестве кадра бумаги, чтобы нарисовать границу на заголовке и все четверки. Однако, если бумага представляет 1 лист, вам нужно только нарисовать границу вручную, но если она станет более чем на одной странице, граница не появится в нижней части каждой страницы. Существует также ручная поддержка повторного вытягивать, но если вы добавите или удалите строки в середине, вам придется повторно нарисовать границу на всех страницах.
В этом разделе описывается, как использовать макросы для автоматического нарисовки границ в нижней части каждой страницы.
Подтвержденная версия операции
Поддерживаемая версия Excel
- 2010
- 2007
- 2003
- (Он может работать с другими версиями, но это не подтверждено.)
Убедитесь, что версия Excel
- 2010
- 2007
- 2003
Содержимое
Если вы напечатаете одну страницу, вы можете нарисовать границу в нижней части линии для печати без каких-либо проблем.
Однако, если у вас есть более одной страницы, вы можете нарисовать границу только в нижней части линии, но граница не появится в нижнем ряду каждой страницы. Если вы хотите, чтобы граница появляться на каждой странице, вы должны вручную применить границу к изменению страницы.
Однако, если вы добавите или удалите линию в середине, линия разрыва страницы и линия границы будут отрезаны, так что это хлопотно, потому что это становится повторно рисовать снова.
Так что я собираюсь использовать макрос, чтобы нарисовать границу на линии изменения страницы оптом.
Не имеет значения, как начать его, потому что вы можете запустить его со встроенным макросом, но в образце, я поставить кнопку на отдельном листе и нарисовать границу на перерыв страницы, когда я нажимаю на кнопку.
Если вы хотите распространять что-то, что уже содержит макросы, вы можете просто передать файл как есть, но если вы хотите собрать макрос самостоятельно, установите Excel, так что вы можете собрать макрос. Для получения информации о том, как это сделать, см.
При создании кнопки отображается диалог макрорегистрации, поэтому давайте создадим ее так, чтобы можно было запустить событие клика, нажав кнопку "Новый".
Мы не собираемся вдаваться в подробности о макросах или 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
При запуске макроса можно увидеть, что нижняя строка каждой страницы граничит. Вы также можете проверить его в печати Предварительный просмотр.
В качестве предостережения, я думаю, что это хорошо для запуска макроса только при печати, потому что граница установлена, когда макрос выполняется один раз не может быть возвращен.