Rita en kantlinje längst ned på sidan på basis av sida i ett makro
Översikt
Vid utskrift, tror jag att det ofta används som en ram av papperet för att rita en kant på huvudet och alla fyra. Om papperet däremot är ett enda ark behöver du bara rita kantlinjen manuellt, men om det blir mer än en sida visas inte kantlinjen längst ned på varje sida. Det finns också en manuell re-pull stöd, men om du lägger till eller ta bort linjer i mitten, måste du åter rita gränsen på alla sidor.
I det här avsnittet beskrivs hur du använder makron för att automatiskt rita kantlinjer längst ned på varje sida.
Bekräftad version av åtgärden
Excel-version som stöds
- 2010
- 2007
- 2003
- (Det kan fungera med andra versioner, men det bekräftas inte.)
Kontrollera att Excel-versionen
- 2010
- 2007
- 2003
Innehållet
Om du skriver ut en enskild sida kan du rita en kantlinje längst ned på raden för att skriva ut utan problem.
Om du har fler än en sida kan du dock rita en kantlinje endast längst ned på linjen, men kantlinjen visas inte på den nedersta raden på varje sida. Om du vill att kantlinjen ska visas på varje sida måste du använda en kantlinje manuellt för sidändringen.
Men om du lägger till eller tar bort en linje i mitten, är raden i sidbrytningen och gränsens linje avklippta, så det är besvärligt eftersom det blir en re-draw igen.
Så jag ska använda ett makro för att rita en kant på en rad sidbyte i bulk.
Det spelar ingen roll vilket sätt att starta det eftersom du kan köra den med ett inbyggt makro, men i provet placerar jag en knapp på ett separat ark och ritar en kant på sidbrytningen när jag trycker på knappen.
Om du vill distribuera något som redan innehåller makron kan du bara skicka filen som den är, men om du vill sätta ihop makrot själv, ställ in Excel så att du kan sätta ihop makrot. Information om hur du gör detta finns i Visa fliken Utveckling för att aktivera utveckling av formulärplacering och VBA-programutveckling .
När du placerar en knapp visas makroregistreringsdialogialen, så låt oss skapa den så att du kan köra klickhändelsen genom att trycka på knappen "Nytt".
Vi kommer inte att gå in för mycket detaljer om makron eller Visual Basic, så kolla upp det separat.
När Visual Basic-redigeraren öppnas lägger du till följande kod: Du kan rita en kantlinje på en rad med sidändringar på ett angivet blad genom att anropa denna funktion.
Jag har en kommentar om beskrivningen av funktionen, så var snäll och kontrollera den.
'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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
Knappens klickprocess är följande. Om du anger ett blad för funktionen SetHPageBreakLines som du skapade kan du rita en kantlinje på det bladet. Om du också vill ange ett kantlinjeformat kan du ange det med de återstående argumenten.
Eftersom det är ett prov anges arknamnet direkt i makrot, men jag tror att det är mer allmänt att göra det möjligt att skriva arknamnet i cellen och att kunna referera till cellen.
'【概要】
' ボタンクリックイベント
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
När du kör makrot kan du se att den nedersta raden på varje sida är kantad. Du kan också kontrollera det i Förhandsgranska.
Som en varning tycker jag att det är bra att köra makrot endast vid utskrift eftersom den kantuppsättning när makrot utförs en gång inte kan returneras.