Kreslení ohraničení v dolní části stránky po stránce v makru

Datum vytvoření stránky :

Přehled

Při tisku si myslím, že se často používá jako rám papíru k nakreslení ohraničení na záhlaví a všech čtyřech. Pokud je však papír jeden list, stačí nakreslit ohraničení ručně, ale pokud se stane více než jednou stránkou, ohraničení se nezobrazí v dolní části každé stránky. K dispozici je také ruční podpora opětovného vytažení, ale pokud přidáte nebo odeberete řádky uprostřed, budete muset znovu nakreslit ohraničení na všech stránkách.

Tato část popisuje, jak používat makra k automatickému kreslení ohraničení v dolní části každé stránky.

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

Potvrzená verze operace

Podporovaná excelová verze

  • 2010
  • 2007
  • 2003
  • (Může pracovat s jinými verzemi, ale není potvrzena.)

Ujistěte se, že excelová verze

  • 2010
  • 2007
  • 2003

Obsah

1ページの印刷

Pokud tisknete jednu stránku, můžete nakreslit ohraničení v dolní části řádku a vytisknout bez problémů.

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

Pokud však máte více než jednu stránku, můžete nakreslit ohraničení pouze v dolní části řádku, ale ohraničení se nezobrazí v dolním řádku každé stránky. Pokud chcete, aby se ohraničení zobrazovaly na každé stránce, musíte ručně použít ohraničení pro změnu stránky.

Pokud však přidáte nebo odeberete čáru uprostřed, řádek konce stránky a čára ohraničení se odříznou, takže je to problematické, protože se znovu změní na opětovné kreslení.

Takže budu používat makro k nakreslení ohraničení na řádku změny stránky ve velkém.

ボタンの配置

Nezáleží na tom, jakým způsobem jej spustit, protože jej můžete spustit pomocí vestavěného makra, ale ve vzorku umístím tlačítko na samostatný list a nakreslím ohraničení na konec stránky, když stisknu tlačítko.

Chcete-li distribuovat něco, co již obsahuje makra, můžete soubor předat tak, jak je, ale pokud chcete makro sestavit sami, nastavte aplikaci Excel, abyste makro mohli sestavit. Informace o tom, jak to provést, naleznete v tématu Zobrazení karty Vývoj k povolení umístění formuláře a vývoj programu VBA .

マクロの登録

Když umístíte tlačítko, zobrazí se dialogové okno registrace makra, takže ho vytvoříme tak, abyste mohli spustit událost kliknutí stisknutím tlačítka "Nový".

Nebudeme zacházet do příliš mnoho podrobností o makrech nebo Visual Basic, takže se podívejte na to samostatně.

Po otevření editoru jazyka Visual Basic přidejte následující kód: Voláním této funkce můžete nakreslit ohraničení na řádek změn stránky na určeném listu.

Mám komentář k popisu funkce, tak prosím zkontrolujte.

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

Proces kliknutí na tlačítko je následující. Pokud zadáte list pro funkci SetHPageBreakLines, kterou jste vytvořili, můžete na tento list nakreslit ohraničení. Pokud chcete také určit styl ohraničení, můžete jej zadat se zbývajícími argumenty.

Vzhledem k tomu, že se jedná o vzorek, je název listu zadán přímo v makru, ale myslím si, že je obecnější, aby bylo možné zapsat název listu do buňky a být schopen odkazovat na buňku.

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

各ページ毎の罫線表示

Při spuštění makra uvidíte, že dolní řádek každé stránky je ohraničený. Můžete ji také zkontrolovat v náhledu.

Jako upozornění si myslím, že je dobré spustit makro pouze při tisku, protože ohraničení nastavené při spuštění makra jednou nelze vrátit.