Zeichnen eines Rahmens am unteren Rand der Seite auf Seitenbasis in einem Makro
Übersicht
Beim Drucken denke ich, dass es oft als Rahmen des Papiers verwendet wird, um einen Rahmen auf der Kopfzeile und allen Vieren zu zeichnen. Wenn es sich bei dem Papier jedoch um ein einzelnes Blatt handelt, müssen Sie den Rahmen nur manuell zeichnen, aber wenn es mehr als eine Seite wird, wird der Rahmen nicht am unteren Rand jeder Seite angezeigt. Es gibt auch eine manuelle Wiederzugunterstützung, aber wenn Sie Zeilen in der Mitte hinzufügen oder entfernen, müssen Sie den Rahmen auf allen Seiten neu zeichnen.
In diesem Abschnitt wird beschrieben, wie Makros verwendet werden, um automatisch Rahmen am unteren Rand jeder Seite zu zeichnen.
Bestätigte Version des Vorgangs
Unterstützte Excel-Version
- 2010
- 2007
- 2003
- (Es kann mit anderen Versionen funktionieren, aber es wird nicht bestätigt.)
Sicherstellen, dass die Excel-Version
- 2010
- 2007
- 2003
Inhalt
Wenn Sie eine einzelne Seite drucken, können Sie einen Rahmen am unteren Rand der Zeile zeichnen, um ihn problemlos zu drucken.
Wenn Sie jedoch mehr als eine Seite haben, können Sie einen Rahmen nur am unteren Rand der Zeile zeichnen, aber der Rahmen wird nicht in der unteren Zeile jeder Seite angezeigt. Wenn der Rahmen auf jeder Seite angezeigt werden soll, müssen Sie manuell einen Rahmen auf die Seitenänderung anwenden.
Wenn Sie jedoch eine Linie in der Mitte hinzufügen oder entfernen, werden die Linie des Seitenumbruchs und die Linie des Rahmens abgeschnitten, sodass sie problematisch ist, da sie erneut gezeichnet wird.
Also werde ich ein Makro verwenden, um einen Rahmen auf einer Linie von Seitenwechsel in Massen zu zeichnen.
Es spielt keine Rolle, wie es gestartet werden soll, da Sie es mit einem integrierten Makro ausführen können, aber im Beispiel stelle ich eine Schaltfläche auf ein separates Blatt und zeichne einen Rahmen auf dem Seitenumbruch, wenn ich die Taste drücke.
Wenn Sie etwas verteilen möchten, das bereits Makros enthält, können Sie die Datei einfach so übergeben, wie sie ist, aber wenn Sie das Makro selbst zusammenstellen möchten, legen Sie Excel fest, damit Sie das Makro zusammenstellen können. Informationen hierzu finden Sie unter Anzeigen der Registerkarte Entwicklung, um die Formularplatzierung und die VBA-Programmentwicklung zu aktivieren.
Wenn Sie eine Schaltfläche platzieren, wird das Makroregistrierungsdialogfeld angezeigt, also erstellen wir es, damit Sie das Click-Ereignis ausführen können, indem Sie die Schaltfläche "Neu" drücken.
Wir werden nicht zu sehr auf Makros oder Visual Basic eingehen, also schauen Sie es sich separat an.
Wenn der Visual Basic-Editor geöffnet wird, fügen Sie den folgenden Code hinzu: Sie können einen Rahmen für eine Reihe von Seitenänderungen auf einem angegebenen Blatt zeichnen, indem Sie diese Funktion aufrufen.
Ich habe einen Kommentar über die Beschreibung der Funktion, also überprüfen Sie es bitte.
'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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
Der Klickvorgang der Schaltfläche ist wie folgt. Wenn Sie ein Blatt für die von Ihnen erstellte SetHPageBreakLines-Funktion angeben, können Sie einen Rahmen auf diesem Blatt zeichnen. Wenn Sie auch einen Rahmenstil angeben möchten, können Sie ihn mit den verbleibenden Argumenten angeben.
Da es sich um ein Beispiel handelt, wird der Blattname direkt im Makro angegeben, aber ich denke, dass es allgemeiner ist, den Blattnamen in die Zelle zu schreiben und auf die Zelle verweisen zu können.
'【概要】
' ボタンクリックイベント
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
Wenn Sie das Makro ausführen, können Sie sehen, dass die untere Zeile jeder Seite umrandet ist. Sie können es auch in der Druckvorschau überprüfen.
Als Einschränkung halte ich es für sinnvoll, das Makro nur beim Drucken auszuführen, da der Rahmen, der beim Einmalausführen des Makros festgelegt wird, nicht zurückgegeben werden kann.