Desenhe uma borda na parte inferior da página em uma base página a página em uma macro

Data de criação de página :

Visão geral

Ao imprimir, eu acho que ele é muitas vezes usado como um quadro do papel para desenhar uma borda no cabeçalho e todos os quatros. No entanto, se o papel for uma única folha, você só precisa desenhar a borda manualmente, mas se ela se tornar mais de uma página, a borda não aparecerá na parte inferior de cada página. Há também um suporte manual de retração, mas se você adicionar ou remover linhas no meio, você terá que re-desenhar a borda em todas as páginas.

Esta seção descreve como usar macros para desenhar automaticamente bordas na parte inferior de cada página.

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

Versão confirmada da operação

Versão Excel suportada

  • 2010
  • 2007
  • 2003
  • (Pode funcionar com outras versões, mas não está confirmado.)

Certifique-se de que a versão Do Excel

  • 2010
  • 2007
  • 2003

Conteúdo

1ページの印刷

Se você imprimir uma única página, você pode desenhar uma borda no final da linha para imprimir sem problemas.

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

No entanto, se você tiver mais de uma página, você pode desenhar uma borda apenas no final da linha, mas a borda não aparecerá na linha inferior de cada página. Se você quiser que a borda apareça em cada página, você deve aplicar manualmente uma borda à alteração da página.

No entanto, se você adicionar ou remover uma linha no meio, a linha da página quebra e a linha da borda são cortadas, por isso é problemático porque se torna um re-desenhar novamente.

Então eu vou usar uma macro para desenhar uma borda em uma linha de mudança de página em massa.

ボタンの配置

Não importa que maneira de iniciá-lo, porque você pode executá-lo com uma macro incorporada, mas na amostra, eu colocar um botão em uma folha separada e desenhar uma borda na quebra de página quando eu pressionar o botão.

Se você quiser distribuir algo que já contém macros, você pode simplesmente passar o arquivo como ele é, mas se você quiser montar a macro você mesmo, defina excel para que você possa montar a macro. Para obter informações sobre como fazer isso, consulte exibir a guia Desenvolvimento para permitir a colocação de formulários e o desenvolvimento do programa VBA .

マクロの登録

Quando você coloca um botão, a caixa de diálogo de registro de macro é exibida, então vamos criá-lo para que você possa executar o evento de clique pressionando o botão "Novo".

Não vamos entrar em muitos detalhes sobre macros ou Visual Basic, então confira separadamente.

Quando o editor Visual Basic for aberto, adicione o seguinte código: Você pode desenhar uma borda em uma linha de alterações de página em uma folha especificada chamando esta função.

Eu tenho um comentário sobre a descrição da função, então, por favor, verifique.

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

O processo de clique do botão é o seguinte. Se você especificar uma folha para a função DefinirHPageBreakLines criada, você pode desenhar uma borda nessa folha. Se você também quiser especificar um estilo de borda, você pode especificá-lo com os argumentos restantes.

Por se trata de uma amostra, o nome da folha é especificado diretamente na macro, mas acho que é mais geral tornar possível escrever o nome da folha na célula e poder se referir à célula.

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

各ページ毎の罫線表示

Quando você executa a macro, você pode ver que a linha inferior de cada página está no meio. Você também pode verificar na Visualização impressa.

Como ressalva, acho que é bom executar a macro apenas ao imprimir porque a borda definida quando a macro é executada uma vez não pode ser devolvida.