Risanje obrobe na dnu strani na podlagi strani po strani v makroju

Datum ustvarjanja strani :

Pregled

Pri tiskanju se mi zdi, da se pogosto uporablja kot okvir papirja za risanje obrobe na glavi in vseh štirih. Če pa je papir en list, morate obrobo narisati le ročno, če pa postane več kot ena stran, se obroba ne bo pojavila na dnu vsake strani. Obstaja tudi ročna podpora za ponovno vlečenje, če pa na sredini dodate ali odstranite črte, boste morali na vseh straneh ponovno narisati obrobo.

V tem razdelku je opisano, kako z makri samodejno narišete obrobe na dnu vsake strani.

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

Potrjena različica operacije

Podprta različica Excela

  • 2010
  • 2007
  • 2003
  • (Lahko deluje z drugimi različicami, vendar ni potrjeno.)

Prepričajte se, ali je Različica Excela

  • 2010
  • 2007
  • 2003

Vsebino

1ページの印刷

Če natisnete eno stran, lahko narišete obrobo na dnu vrstice, da natisnete brez težav.

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

Če pa imate več strani, lahko narišete obrobo le na dnu črte, vendar se obroba ne bo pojavila v spodnji vrstici vsake strani. Če želite, da se obroba prikaže na vsaki strani, morate za spremembo strani ročno uporabiti obrobo.

Če pa v sredini dodate ali odstranite črto, sta črta preloma strani in črta obrobe odrezana, zato je težavno, ker znova postane ponovno risanje.

Zato bom z makrom narisal obrobo na vrstici spremembe strani v razsutem stanju.

ボタンの配置

Ni pomembno, na kakšen način ga lahko zaženete, ker ga lahko zaženete z vgrajenim makrojem, v vzorcu pa na ločen list postavim gumb in na prelom strani narišem obrobo, ko pritisnem gumb.

Če želite razdeliti nekaj, kar že vsebuje makre, lahko datoteko samo podajte tako, kot je, če pa želite makro narediti sami, nastavite excel, tako da lahko makro sestavite. Če želite več informacij o tem, kako to storite, glejte Prikaz zavihka Razvoj, če želite omogočiti nastavljanje obrazca in razvoj programov VBA .

マクロの登録

Ko postavite gumb, se prikaže pogovorno okno za registracijo makrov, zato ga ustvarimo tako, da lahko zaženete dogodek klikanja s pritiskom na gumb »Novo«.

Ne bomo preveč podrobno o makri ali Visual Basic, zato ga preverite ločeno.

Ko se urejevalnik Visual Basic odpre, dodajte to kodo: Obrobo lahko narišete na vrstico sprememb strani na določenem listu tako, da pokličete to funkcijo.

Imam komentar o opisu funkcije, zato prosim preverite.

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

Postopek klika gumba je naslednji. Če določite list za funkcijo SetHPageBreakLines, ki ste jo ustvarili, lahko na tem listu narišete obrobo. Če želite določiti tudi slog obrobe, ga lahko določite z preostalimi argumenti.

Ker gre za vzorec, je ime lista določeno neposredno v makru, vendar menim, da je splošneje, da se lahko ime lista napiše v celico in da se lahko sklicuje na celico.

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

各ページ毎の罫線表示

Ko zaženete makro, lahko vidite, da je spodnja vrstica vsake strani obrobna. To lahko preverite tudi v predogledu tiskanja.

Kot votlino menim, da je dobro zagnati makro le pri tiskanju, ker obrobe, nastavljene ob enkratni izvršitvi makra, ni mogoče vrniti.