メモ

主にプログラミング系の備忘録

コピペ禁止を別アプローチで

Worksheet_Changeイベントで変更後の値を別変数にいったん退避
→セル自体はUndoで変更前に戻した後に
 値だけ変更後のものに入れる
コピー元が複数セルだったりコピー先が結合されている場合
想定通りの動作にはならないので要検討

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vAfter As Variant
    Application.EnableEvents = False
    vAfter = Target.Value
    Application.Undo
    Target.Value = vAfter
    Application.EnableEvents = True
End Sub

2016/12/12 追記 target複数選択されている場合、
target.cells(1).valueとかで解決できそうな。