目次
はじめに
Excelでせっかく綺麗に書式を整えたレポートに、別の場所からコピーしたセルの太い罫線が貼り付けられてしまい、デザインが崩れてしまった…という経験はありませんか? 😥
「形式を選択して貼り付け」から「罫線を除くすべて」を選ぶのも一つの手ですが、この操作を頻繁に行う場合は少し面倒です。
VBAでマクルを作成しておけば、この「罫線を除いて貼り付け」をワンクリックで実行できるようになり、作業の小さなストレスを解消できます。
罫線以外を貼り付けるVBAサンプルコード
以下のマクロは、現在クリップボードにコピーされている内容を、アクティブセル(現在選択されているセル)に「罫線を除くすべて」のオプションで貼り付けます。
完成コード
' クリップボードの内容を、罫線を除いてアクティブセルに貼り付ける
Sub PasteAllExceptBorders()
' 貼り付け先のセル範囲が選択されているか確認
If TypeName(Selection) <> "Range" Then
MsgBox "貼り付け先のセルを選択してください。", vbExclamation
Exit Sub
End If
' 「罫線を除くすべて」のオプションで貼り付けを実行
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders
' コピーモードを解除(点線の囲みを消す)
Application.CutCopyMode = False
End Sub
使い方
- 通常通り、コピーしたいセル範囲を選択してコピーします(
Ctrl + C
)。 - 貼り付けたい先のセルを選択します。
- VBE(
Alt + F11
)を開き、標準モジュールに上記のコードを貼り付け、PasteAllExceptBorders
マクロを実行します。 - 値、数式、書式はそのままに、罫線だけが除かれた状態で貼り付けられます。
コードの解説
Selection.PasteSpecial Paste:=xlPasteAllExceptBorders
この一行が処理の核心部分です。
Selection
: 現在選択されているオブジェクト(この場合はセル範囲)を指します。.PasteSpecial
: 「形式を選択して貼り付け」を行うためのメソッドです。Paste:=xlPasteAllExceptBorders
:PasteSpecial
の中でも、具体的にどの形式で貼り付けるかを指定する引数です。xlPasteAllExceptBorders
は、VBAに組み込まれている定数で、「罫線を除くすべての情報」を意味します。
Application.CutCopyMode = False
貼り付け操作が終わった後、コピー元のセル範囲が点線で囲まれたままになる「コピーモード」を解除するための命令です。これにより、Esc
キーを押したときと同じ状態になります。
まとめ
今回は、VBAを使って「罫線を除いて貼り付け」をスマートに行う方法をご紹介しました。
このマクロをクイックアクセスツールバーに登録しておけば、自分専用の「罫線なし貼り付けボタン」として、いつでも手軽に利用できます。
日々の資料作成でコピー&ペーストを多用する方は、ぜひこのマクロを導入して、作業の効率化を実感してみてください。