رسم حد في أسفل الصفحة على أساس صفحة بصفحة في ماكرو

تاريخ إنشاء الصفحة :

نظره عامه

عند الطباعة، أعتقد أنه غالباً ما يتم استخدامه كإطار للورق لرسم حد على رأس وأربعة. ومع ذلك، إذا كان ورقة ورقة واحدة، تحتاج فقط إلى رسم الحدود يدوياً، ولكن إذا أصبح أكثر من صفحة واحدة، لن يظهر الحد في أسفل كل صفحة. هناك أيضا دعم إعادة سحب يدوي، ولكن إذا قمت بإضافة أو إزالة خطوط في الوسط، سيكون لديك لإعادة رسم الحدود على كافة الصفحات.

يصف هذا القسم كيفية استخدام وحدات الماكرو لرسم الحدود تلقائياً في أسفل كل صفحة.

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

إصدار مؤكد من العملية

إصدار 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

各ページ毎の罫線表示

عند تشغيل الماكرو، يمكنك مشاهدة أن الصف السفلي من كل صفحة هو يحدها. يمكنك أيضاً التحقق من ذلك في "معاينة قبل الطباعة".

كتحذير، أعتقد أنه من الجيد تشغيل الماكرو فقط عند الطباعة لأن تعيين الحدود عند تنفيذ الماكرو مرة واحدة لا يمكن إرجاع.