Desenarea unei borduri în partea de jos a paginii pe o bază pagină cu pagină într-o macrocomandă

Data creării paginii :

Prezentare generală

Atunci când imprimarea, cred că este adesea folosit ca un cadru de hârtie pentru a trage o bordură pe antet și toate patru labe. Cu toate acestea, dacă hârtia este o singură foaie, trebuie doar să desenați bordura manual, dar dacă devine mai mult de o pagină, bordura nu va apărea în partea de jos a fiecărei pagini. Există, de asemenea, un suport manual re-trage, dar dacă adăugați sau eliminați linii în mijloc, va trebui să re-desenați bordura pe toate paginile.

Această secțiune descrie modul de utilizare a macrocomenzilor pentru a desena automat borduri în partea de jos a fiecărei pagini.

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

Versiune confirmată a operațiunii

Versiune Excel acceptată

  • 2010
  • 2007
  • 2003
  • (Este posibil să funcționeze cu alte versiuni, dar nu este confirmat.)

Asigurați-vă că versiunea Excel

  • 2010
  • 2007
  • 2003

Conţinutul

1ページの印刷

Dacă imprimați o singură pagină, aveți posibilitatea să desenați o bordură în partea de jos a liniei pentru a o imprima fără probleme.

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

Cu toate acestea, dacă aveți mai multe pagini, aveți posibilitatea să desenați o bordură numai în partea de jos a liniei, dar bordura nu va apărea în rândul de jos al fiecărei pagini. Dacă doriți ca bordura să apară pe fiecare pagină, trebuie să aplicați manual o bordură la modificarea paginii.

Cu toate acestea, dacă adăugați sau eliminați o linie în mijloc, linia sfârșitului de pagină și linia bordurii sunt tăiate, deci este supărătoare, deoarece devine din nou o re-desenare.

Așa că voi folosi o macrocomandă pentru a desena o bordură pe o linie de modificare a paginii în bloc.

ボタンの配置

Nu contează ce modalitate de a începe, deoarece îl puteți rula cu o macrocomandă încorporată, dar în eșantion, așez un buton pe o foaie separată și desenez o bordură pe sfârșit de pagină când apăs butonul.

Dacă doriți să distribuiți ceva care conține deja macrocomenzi, aveți posibilitatea să transmiteți fișierul așa este, dar dacă doriți să asamblați singur macrocomanda, setați Excel astfel încât să puteți asambla macrocomanda. Pentru informații despre cum se face acest lucru, consultați Afișarea filei Dezvoltare pentru a activa plasarea formularelor și dezvoltarea programului VBA .

マクロの登録

Când plasați un buton, se afișează dialogul de înregistrare a macrocomenzilor, așa că haideți să-l creăm astfel încât să puteți executa evenimentul de clic apăsând butonul "Nou".

Nu vom intra în prea multe detalii despre macrocomenzi sau Visual Basic, așa că verificați separat.

Când se deschide editorul Visual Basic, adăugați următorul cod: Aveți posibilitatea să desenați o bordură pe un rând de modificări de pagină pe o foaie specificată apelând această funcție.

Am un comentariu despre descrierea funcției, așa că vă rugăm să verificați-l.

'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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

Procesul de clic al butonului este după urmează. Dacă specificați o foaie pentru funcția SetHPageBreakLines pe care ați creat-o, aveți posibilitatea să desenați o bordură pe acea foaie. Dacă doriți, de asemenea, să specificați un stil de bordură, aveți posibilitatea să îl specificați cu argumentele rămase.

Deoarece este un exemplu, numele foii este specificat direct în macrocomandă, dar cred că este mai general pentru a face posibilă scrierea numelui foii în celulă și pentru a putea face referire la celulă.

'【概要】
'  ボタンクリックイベント
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

各ページ毎の罫線表示

Când executați macrocomanda, aveți posibilitatea să vedeți că rândul de jos al fiecărei pagini este mărginit. De asemenea, îl puteți verifica în Examinare înaintea imprimării.

Ca avertisment, cred că este bine să executați macrocomanda numai atunci când imprimați, deoarece setul de bordură atunci când macrocomanda este executată o dată nu poate fi returnată.