Dessiner une bordure en bas de la page sur une base page par page dans une macro

Date de création de la page :

Aperçu

Lors de l’impression, je pense qu’il est souvent utilisé comme un cadre du papier pour dessiner une bordure sur l’en-tête et tous les quatre pattes. Toutefois, si le papier est une seule feuille, vous n’avez qu’à dessiner la bordure manuellement, mais si elle devient supérieure à une page, la bordure n’apparaîtra pas au bas de chaque page. Il ya aussi un support manuel de re-tirer, mais si vous ajoutez ou supprimez des lignes au milieu, vous devrez re-dessiner la frontière sur toutes les pages.

Cette section décrit comment utiliser les macros pour dessiner automatiquement des bordures en bas de chaque page.

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

Version confirmée de l’opération

Version Excel prise en charge

  • 2010
  • 2007
  • 2003
  • (Il peut fonctionner avec d’autres versions, mais il n’est pas confirmé.)

Assurez-vous que la version Excel

  • 2010
  • 2007
  • 2003

Contenu

1ページの印刷

Si vous imprimez une seule page, vous pouvez dessiner une bordure en bas de la ligne pour l’imprimer sans aucun problème.

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

Toutefois, si vous avez plus d’une page, vous pouvez dessiner une bordure uniquement en bas de la ligne, mais la bordure n’apparaîtra pas sur la ligne inférieure de chaque page. Si vous souhaitez que la bordure apparaisse sur chaque page, vous devez appliquer manuellement une bordure à la modification de page.

Toutefois, si vous ajoutez ou supprimez une ligne au milieu, la ligne du saut de page et la ligne de la bordure sont coupées, il est donc gênant parce qu’il devient un re-tirage à nouveau.

Donc, je vais utiliser une macro pour dessiner une bordure sur une ligne de changement de page en vrac.

ボタンの配置

Il n’a pas d’importance quelle façon de le démarrer parce que vous pouvez l’exécuter avec une macro intégrée, mais dans l’exemple, je place un bouton sur une feuille séparée et dessiner une bordure sur le saut de page lorsque j’appuie sur le bouton.

Si vous souhaitez distribuer quelque chose qui contient déjà des macros, vous pouvez simplement passer le fichier tel qu’il est, mais si vous souhaitez assembler la macro vous-même, définissez Excel afin que vous puissiez assembler la macro. Pour plus d’informations sur ce qu’il faut faire, voir Afficher l’onglet Développement pour activer le placement de formulaire et le développement du programme VBA .

マクロの登録

Lorsque vous placez un bouton, la boîte de dialogue d’enregistrement de macro s’affiche, alors créons-le afin que vous puissiez exécuter l’événement de clic en appuyant sur le bouton « Ouvea ».

Nous n’allons pas entrer dans trop de détails sur les macros ou Visual Basic, alors vérifiez-le séparément.

Lorsque l’éditeur Visual Basic s’ouvre, ajoutez le code suivant : Vous pouvez dessiner une bordure sur une ligne de modifications de page sur une feuille spécifiée en appelant cette fonction.

J’ai un commentaire sur la description de la fonction, donc s’il vous plaît vérifier.

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

Le processus de clic du bouton est le suivant. Si vous spécifiez une feuille pour la fonction SetHPageBreakLines que vous avez créée, vous pouvez dessiner une bordure sur cette feuille. Si vous souhaitez également spécifier un style de bordure, vous pouvez le spécifier avec les arguments restants.

Parce qu’il s’agit d’un échantillon, le nom de la feuille est spécifié directement dans la macro, mais je pense qu’il est plus général de permettre d’écrire le nom de la feuille dans la cellule et d’être en mesure de se référer à la cellule.

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

各ページ毎の罫線表示

Lorsque vous exécutez la macro, vous pouvez voir que la ligne inférieure de chaque page est bordée. Vous pouvez également le vérifier dans Aperçu avant impression.

Comme une mise en garde, je pense qu’il est bon d’exécuter la macro uniquement lors de l’impression parce que la bordure définie lorsque la macro est exécutée une fois ne peut pas être retourné.