コピー&ペーストなどで壊れた罫線を修復する方法と、それを自動で行うマクロを紹介します。
罫線は壊れやすい
罫線はシート上の場所ではなくセルに属する書式なので、ちょっとセルの編集操作を誤ると簡単に壊れてしまいます。
罫線のある範囲にセルのコピー&ペーストをするときは、貼り付けの形式を慎重に選ばなければなりません。
罫線を壊してしまったらそれを修復するも簡単ではありません。
壊れた範囲を「セルの書式設定」ダイアログの「罫線」タブで修復するのはかなり面倒な作業です。
「罫線」のインターフェースは、キーボードだけで操作・設定するのはかなり無理があります。マウスでも壊れた罫線の設定を一本ずつチマチマと変更させられるのは本当に苦痛でしかありません。
手作業で罫線を修復するには
罫線を修復するには、壊れていないセルから書式だけコピー&ペーストするのが手っ取り早いでしょう。
貼り付けの形式を選択するタイミングは、貼り付け前と後がありますが、慣れれば貼り付け後の方が速くなると思います。
【手順例】
- 罫線の壊れたセルの周辺から、正しい罫線を持つセルをコピーします(
Ctrl + C
) - 罫線の壊れているセル範囲を選択し、「書式設定」の貼り付けをします
- キー操作(貼り付け前):
Alt
⇒E
⇒S
⇒T
⇒Enter
- キー操作(貼り付け後):
Ctrl + V
⇒Ctrl
⇒R
⇒Esc
(「貼り付けのオプション」はEsc
で閉じて下さい。Enter
を押すとなぜか値も貼り付けになってしまいます(Excel 2013))
- キー操作(貼り付け前):
- これを繰り返します
罫線を修復するマクロ
壊れた罫線を補完するマクロを作成してみました。
このマクロ VBA は、選択されたセル領域の1行目のタテ罫線と1列目のヨコ罫線を参照して内部罫線を引きなおします。
Option Explicit Sub 罫線の修復() Application.ScreenUpdating = False Dim bc As Variant Dim bw As Integer Dim bl As Integer Dim rng As Range For Each rng In Selection.Columns With rng.Rows(1).Borders(xlEdgeRight) bc = .Color bw = .Weight bl = .LineStyle End With With rng.Borders(xlEdgeRight) .Color = bc .Weight = bw .LineStyle = bl End With Next For Each rng In Selection.Rows With rng.Columns(1).Borders(xlEdgeBottom) bc = .Color bw = .Weight bl = .LineStyle End With With rng.Borders(xlEdgeBottom) .Color = bc .Weight = bw .LineStyle = bl End With Next Application.ScreenUpdating = True End Sub
【使い方】
- VBA 標準モジュールに上記 VBA ソースをコピー&ペーストします
- 罫線の壊れたセルのを含む周辺のセル領域を範囲選択します
- 1行目と1列目の罫線が正常な範囲を選択します
- 「罫線の修復」マクロを実行します
- 内部罫線が補完されて修復されます
【注意】操作結果を元に戻すこと(Undo)はできません。
まとめ
Windows 10 の Excel 2013 で動作確認しました。