You are here : Start Excel Deaktiveren von Ausschneiden, Kopieren und Einfügen

Deaktiveren von Ausschneiden, Kopieren und Einfügen

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.

Option Explicit

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


 
 
JoomlaTheme.net