【Excelマクロ】値が入力された行だけ自動で罫線をつける

Excelで一覧表を作成する際、すべての行に罫線を引くと空白行まで印刷されてしまったり、見た目が煩雑になったりすることがあります。

特に帳票や提出資料では、「実際にデータが入力された行だけ」罫線を引くという処理が好まれます。

手作業で行うと確認と選択が面倒ですが、VBAを使えば簡単に自動化できます。

入力されている行にだけ罫線を適用するマクロ

次のコードは、A列に値が入力されている行だけに対して、その行のA〜E列に外枠の罫線を引く処理です。

Sub setBorderIfValueExists()

    Dim i As Long
    Dim lastRow As Long

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To lastRow
        If Cells(i, 1).Value <> "" Then
            With Range(Cells(i, 1), Cells(i, 5)).Borders
                .LineStyle = xlContinuous
                .Weight = xlThin
            End With
        End If
    Next i

End Sub

このコードでは次のような動きになります。

  • A列の2行目から最終行までをチェックします。
  • A列に何かしらの値が入っている行に対して、A〜E列に罫線を適用します。
  • 空白の行はスキップされ、見た目がスッキリした一覧表になります。

罫線の種類や太さは .LineStyle.Weight で調整できます。

実装するメリット

このマクロを使うと、作業の効率と資料の見栄えを同時に高めることができます。

  • 空白行に無駄な罫線が引かれないため、印刷時もスマートなレイアウトになる
  • 手作業で罫線を引く時間を削減
  • 入力データの有無で動作が変わるため、使い回しのテンプレートでも対応可能
  • 範囲を調整すれば柔軟にカスタマイズ可能

たとえば、チェックリストや申請書のような業務資料では、見た目の整った出力結果がそのまま信頼感にもつながります。

応用:列の増減や対象範囲のカスタマイズ

必要に応じて、処理対象の列数や開始行を変えることもできます。

たとえば、A〜H列まで罫線を引きたい場合は、次のように変更できます。

With Range(Cells(i, 1), Cells(i, 8)).Borders

また、開始行を1行目からにすれば、タイトル行にも罫線を引くことができます。

なお、対象列がA列以外になる場合は、空白チェックを Cells(i, 列番号) に変更するだけで応用が可能です。

まとめ

行ごとに罫線を引く作業は単純ながら、見栄えや作業効率に大きく影響します。VBAを活用することで、次のようなメリットが得られます。

  • 入力された行のみを判別し、自動で罫線を引くことができる
  • 一覧表や帳票が見やすくなり、印刷時の仕上がりも向上する
  • テンプレートとの組み合わせで、どんなデータにも柔軟に対応可能

マクロを通じて、「誰が使っても整った資料」ができるようになるのは、大きな業務改善の一歩です。シンプルな処理だからこそ、まずは取り入れてみてください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール