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
 

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.