วาดเส้นขอบที่ด้านล่างของหน้าโดยทีละหน้าในแมโคร

วันที่สร้างเพจ :

ภาพรวม

เมื่อพิมพ์ผมคิดว่ามันมักจะใช้เป็นกรอบของกระดาษที่จะวาดเส้นขอบบนส่วนหัวและสี่ทั้งหมด อย่างไรก็ตามหากกระดาษเป็นแผ่นงานเดียวคุณจะต้องวาดเส้นขอบด้วยตนเอง แต่ถ้ามันกลายเป็นมากกว่าหนึ่งหน้าเส้นขอบจะไม่ปรากฏขึ้นที่ด้านล่างของแต่ละหน้า นอกจากนี้ยังมีการสนับสนุนดึงคู่มืออีกครั้ง แต่ถ้าคุณเพิ่มหรือลบเส้นที่อยู่ตรงกลางคุณจะต้องวาดเส้นขอบอีกครั้งในทุกหน้า

ส่วนนี้อธิบายวิธีใช้แมโครเพื่อวาดเส้นขอบที่ด้านล่างของทุกหน้าโดยอัตโนมัติ

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

เวอร์ชันที่ยืนยันของการดําเนินงาน

รุ่น Excel ที่สนับสนุน

  • 2010
  • 2007
  • 2003
  • (อาจทํางานร่วมกับรุ่นอื่น ๆ แต่ยังไม่ได้รับการยืนยัน)

ตรวจสอบให้แน่ใจว่า Excel รุ่น

  • 2010
  • 2007
  • 2003

เนื้อหา

1ページの印刷

ถ้าคุณพิมพ์หน้าเดียว คุณสามารถวาดเส้นขอบที่ด้านล่างของบรรทัดเพื่อพิมพ์โดยไม่มีปัญหาใด ๆ

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

อย่างไรก็ตาม ถ้าคุณมีมากกว่าหนึ่งหน้า คุณสามารถวาดเส้นขอบที่ด้านล่างของบรรทัดเท่านั้น แต่เส้นขอบจะไม่ปรากฏบนแถวล่างของแต่ละหน้า ถ้าคุณต้องการให้เส้นขอบปรากฏบนแต่ละหน้า

อย่างไรก็ตาม ถ้าคุณเพิ่มหรือเอาเส้นตรงกลางเส้นแบ่งหน้าและเส้นของเส้นขอบถูกตัดออกดังนั้นจึงลําบากเนื่องจากมันกลายเป็นรูปวาดอีกครั้ง

ดังนั้นฉันจะใช้แมโครเพื่อวาดเส้นขอบบนเส้นของการเปลี่ยนแปลงหน้าในกลุ่ม

ボタンの配置

มันไม่สําคัญว่าวิธีการที่จะเริ่มต้นมันเพราะคุณสามารถเรียกใช้ด้วยแมโครในตัว แต่ในตัวอย่างที่ผมวางปุ่มบนแผ่นแยกต่างหากและวาดเส้นขอบบนตัวแบ่งหน้าเมื่อฉันกดปุ่ม

ถ้าคุณต้องการกระจายบางสิ่งบางอย่างที่มีแมโครอยู่แล้วคุณก็สามารถผ่านไฟล์ได้ตามที่เป็น แต่ถ้าคุณต้องการที่จะรวบรวมแมโครด้วยตัวคุณเองให้ตั้งค่า Excel เพื่อให้คุณสามารถรวบรวมแมโคร สําหรับข้อมูลเกี่ยวกับวิธีการทําเช่นนี้ ให้ดูที่การแสดงแท็บ การพัฒนา เพื่อเปิดใช้งานการจัดวางฟอร์ม และการพัฒนาโปรแกรม VBA

マクロの登録

เมื่อคุณวางปุ่ม กล่องโต้ตอบการลงทะเบียนแมโครจะปรากฏขึ้น ดังนั้นลองสร้างเพื่อให้คุณสามารถเรียกใช้เหตุการณ์การคลิกโดยการกดปุ่ม "สร้าง"

เราจะไม่ไปลงในรายละเอียดมากเกินไปเกี่ยวกับแมโครหรือ Visual Basic ดังนั้นตรวจสอบออกแยกต่างหาก

เมื่อตัวแก้ไข Visual Basic เปิด ขึ้น เพิ่มรหัสต่อไปนี้: คุณสามารถวาดเส้นขอบบนแถวของการเปลี่ยนแปลงหน้าบนแผ่นงานที่ระบุได้ด้วยการเรียกฟังก์ชันนี้

ฉันมีความคิดเห็นเกี่ยวกับคําอธิบายของฟังก์ชันดังนั้นโปรดตรวจสอบ

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

กระบวนการคลิกของปุ่มจะเป็นดังนี้ ถ้าคุณระบุแผ่นงานสําหรับฟังก์ชัน SetHPageBreakLines ที่คุณสร้าง คุณสามารถวาดเส้นขอบบนแผ่นงานนั้น ถ้าคุณต้องการระบุลักษณะเส้นขอบด้วย

เพราะมันเป็นตัวอย่างชื่อแผ่นที่ระบุโดยตรงในแมโคร แต่ฉันคิดว่ามันเป็นมากกว่าทั่วไปเพื่อให้สามารถเขียนชื่อแผ่นงานในเซลล์และเพื่อให้สามารถอ้างถึงเซลล์

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

各ページ毎の罫線表示

เมื่อคุณเรียกใช้แมโคร คุณจะเห็นว่าแถวล่างของแต่ละหน้าถูกล้อมรอบด้วย คุณยังสามารถตรวจสอบได้ใน ตัวอย่างก่อนพิมพ์

เป็น caveat, ฉันคิดว่ามันเป็นสิ่งที่ดีที่จะเรียกใช้แมโครเฉพาะเมื่อพิมพ์เพราะการตั้งค่าชายแดนเมื่อแมโครจะดําเนินการครั้งเดียวไม่สามารถกลับ