Excelで特定セルをキーボード入力のみ許可し、コピペを防ぐVBAの作り方

Excel

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コードを使うことで、特定のセルはキーボード入力のみ可能にし、コピー&ペーストを禁止することができます。コードをそのままコピーして貼り付けるだけで簡単に設定可能です。

コメント

タイトルとURLをコピーしました