Off the top of my head, what you want is a Copy event for a range. Set up a subroutine that executes automatically when you copy from a cell; the subroutine locks the surrounding cells, and then ends, and you can go on to paste the cell somewhere else.
But is there a copy event? I looked in the documentation, and I don't see any events for a Range object. Come to think of it, when I trigger a subroutine for action on a cell (it's the Delete action), I run it as a worksheet event, not a range event. Ok, is there a Copy event for a worksheet object?
I don't see that either. Seems to me you're going to have to fiddle around a little. Let's see, what worksheet events are available that might do for what you want? BeforeDelete, BeforeDoubleClick, BeforeRightClick, Change...that's all I see that might help you. Suppose you set up a BeforeDoubleClick event routine; when you double-click on a cell it does the following:
1) Determine what cell you double clicked on, and perhaps decides that it's not in the range that you want to act on. (If not, exit without taking action.)
2) Lock the surrounding cells.
3) Copy the cell.
Can you make that work for you?