Disegnare un bordo nella parte inferiore della pagina pagina per pagina in una macro
Panoramica
Durante la stampa, penso che sia spesso usato come una cornice della carta per disegnare un bordo sull'intestazione e a quattro. Tuttavia, se la carta è un singolo foglio, è necessario disegnare il bordo manualmente, ma se diventa più di una pagina, il bordo non verrà visualizzato nella parte inferiore di ogni pagina. C'è anche un supporto di re-pull manuale, ma se si aggiungono o rimuovono linee al centro, si dovrà disegnare nuovamente il bordo su tutte le pagine.
In questa sezione viene descritto come utilizzare le macro per disegnare automaticamente i bordi nella parte inferiore di ogni pagina.
Versione confermata dell'operazione
Versione di Excel supportata
- 2010
- 2007
- 2003
- (Può funzionare con altre versioni, ma non è confermato.)
Assicurarsi che la versione di Excel
- 2010
- 2007
- 2003
Contenuto
Se si stampa una singola pagina, è possibile disegnare un bordo nella parte inferiore della linea per stampare senza problemi.
Tuttavia, se si dispone di più di una pagina, è possibile disegnare un bordo solo nella parte inferiore della riga, ma il bordo non verrà visualizzato nella riga inferiore di ogni pagina. Se si desidera che il bordo venga visualizzato in ogni pagina, è necessario applicare manualmente un bordo alla modifica della pagina.
Tuttavia, se si aggiunge o si rimuove una linea al centro, la linea dell'interruzione di pagina e la linea del bordo vengono tagliate, quindi è problematico perché diventa di nuovo un nuovo disegno.
Quindi ho intenzione di utilizzare una macro per disegnare un bordo su una linea di modifica di pagina in blocco.
Non importa quale modo per avviarlo perché è possibile eseguirlo con una macro incorporata, ma nell'esempio, si posiziona un pulsante su un foglio separato e si disegna un bordo sull'interruzione di pagina quando si preme il pulsante.
Se si desidera distribuire un elemento che contiene già macro, è sufficiente passare il file così come è, ma se si desidera assemblare la macro manualmente, impostare excel in modo da poter assemblare la macro. Per informazioni su come eseguire questa operazione, vedere Visualizzare la scheda Sviluppo per abilitare il posizionamento dei moduli e lo sviluppo di programmi VBA .
Quando si posiziona un pulsante, viene visualizzata la finestra di dialogo di registrazione della macro, quindi creiamo in modo da poter eseguire l'evento clic premendo il pulsante "Nuovo".
Non stiamo andando ad andare troppo in dettaglio sulle macro o Visual Basic, in modo da controllare separatamente.
Quando si apre l'editor di Visual Basic, aggiungere il codice seguente: È possibile disegnare un bordo su una riga di modifiche di pagina in un foglio specificato chiamando questa funzione.
Ho un commento sulla descrizione della funzione, quindi si prega di controllare.
'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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
Il processo di clic del pulsante è il seguente. Se si specifica un foglio per la funzione SetHPageBreakLines creata, è possibile disegnare un bordo su tale foglio. Se si desidera specificare anche uno stile di bordo, è possibile specificarlo con gli argomenti rimanenti.
Poiché si tratta di un esempio, il nome del foglio viene specificato direttamente nella macro, ma penso che sia più generale per rendere possibile scrivere il nome del foglio nella cella e per essere in grado di fare riferimento alla cella.
'【概要】
' ボタンクリックイベント
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 si esegue la macro, è possibile vedere che la riga inferiore di ogni pagina è delimitata. È inoltre possibile verificarlo in Anteprima di stampa.
Come avvertimento, penso che sia bene eseguire la macro solo durante la stampa perché il bordo impostato quando la macro viene eseguita una volta non può essere restituito.