Szegély rajzolása a lap alján, oldalasok szerint makróban

Oldal létrehozásának dátuma :

Áttekintés

Nyomtatáskor úgy gondolom, hogy gyakran használják a papír kereteként, hogy szegélyt rajzoljon a fejlécre és a négyes négyesre. Ha azonban a papír egyetlen lap, csak manuálisan kell megrajzolnia a szegélyt, de ha egynél több oldallá válik, a szegély nem jelenik meg az egyes oldalak alján. Van is egy kézi újra-pull támogatást, de ha hozzá, vagy távolítsa el vonalak közepén, akkor újra felhívni a szegély minden oldalon.

Ez a szakasz azt ismerteti, hogy a makrók segítségével hogyan rajzolhat automatikusan szegélyeket minden oldal aljára.

マクロで改ページ単位でページ下部に罫線を引く

A művelet megerősített verziója

Támogatott Excel-verzió

  • 2010
  • 2007
  • 2003
  • (Más verziókkal is működhet, de nem erősítették meg.)

Az Excel verziójának biztosítása

  • 2010
  • 2007
  • 2003

Tartalmát

1ページの印刷

Ha egyetlen oldalt nyomtat, a vonal alján gond nélkül rajzolhat szegélyt.

複数ページ印刷時の最下行

Ha azonban egynél több oldallal rendelkezik, csak a sor alján rajzolhat szegélyt, de a szegély nem jelenik meg az egyes oldalak alsó sorában. Ha azt szeretné, hogy a szegély minden oldalon megjelenjen, manuálisan kell alkalmaznia a szegélyt az oldalmódosításra.

Ha azonban középen hozzáad vagy eltávolít egy vonalat, az oldaltörés és a szegély vonala le lesz vágva, így problémás, mert újra rajzolássá válik.

Ezért makrót fogok használni, hogy szegélyt rajzolok az oldalmódosítás imszámára ömlesztve.

ボタンの配置

Nem számít, hogyan kell elindítani, mert futtatható egy beépített makróval, de a mintában egy gombot helyezek egy külön lapra, és rajzolok egy szegélyt az oldaltörésre, amikor megnyomom a gombot.

Ha olyan tartalmat szeretnénk terjeszteni, amely már tartalmaz makrókat, egyszerűen átadhatjuk a fájlt úgy, ahogy van, de ha saját kezűleg szeretnénk összeállítani a makrót, állítsuk be az excelt, hogy összeállíthassuk a makrót. Ennek módjáról a Fejlesztés lap megjelenítése az űrlapelhelyezés engedélyezéséhez és a VBA-programok fejlesztéséhez című témakörben talál.

マクロの登録

Amikor elhelyez egy gombot, megjelenik a makróregisztrációs párbeszédpanel, ezért hozzuk létre, hogy a kattintási eseményt az "Új" gomb megnyomásával futtathassa.

Nem fogunk túl sok részletet megtudni a makrókról vagy a Visual Basicről, ezért külön-külön ellenőrizze.

Amikor a Visual Basic szerkesztő megnyílik, adja hozzá a következő kódot: A függvény meghívásával szegélyt rajzolhat egy oldalmódosítási sorra egy adott lapon.

Nekem van egy magyarázat a leírás -ból függvény, tehát legyen szíves ellenőriz ez.

'【概要】
' 改ページプレビューに合わせて、ページの下に黒の羅線を引きます。
'
'【引数】
' 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

A gomb kattintási folyamata a következő. Ha megad egy lapot a létrehozott SetHPageBreakLines függvényhez, szegélyt rajzolhat a lapra. Ha szegélystílust is meg szeretne adni, a fennmaradó argumentumokkal együtt is megadhatja.

Mivel ez egy minta, a lap neve közvetlenül a makróban van megadva, de úgy gondolom, hogy általánosabb, hogy lehetővé tegye a lap nevének beírását a cellába, és hogy képes legyen hivatkozni a cellára.

'【概要】
'  ボタンクリックイベント
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

各ページ毎の罫線表示

A makró futtatásakor láthatja, hogy az egyes oldalak alsó sora határolja. A nyomtatási kép ben is ellenőrizheti.

Kikötésként úgy gondolom, hogy a makrót csak nyomtatáskor érdemes futtatni, mert a makró egyszer történő végrehajtásakor beállított szegély nem adható vissza.