Durch VBA das Ausschneiden, Kopieren und Einfügen verhindern.
Bis Excel 2003 sind die Schaltflächen dann deaktiviert (gegraut).
Ab Excel 2007 sind die Schaltflächen auf dem Ribbon immer noch
optisch aktiv aber sie sind ohne Funktion. Besser ist es das Ribbon selbst mit XML anzupassen.
Sub EnableControl(Id As Integer, Enabled As Boolean) Dim CB As CommandBar Dim C As CommandBarControl For Each CB In Application.CommandBars Set C = CB.FindControl(Id:=Id, recursive:=True) If Not C Is Nothing Then C.Enabled = Enabled Next End Sub Private Sub Workbook_Activate() ' Die Befehlsschaltflächen deaktivieren EnableControl 21, False ' Ausschneiden (cut) EnableControl 19, False ' Kopieren (copy) EnableControl 22, False ' Einfügen (paste) EnableControl 755, False ' Inhalte Einfügen (pastespecial) ' Tastenkombinationen abfangen Application.OnKey "^c", "" ' STRG + c kopieren abfangen (copy) Application.OnKey "^v", "" ' STRG + v einfügen abfangen (cut) Application.OnKey "^x", "" ' STRG + x ausschneiden abfangen (cut) Application.OnKey "+{DEL}", "" ' SHIFT + ENTF auschneiden abfangen (cut) Application.OnKey "+{INSERT}", "" ' SHIFT + EINFG einfügen abfangen (paste) ' Zellen mit dem Randanfasser verschieben, kopieren verhindern Application.CellDragAndDrop = False End Sub Private Sub Workbook_Open() ' Die Befehlsschaltflächen deaktivieren EnableControl 21, False ' Ausschneiden (copy) EnableControl 19, False ' Kopieren (copy) EnableControl 22, False ' Einfügen (paste) EnableControl 755, False ' ' ' Tastenkombinationen abfangen Application.OnKey "^c", "" ' STRG + c Kopieren (copy) Application.OnKey "^v", "" ' STRG + v (cut) Application.OnKey "^x", "" ' STRG + x (paste) Application.OnKey "+{DEL}", "" ' SHIFT + ENTF (cut) Application.OnKey "+{INSERT}", "" ' SHIFT + EINFG (paste) ' Zellen mit dem Randanfasser verschieben, kopieren wieder ermöglichen Application.CellDragAndDrop = False End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Die Befehlsschaltflächen wieder aktivieren EnableControl 21, True ' Ausschneiden (cut) EnableControl 19, True ' Kopieren (copy) EnableControl 22, True ' Einfügen (paste) EnableControl 755, True ' pastespecial ' Tastenkombinationen abfangen Application.OnKey "^c" ' STRG + c (copy) Application.OnKey "^v" ' STRG + v (cut) Application.OnKey "^x" ' STRG + x (cut) Application.OnKey "+{DEL}" ' SHIFT + ENTF (cut) Application.OnKey "+{INSERT}" ' SHIFT + EINFG (paste) ' Zellen mit dem Randanfasser verschieben, kopieren wieder ermöglichen Application.CellDragAndDrop = True End Sub Private Sub Workbook_Deactivate() ' Die Befehlsschaltflächen wieder aktivieren EnableControl 21, True ' Kopieren (copy) EnableControl 19, True ' Kopieren (copy) EnableControl 22, True ' Einfügen (paste) EnableControl 755, True ' ' Inhalte Einfügen (pastespecial) ' Tastenkombinationen wieder einschalten Application.OnKey "^c" ' STRG + c Kopieren (copy) Application.OnKey "^v" ' STRG + v Einfügen (paste) Application.OnKey "^x" ' STRG + v ausschneiden (cut) Application.OnKey "+{DEL}" ' SHIFT + ENTF (cut) Application.OnKey "+{INSERT}" ' SHIFT + EINFG (paste) ' Zellen mit dem Randanfasser verschieben, kopieren wieder ermöglichen Application.CellDragAndDrop = True End Sub