Креслення межі в нижній частині сторінки на основі сторінки за допомогою макросу

Дата створення сторінки :

Огляд

При друку, я думаю, що він часто використовується в якості рамки паперу, щоб намалювати межу на заголовку і всі чотири. Однак, якщо папір є одним аркушем, потрібно лише намалювати межу вручну, але якщо вона стає більше однієї сторінки, межа не відображатиметься в нижній частині кожної сторінки. Існує також ручна підтримка повторного витягування, але якщо ви додате або видаляєте рядки посередині, вам доведеться повторно намалювати межу на всіх сторінках.

У цьому розділі описано, як використовувати макроси для автоматичного малювання меж у нижній частині кожної сторінки.

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

Підтверджена версія операції

Підтримувана версія 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

各ページ毎の罫線表示

Під час запуску макросу можна побачити, що нижній рядок кожної сторінки межує. Також можна перевірити його в режимі попереднього перегляду.

Як застереження, я думаю, що це добре, щоб запустити макрос тільки при друку, тому що межа набір, коли макрос виконується після того, як не може бути повернуто.