Menggambar batas di bagian bawah halaman secara halaman demi halaman dalam makro

Tanggal pembuatan halaman :

Ikhtisar

Ketika mencetak, saya berpikir bahwa itu sering digunakan sebagai bingkai kertas untuk menggambar perbatasan pada header dan keempatnya. Namun, jika kertas adalah satu lembar, Anda hanya perlu menggambar perbatasan secara manual, tetapi jika menjadi lebih dari satu halaman, batas tidak akan muncul di bagian bawah setiap halaman. Ada juga dukungan re-pull manual, tetapi jika Anda menambahkan atau menghapus garis di tengah, Anda harus menggambar ulang batas di semua halaman.

Bagian ini menjelaskan cara menggunakan makro untuk secara otomatis menggambar batas di bagian bawah setiap halaman.

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

Versi operasi yang dikonfirmasi

Versi Excel yang didukung

  • 2010
  • 2007
  • 2003
  • (Ini mungkin bekerja dengan versi lain, tetapi tidak dikonfirmasi.)

Pastikan versi Excel

  • 2010
  • 2007
  • 2003

Isi

1ページの印刷

Jika Anda mencetak satu halaman, Anda dapat menggambar batas di bagian bawah garis untuk dicetak tanpa masalah.

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

Namun, jika Anda memiliki lebih dari satu halaman, Anda dapat menggambar batas hanya di bagian bawah garis, tetapi batas tidak akan muncul di baris bawah setiap halaman. Jika Anda ingin batas muncul di setiap halaman, Anda harus menerapkan batas secara manual ke perubahan halaman.

Namun, jika Anda menambahkan atau menghapus garis di tengah, garis jeda halaman dan garis perbatasan terputus, sehingga merepotkan karena menjadi menarik kembali lagi.

Jadi saya akan menggunakan makro untuk menggambar perbatasan pada garis perubahan halaman secara massal.

ボタンの配置

Tidak peduli apa cara untuk memulainya karena Anda dapat menjalankannya dengan makro built-in, tetapi dalam sampel, saya menempatkan tombol pada lembar terpisah dan menggambar perbatasan pada jeda halaman ketika saya menekan tombol.

Jika Anda ingin mendistribusikan sesuatu yang sudah berisi makro, Anda hanya dapat meneruskan file apa itu, tetapi jika Anda ingin merakit makro sendiri, atur excel sehingga Anda dapat merakit makro. Untuk informasi tentang cara melakukannya, lihat menampilkan tab pengembangan untuk mengaktifkan penempatan formulir dan pengembangan program VBA .

マクロの登録

Ketika Anda menempatkan tombol, dialog pendaftaran makro ditampilkan, jadi mari kita membuatnya sehingga Anda dapat menjalankan acara klik dengan menekan tombol "Baru".

Kita tidak akan pergi ke terlalu banyak detail tentang makro atau Visual Basic, jadi check it out secara terpisah.

Ketika Editor Visual Basic terbuka, tambahkan kode berikut: Anda dapat menggambar batas pada baris perubahan halaman pada lembar tertentu dengan memanggil fungsi ini.

Saya punya komentar tentang deskripsi fungsi, jadi silakan periksa.

'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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 tombol adalah sebagai berikut. Jika Anda menentukan lembar untuk fungsi SetHPageBreakLines yang Anda buat, Anda dapat menggambar batas pada lembar tersebut. Jika Anda juga ingin menentukan gaya batas, Anda dapat menentukannya dengan argumen yang tersisa.

Karena itu adalah sampel, nama sheet ditentukan langsung dalam makro, tapi saya pikir itu lebih umum untuk memungkinkan untuk menulis nama sheet dalam sel dan untuk dapat merujuk ke 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

各ページ毎の罫線表示

Ketika Anda menjalankan makro, Anda dapat melihat bahwa baris bawah setiap halaman dibatasi. Anda juga dapat memeriksanya di Pratinjau Cetak.

Sebagai peringatan, saya berpikir bahwa itu baik untuk menjalankan makro hanya ketika mencetak karena perbatasan diatur ketika makro dijalankan sekali tidak dapat dikembalikan.