📊 Excel VBA Top100
🎨

SetBorderStyle

書式設定

選択範囲に外枠と内側の罫線を設定します

選択したセル範囲に指定したスタイル(実線・点線・二重線など)と色の罫線を自動設定するマクロです。外枠のみ・内線のみ・全セル周りなど罫線の適用パターンも指定できます。手動での罫線設定は「セルの書式設定」ダイアログを何度も開く必要がありますが、このマクロなら設定項目をダイアログで一括指定して素早く適用できます。表の見た目を統一した罫線で整える作業を大幅に効率化します。内部ではBorders(xlEdgeTop)などのインデックスを個別に指定し、線種(LineStyle)・太さ(Weight)・色(Color)を組み合わせて設定しています。外枠と内線で異なるスタイルを使い分けるといった細かい制御も、ダイアログ操作より高速に実現できます。RemoveBorderStyleと組み合わせれば、既存の罫線をリセットしてから統一デザインを再構築するフローが完成します。

SetBorderStyle デモ

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 対象範囲を選択してから SetBorderStyle を実行します

🎯 活用シーン

  • ✓報告書や提案書の表に統一した罫線スタイルを素早く適用して、プロフェッショナルな見た目の資料を作成したいとき
  • ✓データ入力フォームのセクション区切りに太い外枠罫線を設定して、入力エリアを視覚的にわかりやすく区分けしたいとき
  • ✓複数の表が含まれる資料に同じ罫線スタイルを一括適用して、ドキュメント全体のデザインを統一したいとき
  • ✓契約書や請求書のテンプレートで、社内規定に沿った罫線デザインをワンクリックで再現したいとき
  • ✓複数の帳票フォーマットに統一した罫線ルールを適用し、ブランドイメージを揃えたいとき

💡 実装のヒント

  • ▸外枠と内線で異なるスタイル(外枠は太い実線、内線は細い実線など)を使い分けることで、プロフェッショナルな表のデザインを実現できます。
  • ▸罫線の色はExcelのカラーコード(RGB値)で指定できます。会社のカラー基準に合わせた色を設定することで、統一感のある資料を作れます。
  • ▸大きな範囲に複雑な罫線設定を行うと処理に時間がかかることがあります。範囲を絞って実行するか、シンプルなパターンを使用することをお勧めします。
  • ▸罫線の太さ(xlThin、xlMedium、xlThick)を使い分けることで、外枠と内線のメリハリをつけたデザインが作れます。
  • ▸複数のシートに同じ罫線ルールを適用する場合は、シート名を配列で指定してループ処理すると一括対応できます。

💻 VBAコード

' SetBorderStyle
' -----------------
' Macro Name: SetBorderStyle
' Description: 選択範囲に外枠と内側の罫線を設定します
' Parameters: なし
' Returns: なし
' Usage: 対象範囲を選択してから SetBorderStyle を実行します
' -----------------

Sub SetBorderStyle()
    On Error GoTo ErrorHandler

    Dim rng As Range

    If TypeName(Selection) <> "Range" Then
        MsgBox "セル範囲を選択してから実行してください", vbCritical, "エラー"
        Exit Sub
    End If

    Set rng = Selection

    With rng.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With rng.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With rng.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlHairline
    End With
    With rng.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlHairline
    End With

    MsgBox "罫線を設定しました", vbInformation, "完了"

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました:" & vbCrLf & Err.Description, vbCritical, "エラー"
End Sub