Excelで特定のセルに対してキーボード入力は可能にしたまま、他のセルからのコピー&ペーストを禁止する方法について解説します。VBAを使えば、ペーストされた場合に警告を表示して元の値に戻すことができます。
準備:対象セルを決める
まず、コピペを禁止したいセルを決めます。例えば、シート1のセルA1とします。
VBAコードの挿入手順
手順は以下の通りです。
- ExcelでAlt + F11を押してVBAエディタを開く
- 左側のプロジェクトウィンドウで対象のシートをダブルクリック
- 表示されたコードウィンドウに以下のVBAコードを貼り付け
VBAコード例
Private oldValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WatchCell As Range
Set WatchCell = Me.Range("A1") '監視するセルを指定
If Not Intersect(Target, WatchCell) Is Nothing Then
Application.EnableEvents = False
If Target.Value <> oldValue And Application.CutCopyMode = True Then
MsgBox "このセルにはコピペ出来ません!", vbExclamation
Target.Value = oldValue
End If
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim WatchCell As Range
Set WatchCell = Me.Range("A1")
If Not Intersect(Target, WatchCell) Is Nothing Then
oldValue = Target.Value
End If
End Sub
使い方
1. セルA1に値を入力する場合、キーボードでの入力はそのまま可能です。
2. 他のセルからコピーした値を貼り付けると、警告メッセージが表示され、元の値に戻ります。
注意点
・このVBAは対象セルを変更した場合にのみ機能します。
・複数セルに適用したい場合は、WatchCellの範囲を拡張してください。
まとめ
上記のVBAコードを使うことで、特定のセルはキーボード入力のみ可能にし、コピー&ペーストを禁止することができます。コードをそのままコピーして貼り付けるだけで簡単に設定可能です。


コメント