Office-Zwischenablage deaktivieren mit VBA
Schritt-für-Schritt-Anleitung
Um die Office-Zwischenablage zu deaktivieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass die Zwischenablage beim Selektieren von Zellen deaktiviert wird:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
Application.CellDragAndDrop = False
End Sub
Füge diesen Code in das Modul „DieseArbeitsmappe“ Deiner Excel-Datei ein. Dieser Befehl deaktiviert die Funktionsweise der Zwischenablage, sodass Benutzer keine Zellen mehr ausschneiden oder kopieren können.
Häufige Fehler und Lösungen
-
Fehler beim Kompilieren: Ein Modul hat einen unzulässigen Typ.
- Lösung: Stelle sicher, dass Du alle erforderlichen Module korrekt eingefügt hast und die Syntax keine Fehler enthält. Achte darauf, dass Du
ByRef richtig verwendest.
-
Die Zwischenablage funktioniert trotzdem.
- Lösung: Vergewissere Dich, dass der Code im richtigen Modul platziert ist und dass Du die Datei speicherst, bevor Du die Funktionen testest.
Alternative Methoden
Eine alternative Methode, um die Office-Zwischenablage zu deaktivieren, besteht darin, das Menüband anzupassen. Du kannst dazu den Custom UI Editor verwenden. Hierbei wird die Sichtbarkeit der gesamten Gruppe „Clipboard“ für bestimmte Benutzer eingeschränkt. Der XML-Code dazu könnte wie folgt aussehen:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group idMso="GroupClipboard" getVisible="group_getVisible">
</group>
</tab>
</tabs>
</ribbon>
</customUI>
In einem Standardmodul kannst Du dann den entsprechenden Code hinzufügen, um die Sichtbarkeit basierend auf dem Benutzernamen zu steuern.
Praktische Beispiele
Hier ist ein Beispiel, wie Du die Sichtbarkeit der Zwischenablage für bestimmte Benutzer einstellen kannst:
Option Explicit
Public gblnGroupVisible As Boolean
Private Sub Group_getVisible( _
ByRef probjControl As IRibbonControl, _
ByRef prvntRreturnedValue As Variant)
prvntRreturnedValue = gblnGroupVisible
End Sub
Private Sub Workbook_Open()
Select Case Environ$("USERNAME")
Case "Paul", "Peter" 'Windowsnamen der Benutzer die Zugriff haben
gblnGroupVisible = True
Case Else
gblnGroupVisible = False
End Select
End Sub
Dieses Beispiel stellt sicher, dass nur die Benutzer „Paul“ und „Peter“ Zugriff auf die Zwischenablage haben.
Tipps für Profis
- Nutze
Application.CutCopyMode = False nach jeder Operation, um sicherzustellen, dass die Zwischenablage deaktiviert bleibt.
- Teste immer Deine VBA-Codes in einer Testumgebung, bevor Du sie auf kritische Dateien anwendest.
- Achte darauf, dass Du alle Änderungen dokumentierst, um spätere Anpassungen zu erleichtern.
FAQ: Häufige Fragen
1. Wie kann ich die Zwischenablage für alle Benutzer deaktivieren?
Du kannst den VBA-Code so anpassen, dass gblnGroupVisible immer auf False gesetzt wird.
2. Funktioniert dieser Code in allen Excel-Versionen?
Die beschriebenen Methoden funktionieren in den meisten modernen Excel-Versionen, insbesondere in Excel 2007 und später. Achte darauf, die VBA-Umgebung entsprechend einzurichten.