Нарисуйте границу в нижней части страницы на основе страницы за страницей в макрос

Дата создания страницы :

Обзор

При печати, я думаю, что он часто используется в качестве кадра бумаги, чтобы нарисовать границу на заголовке и все четверки. Однако, если бумага представляет 1 лист, вам нужно только нарисовать границу вручную, но если она станет более чем на одной странице, граница не появится в нижней части каждой страницы. Существует также ручная поддержка повторного вытягивать, но если вы добавите или удалите строки в середине, вам придется повторно нарисовать границу на всех страницах.

В этом разделе описывается, как использовать макросы для автоматического нарисовки границ в нижней части каждой страницы.

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

Подтвержденная версия операции

Поддерживаемая версия Excel

  • 2010
  • 2007
  • 2003
  • (Он может работать с другими версиями, но это не подтверждено.)

Убедитесь, что версия Excel

  • 2010
  • 2007
  • 2003

Содержимое

1ページの印刷

Если вы напечатаете одну страницу, вы можете нарисовать границу в нижней части линии для печати без каких-либо проблем.

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

Однако, если у вас есть более одной страницы, вы можете нарисовать границу только в нижней части линии, но граница не появится в нижнем ряду каждой страницы. Если вы хотите, чтобы граница появляться на каждой странице, вы должны вручную применить границу к изменению страницы.

Однако, если вы добавите или удалите линию в середине, линия разрыва страницы и линия границы будут отрезаны, так что это хлопотно, потому что это становится повторно рисовать снова.

Так что я собираюсь использовать макрос, чтобы нарисовать границу на линии изменения страницы оптом.

ボタンの配置

Не имеет значения, как начать его, потому что вы можете запустить его со встроенным макросом, но в образце, я поставить кнопку на отдельном листе и нарисовать границу на перерыв страницы, когда я нажимаю на кнопку.

Если вы хотите распространять что-то, что уже содержит макросы, вы можете просто передать файл как есть, но если вы хотите собрать макрос самостоятельно, установите 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

各ページ毎の罫線表示

При запуске макроса можно увидеть, что нижняя строка каждой страницы граничит. Вы также можете проверить его в печати Предварительный просмотр.

В качестве предостережения, я думаю, что это хорошо для запуска макроса только при печати, потому что граница установлена, когда макрос выполняется один раз не может быть возвращен.