Lukiskan sempadan di bahagian bawah halaman pada halaman mengikut halaman dalam makro

Tarikh penciptaan halaman :

Gambaran keseluruhan

Apabila mencetak, saya fikir ia sering digunakan sebagai bingkai kertas untuk menarik sempadan pada tajuk dan semua empat. Walau bagaimanapun, jika kertas itu adalah lembaran tunggal, anda hanya perlu menarik sempadan secara manual, tetapi jika ia menjadi lebih daripada satu halaman, sempadan tidak akan muncul di bahagian bawah setiap halaman. Terdapat juga sokongan tarik semula manual, tetapi jika anda menambah atau mengalih keluar garisan di tengah-tengah, anda perlu menarik semula sempadan pada semua halaman.

Bahagian ini menerangkan cara menggunakan makro untuk melukis sempadan secara automatik di bahagian bawah setiap halaman.

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

Versi operasi yang disahkan

Versi Excel yang disokong

  • 2010
  • 2007
  • 2003
  • (Ia mungkin berfungsi dengan versi lain, tetapi ia tidak disahkan.)

Pastikan versi Excel

  • 2010
  • 2007
  • 2003

Kandungan

1ページの印刷

Jika anda mencetak satu halaman, anda boleh melukis sempadan di bahagian bawah garisan untuk mencetak tanpa sebarang masalah.

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

Walau bagaimanapun, jika anda mempunyai lebih daripada satu halaman, anda boleh menarik sempadan hanya di bahagian bawah garisan, tetapi sempadan tidak akan muncul di baris bawah setiap halaman. Jika anda mahu sempadan muncul pada setiap halaman, anda mesti menggunakan sempadan secara manual pada halaman berubah.

Walau bagaimanapun, jika anda menambah atau mengalih keluar baris di tengah-tengah, garisan pemecahan halaman dan garisan sempadan dipotong, jadi ia menyusahkan kerana ia menjadi cabutan semula.

Jadi saya akan menggunakan makro untuk menarik sempadan pada baris perubahan halaman secara pukal.

ボタンの配置

Tidak kira apa cara untuk memulakannya kerana anda boleh menjalankannya dengan makro terbina dalam, tetapi dalam sampel, saya meletakkan butang pada helaian berasingan dan menarik sempadan pada halaman rehat apabila saya menekan butang.

Jika anda ingin mengedarkan sesuatu yang sudah mengandungi makro, anda hanya boleh lulus fail seperti itu, tetapi jika anda ingin memasang makro sendiri, menetapkan cemerlang supaya anda boleh memasang makro. Untuk maklumat mengenai cara untuk melakukan ini, lihat Paparkan tab Pembangunan untuk mendayakan penempatan borang dan pembangunan program VBA .

マクロの登録

Apabila anda meletakkan butang, dialog pendaftaran makro dipaparkan, jadi mari kita buat supaya anda boleh menjalankan acara klik dengan menekan butang "Baru".

Kami tidak akan pergi ke terlalu banyak butiran mengenai makro atau Visual Basic, jadi semak secara berasingan.

Apabila editor Visual Basic dibuka, tambah kod berikut: Anda boleh melukis sempadan pada baris perubahan halaman pada lembaran yang ditentukan dengan memanggil fungsi ini.

Saya mempunyai komen tentang penerangan fungsi, jadi sila semak.

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

Proses klik butang adalah seperti berikut. Jika anda menentukan lembaran untuk fungsi SetHPageBreakLines yang anda cipta, anda boleh melukis sempadan pada lembaran itu. Jika anda juga ingin menentukan gaya sempadan, anda boleh menentukannya dengan baki hujah.

Kerana ia adalah sampel, nama lembaran ditentukan secara langsung di makro, tetapi saya fikir ia adalah lebih umum untuk memungkinkan untuk menulis nama lembaran dalam sel dan dapat merujuk kepada sel.

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

各ページ毎の罫線表示

Apabila anda menjalankan makro, anda dapat melihat bahawa baris bawah setiap halaman bersempadan. Anda juga boleh menyemaknya dalam Pratonton Cetak.

Sebagai kaveat, saya fikir adalah baik untuk menjalankan makro hanya apabila percetakan kerana sempadan ditetapkan apabila makro dilaksanakan sekali tidak dapat dikembalikan.