TextBoxとかのKeyDownイベントで
Ctrl + c とかを判別する時、

If Shift = 2 and KeyCode = vbKeyC とするのが正解
If KeyCode = vbKeyC and Shift = 2 とするのは不正解

下のコードだとCtrlを押した時点ではCを押していないため
Cを押す前にifブロックをそのまま抜けてしまう

ちょい時間なくて未確認だけどたぶんこうかなと思っている