Tegne en kant nederst på siden side for side i en makro

Dato for oprettelse af side :

Oversigt over

Når du udskriver, tror jeg, at det ofte bruges som en ramme af papiret til at tegne en kant på overskriften og alle fire. Men hvis papiret er et enkelt ark, behøver du kun at tegne kanten manuelt, men hvis det bliver mere end én side, vises kanten ikke nederst på hver side. Der er også en manuel re-pull støtte, men hvis du tilføjer eller fjerner linjer i midten, bliver du nødt til at tegne kanten igen på alle sider.

I dette afsnit beskrives, hvordan du kan bruge makroer til automatisk at tegne kanter nederst på hver side.

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

Bekræftet version af handlingen

Understøttet Excel-version

  • 2010
  • 2007
  • 2003
  • (Det kan arbejde med andre versioner, men det er ikke bekræftet.)

Sørg for, at Excel-versionen

  • 2010
  • 2007
  • 2003

Indholdet

1ページの印刷

Hvis du udskriver en enkelt side, kan du tegne en kant nederst på linjen, så den kan udskrives uden problemer.

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

Men hvis du har mere end én side, kan du kun tegne en kant nederst på linjen, men kanten vises ikke i den nederste række på hver side. Hvis kanten skal vises på hver side, skal du manuelt anvende en kant på sideændringen.

Men hvis du tilføjer eller fjerner en linje i midten, afskæres sidebruddets linje og kantens linje, så den er besværlig, fordi den bliver til en re-draw igen.

Så jeg har tænkt mig at bruge en makro til at tegne en kant på en linje af side ændring i bulk.

ボタンの配置

Det er ligegyldigt, hvilken måde at starte det, fordi du kan køre det med en indbygget makro, men i prøven, jeg placere en knap på et separat ark og tegne en kant på siden pause, når jeg trykker på knappen.

Hvis du vil distribuere noget, der allerede indeholder makroer, kan du bare sende filen, som den er, men hvis du selv vil samle makroen, skal du angive Excel, så du kan samle makroen. Yderligere oplysninger om, hvordan du gør dette, finder du under Vise fanen Udvikling for at aktivere formularplacering og VBA-programudvikling .

マクロの登録

Når du placerer en knap, vises dialogboksen til registrering af makroer, så lad os oprette den, så du kan køre klikhændelsen ved at trykke på knappen "Ny".

Vi vil ikke gå for meget i detaljer om makroer eller Visual Basic, så tjek det ud separat.

Når Visual Basic-editoren åbnes, skal du tilføje følgende kode: Du kan tegne en kant på en række sideændringer på et angivet ark ved at kalde denne funktion.

Jeg har en kommentar om beskrivelsen af funktionen, så tjek det venligst.

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

Knappens klikproces er som følger. Hvis du angiver et ark til funktionen SetHPageBreakLines, du har oprettet, kan du tegne en kant på det pågældende ark. Hvis du også vil angive et kantformat, kan du angive det med de resterende argumenter.

Da det er et eksempel, angives arknavnet direkte i makroen, men jeg tror, at det er mere generelt at gøre det muligt at skrive arknavnet i cellen og at kunne henvise til cellen.

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

各ページ毎の罫線表示

Når du afsà står makroen, kan du se, at den nederste række i hver side er omtrà 0ne. Du kan også tjekke det i Vis udskrift.

Som en advarsel, tror jeg, at det er godt at køre makroen kun ved udskrivning, fordi kant sæt, når makroen udføres en gang ikke kan returneres.