Kreslenie orámovania v dolnej časti strany podľa strany v makre

Dátum vytvorenia strany :

Prehľad

Pri tlači si myslím, že sa často používa ako rám papiera na kreslenie orámovania na hlavičke a všetkých štyroch. Ak je však papier jeden hárok, orámovanie je potrebné nakresliť iba manuálne, ale ak sa zmení na viac ako jednu stranu, orámovanie sa nezobrazí v dolnej časti každej strany. K dispozícii je tiež manuálna podpora re-pull, ale ak pridáte alebo odstránite čiary v strede, budete musieť znova nakresliť orámovanie na všetkých stranách.

Táto časť popisuje, ako používať makrá na automatické kreslenie orámovania v dolnej časti každej strany.

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

Potvrdená verzia operácie

Podporovaná verzia Excelu

  • 2010
  • 2007
  • 2003
  • (Môže pracovať s inými verziami, ale nie je potvrdená.)

Skontrolujte, či je verzia Excelu

  • 2010
  • 2007
  • 2003

Obsah

1ページの印刷

Ak vytlačíte jednu stranu, môžete bez problémov nakresliť orámovanie v dolnej časti čiary.

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

Ak však máte viac ako jednu stranu, orámovanie môžete nakresliť iba v dolnej časti čiary, ale orámovanie sa nezobrazí v dolnom riadku každej strany. Ak chcete, aby sa orámovanie zobrazuje na každej strane, musíte na zmenu strany manuálne použiť orámovanie.

Ak však pridáte alebo odstránite čiaru v strede, čiara zlomu strany a čiara orámovania sa odrežú, takže je to nepríjemné, pretože sa znova nakreslí.

Takže budem používať makro nakresliť hranicu na hranici zmeny stránky vo veľkom.

ボタンの配置

Nezáleží na tom, akým spôsobom ho spustiť, pretože ho môžete spustiť pomocou vstavaného makra, ale vo vzorke umiestnim tlačidlo na samostatný hárok a po stlačenie tlačidla nakreslím orámovanie na zlom strany.

Ak chcete distribuovať niečo, čo už obsahuje makrá, stačí odovzdať súbor tak, ako je, ale ak chcete makro zostaviť sami, nastavte program Excel tak, aby ste mohli makro zostaviť. Informácie o tom, ako to urobiť, nájdete v téme Zobrazenie karty Vývoj na povolenie umiestnenia formulára a vývoja programu VBA .

マクロの登録

Keď umiestnite tlačidlo, zobrazí sa dialógové okno registrácie makra, takže ho vytvorte, aby ste mohli spustiť udalosť kliknutia stlačením tlačidla "Nový".

Nebudeme zachádť do príliš veľa podrobností o makrá alebo Visual Basic, takže sa pozrite na to samostatne.

Keď sa otvorí editor jazyka Visual Basic, pridajte nasledujúci kód: Zavolaním na túto funkciu môžete nakresliť orámovanie na riadok zmien strany na určenom hárku.

Mám komentár k popisu funkcie, tak prosím skontrolujte.

'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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 kliknutia tlačidla je nasledovný. Ak zadáte hárok pre funkciu SetHPageBreakLines, ktorú ste vytvorili, môžete na tento hárok nakresliť orámovanie. Ak chcete zadať aj štýl orámovania, môžete ho zadať pomocou zostávajúcich argumentov.

Keďže ide o vzorku, názov hárka je zadaný priamo v makre, ale myslím si, že je všeobecnejšie, aby bolo možné napísať názov hárka do bunky a byť schopný odkazovať na bunku.

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

各ページ毎の罫線表示

Keď spustíte makro, môžete vidieť, že spodný riadok každej stránky je orámovaný. Môžete ho skontrolovať aj v ukážke pred tlačou.

Ako upozornenie si myslím, že je dobré spustiť makro iba pri tlači, pretože nastavenie orámovania pri spustení makra sa nedá vrátiť.