Начертайте граница в долната част на страницата на база страница по страница в макрос

Дата на създаване на страница :

Преглед

При печатане мисля, че често се използва като рамка на хартията, за да се направи рамка на заглавната част и всички четири. Ако обаче хартията е един лист, трябва само да нарисувате границата ръчно, но ако стане повече от една страница, границата няма да се появи в долната част на всяка страница. Има и ръчна поддръжка за повторно изтегляне, но ако добавите или премахнете линиите в средата, ще трябва да нарисувате отново границата на всички страници.

Този раздел описва как се използват макроси за автоматично чертане на граници в долната част на всяка страница.

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

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

Поддържана версия на 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

各ページ毎の罫線表示

Когато изпълните макроса, можете да видите, че долния ред на всяка страница е с кант. Можете също да го проверите в "Визуализация на печата".

Като предупреждение считам, че е добре макросът да се изпълнява само при печат, защото границата, зададена при изпълнение на макроса веднъж не може да бъде върната.