excel VBA 禁用“剪切”的方法
(2010-01-08 13:22:38)
轉(zhuǎn)載▼標(biāo)簽:
excel技巧教育分類:
№87:EXCELexcel VBA 禁用“剪切”的方法
此方法只會(huì)禁用本工作薄的“剪切”功能,不會(huì)影響其他工作薄使用“剪切”功能。而對(duì)于工作表之間,也可以類似使用。
其思路為:當(dāng)工作薄被激活(Activate)時(shí),進(jìn)行禁用某些功能,當(dāng)切換到別的工作薄后(Deactivate)解除相應(yīng)的禁用。當(dāng)然關(guān)閉本工作薄前(BeforeClose)也該解除禁用。
代碼如下:復(fù)制到ThisWorkBook代碼區(qū)(在office 2003 正常,在office xp等版本設(shè)置可能有所不同)
Private Sub Workbook_Activate() '本工作薄等到焦點(diǎn)(激活)時(shí),相應(yīng)地禁用“剪切”
'禁用菜單欄"剪切",里面的序號(hào)代表位置,2和3是2003里的,XP中應(yīng)該不同,自己修改
Application.CommandBars(1).Controls(2).Controls(3).Enabled = False
'禁用右鍵中的"剪切",序號(hào)1代表第一個(gè)選擇,2代表復(fù)制(這是我的,自己修改你自己的)
Application.CommandBars("cell").Controls(1).Enabled = False
'禁用鍵盤"Ctrl+x",恢復(fù)方法:Application.OnKey "^x"
Application.OnKey "^x", ""
'禁用移動(dòng)(會(huì)把拖動(dòng)也禁用)
Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) '關(guān)閉前 解除
'解除禁用
Application.CommandBars(1).Controls(2).Controls(3).Enabled = True
Application.CommandBars("cell").Controls(1).Enabled = True
Application.OnKey "^x"
Application.CellDragAndDrop = True
End Sub
Private Sub Workbook_Deactivate() '本工作薄失去焦點(diǎn)時(shí),相應(yīng)地解除禁用
'解除禁用
Application.CommandBars(1).Controls(2).Controls(3).Enabled = True
Application.CommandBars("cell").Controls(1).Enabled = True
Application.OnKey "^x"
Application.CellDragAndDrop = True
End Sub
Private Sub Workbook_Open() '打開(kāi)時(shí), 禁用“剪切”
' '禁用菜單欄"剪切",里面的序號(hào)代表位置,2和3是2003里的,XP中應(yīng)該不同,自己修改
' Application.CommandBars(1).Controls(2).Controls(3).Enabled = False
'
' '禁用右鍵中的"剪切",序號(hào)1代表第一個(gè)選擇,2代表復(fù)制(這是我的,自己修改你自己的)
' Application.CommandBars("cell").Controls(1).Enabled = False
'
' '禁用鍵盤"Ctrl+x",恢復(fù)方法:Application.OnKey "^x"
'
' Application.OnKey "^x", ""
' '禁用移動(dòng)(會(huì)把拖動(dòng)也禁用)
' Application.CellDragAndDrop = False
End Sub
以后再補(bǔ)充。