Zeichnen eines Rahmens am unteren Rand der Seite auf Seitenbasis in einem Makro

Erstellungsdatum der Seite :

Ü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

1ページの印刷

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.