رسم یک مرز در پایین صفحه بر اساس صفحه به صفحه در ماکرو

تاریخ ایجاد صفحه :

مروری

در هنگام چاپ فکر می کنم که اغلب به عنوان قاب کاغذ برای ترسیم مرز روی سرصفحه و هر چهار مورد استفاده قرار می گیرد. با این حال اگر کاغذ یک ورق واحد باشد، فقط باید مرز را به صورت دستی ترسیم کنید، اما اگر بیش از یک صفحه شود، مرز در پایین هر صفحه ظاهر نخواهد شد. همچنین یک پشتیبانی دستی دوباره کشیدن وجود دارد، اما اگر خطوط را در وسط اضافه یا حذف کنید، باید در تمام صفحات دوباره مرز را رسم کنید.

این بخش نحوه استفاده از ماکروها را برای ترسیم خودکار مرزها در پایین هر صفحه توصیف می کند.

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

نسخه تایید شده از عملیات

پشتیبانی از نسخه اکسل

  • 2010
  • 2007
  • 2003
  • (ممکن است با نسخه های دیگر کار کند، اما تأیید نمی شود.)

مطمئن شوید که نسخه اکسل

  • 2010
  • 2007
  • 2003

محتویات

1ページの印刷

اگر یک صفحه را چاپ کنید، می توانید مرزی در پایین خط رسم کنید تا بدون هیچ مشکلی چاپ شود.

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

با این حال، اگر بیش از یک صفحه داشته باشد، می توانید یک مرز را فقط در پایین خط ترسیم کنید، اما مرز در ردیف پایین هر صفحه ظاهر نخواهد شد. اگر می خواهید مرز در هر صفحه ظاهر شود، باید به صورت دستی یک مرز را برای تغییر صفحه اعمال کنید.

با این حال، اگر یک خط را در وسط اضافه یا حذف کنید، خط شکستن صفحه و خط مرز قطع می شود، بنابراین دردسرساز است زیرا دوباره به قرعه کشی مجدد تبدیل می شود.

بنابراین من از یک ماکرو برای ترسیم مرز بر روی یک خط تغییر صفحه به صورت فله ای استفاده می کنم.

ボタンの配置

مهم نیست که چه راهی برای شروع آن وجود دارد چرا که شما می توانید آن را با ماکرو ساخته شده در اجرا کنید، اما در نمونه، من یک دکمه را بر روی یک ورق جداگانه قرار می دهد و رسم یک مرز در شکستن صفحه زمانی که من دکمه را فشار دهید.

اگر می خواهید چیزی را توزیع کنید که در حال حاضر حاوی ماکروها است، فقط می توانید فایل را همان طور که هست بگذرانید، اما اگر می خواهید ماکرو را خودتان مونتاژ کنید، اکسل را طوری تنظیم کنید که شما می توانید ماکرو را مونتاژ کنید. برای کسب اطلاعات در مورد چگونگی انجام این کار، به نمایش زبانه توسعه برای فعال کردن قرار دادن فرم و توسعه برنامه VBA نگاه کنید.

マクロの登録

هنگامی که یک دکمه را قرار می دهید، گفتگوی ثبت نام ماکرو نمایش داده می شود، پس بیایید آن را ایجاد کنیم تا با فشار دادن دکمه "جدید" رویداد کلیک را اجرا کنید.

ما نمی خواهیم به جزئیات بیش از حد در مورد ماکروها و یا ویژوال اساسی بروید، بنابراین آن را به طور جداگانه بررسی کنید.

هنگامی که ویرایشگر ویژوال اساسی باز می شود، کد زیر را اضافه کنید: شما می توانید با فراخوانی این تابع، یک مرز روی یک ردیف از تغییرات صفحه روی یک ورقه مشخص ترسیم کنید.

من یک نظر در مورد شرح تابع ، پس لطفا آن را بررسی کنید.

'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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، من فکر می کنم که خوب است برای اجرای ماکرو تنها در هنگام چاپ به دلیل مجموعه مرزی زمانی که ماکرو یک بار اجرا می شود نمی تواند برگردانده شود.