Dibuje un borde en la parte inferior de la página página página por página en una macro

Fecha de creación de la página :

Visión general

Al imprimir, creo que a menudo se utiliza como un marco del papel para dibujar un borde en el encabezado y a cuatro patas. Sin embargo, si el papel es una sola hoja, solo necesita dibujar el borde manualmente, pero si se convierte en más de una página, el borde no aparecerá en la parte inferior de cada página. También hay un soporte de re-pull manual, pero si agrega o elimina líneas en el medio, tendrá que volver a dibujar el borde en todas las páginas.

En esta sección se describe cómo utilizar macros para dibujar automáticamente bordes en la parte inferior de cada página.

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

Versión confirmada de la operación

Versión de Excel compatible

  • 2010
  • 2007
  • 2003
  • (Puede funcionar con otras versiones, pero no está confirmado.)

Asegúrese de que la versión de Excel

  • 2010
  • 2007
  • 2003

Contenido

1ページの印刷

Si imprime una sola página, puede dibujar un borde en la parte inferior de la línea para imprimir sin ningún problema.

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

Sin embargo, si tiene más de una página, puede dibujar un borde solo en la parte inferior de la línea, pero el borde no aparecerá en la fila inferior de cada página. Si desea que el borde aparezca en cada página, debe aplicar manualmente un borde al cambio de página.

Sin embargo, si agrega o quita una línea en el centro, la línea del salto de página y la línea del borde se cortan, por lo que es problemático porque se convierte en un nuevo dibujo de nuevo.

Así que voy a usar una macro para dibujar un borde en una línea de cambio de página a granel.

ボタンの配置

No importa qué forma de iniciarlo porque se puede ejecutar con una macro integrada, pero en la muestra, pongo un botón en una hoja separada y dibujo un borde en el salto de página cuando presiono el botón.

Si desea distribuir algo que ya contiene macros, puede simplemente pasar el archivo tal como está, pero si desea ensamblar la macro usted mismo, establezca Excel para que pueda ensamblar la macro. Para obtener información sobre cómo hacerlo, consulte Mostrar la pestaña Desarrollo para habilitar la ubicación del formulario y el desarrollo del programa VBA.

マクロの登録

Al colocar un botón, se muestra el cuadro de diálogo de registro de macros, así que vamos a crearlo para que pueda ejecutar el evento de clic pulsando el botón "Nuevo".

No vamos a entrar en demasiados detalles sobre macros o Visual Basic, así que compruébelo por separado.

Cuando se abra el editor de Visual Basic, agregue el código siguiente: Puede dibujar un borde en una fila de cambios de página en una hoja especificada llamando a esta función.

Tengo un comentario sobre la descripción de la función, así que por favor compruémelo.

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

El proceso de clic del botón es el siguiente. Si especifica una hoja para la función SetHPageBreakLines que ha creado, puede dibujar un borde en esa hoja. Si también desea especificar un estilo de borde, puede especificarlo con los argumentos restantes.

Dado que es una muestra, el nombre de la hoja se especifica directamente en la macro, pero creo que es más general para que sea posible escribir el nombre de la hoja en la celda y poder hacer referencia a la celda.

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

各ページ毎の罫線表示

Al ejecutar la macro, puede ver que la fila inferior de cada página está bordeada. También puede comprobarlo en Vista previa de impresión.

Como advertencia, creo que es bueno ejecutar la macro solo al imprimir porque el conjunto de bordes cuando la macro se ejecuta una vez no se puede devolver.