Rysowanie obramowania u dołu strony na podstawie strony po stronie w makrze
Przegląd
Podczas drukowania, myślę, że jest często używany jako ramka papieru, aby narysować obramowanie na nagłówku i czworakach. Jeśli jednak papier jest pojedynczym arkuszem, wystarczy narysować obramowanie ręcznie, ale jeśli stanie się ono więcej niż jedną stroną, obramowanie nie pojawi się u dołu każdej strony. Istnieje również ręczne wsparcie ponownego wyciągania, ale jeśli dodasz lub usuniesz linie w środku, będziesz musiał ponownie narysować obramowanie na wszystkich stronach.
W tej sekcji opisano sposób używania makr do automatycznego rysowania obramowań u dołu każdej strony.
Potwierdzona wersja operacji
Obsługiwana wersja programu Excel
- 2010
- 2007
- 2003
- (Może działać z innymi wersjami, ale nie jest potwierdzona.)
Upewnij się, że wersja programu Excel
- 2010
- 2007
- 2003
Zawartość
Jeśli drukujesz pojedynczą stronę, możesz narysować obramowanie u dołu wiersza, aby wydrukować bez żadnych problemów.
Jeśli jednak masz więcej niż jedną stronę, możesz narysować obramowanie tylko u dołu wiersza, ale obramowanie nie pojawi się w dolnym wierszu każdej strony. Jeśli obramowanie ma być wyświetlane na każdej stronie, musisz ręcznie zastosować obramowanie do zmiany strony.
Jeśli jednak dodasz lub usuniesz linię w środku, linia podziału strony i linia obramowania zostaną obcięte, więc jest to kłopotliwe, ponieważ staje się ponownie rysowane.
Użyję więc makra do rysowania obramowania na linii zmiany strony zbiorczo.
Nie ma znaczenia, w jaki sposób go uruchomić, ponieważ można go uruchomić za pomocą wbudowanego makra, ale w próbce umieszczam przycisk na oddzielnym arkuszu i rysuję obramowanie na pograniczu strony po naciśnięciu przycisku.
Jeśli chcesz rozprowadzić coś, co już zawiera makra, możesz po prostu przekazać plik w takim stanie, w jakim jest, ale jeśli chcesz samodzielnie zmontować makro, ustaw excela, aby można było złożyć makro. Aby uzyskać informacje na temat tego, jak to zrobić, zobacz Wyświetlanie karty Programowanie, aby włączyć umieszczanie formularzy i tworzenie programów VBA .
Po umieszczeniu przycisku zostanie wyświetlone okno dialogowe rejestracji makr, więc utwórzmy je, aby można było uruchomić zdarzenie kliknięcia, naciskając przycisk "Nowy".
Nie zamierzamy wchodzić w zbyt wiele szczegółów na temat makr lub języka Visual Basic, więc sprawdź to osobno.
Po otwarciu edytora Visual Basic dodaj następujący kod: Obramowanie na wierszu zmian na określonym arkuszu można narysować, wywołując tę funkcję.
Mam komentarz na temat opisu funkcji, więc proszę to sprawdzić.
'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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
Proces klikania przycisku jest następujący. Jeśli określisz arkusz dla utworzonej funkcji SetHPageBreakLines, można narysować obramowanie na tym arkuszu. Jeśli chcesz również określić styl obramowania, można go określić z pozostałymi argumentami.
Ponieważ jest to próbka, nazwa arkusza jest określona bezpośrednio w makrze, ale myślę, że bardziej ogólne jest, aby umożliwić napisanie nazwy arkusza w komórce i możliwość odwoływania się do komórki.
'【概要】
' ボタンクリックイベント
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
Po uruchomieniu makra widać, że dolny wiersz każdej strony jest obramowany. Można również sprawdzić go w podglądzie wydruku.
Jako zastrzeżenie, myślę, że dobrze jest uruchomić makro tylko podczas drukowania, ponieważ obramowanie ustawione, gdy makro jest wykonywane raz nie może być zwrócone.