Deshabilitar o Habilitar control de Copiar, cortar, pegar
publicado
Saludos estimados amigos del foro
Esta consulta pretende saber cómo se puede evitar con vba para que en el archivo que le daré a mi estudiante pueda usar el icono o control de comando para copiar, cortar o pegar, incluso no funcione las teclas abreviadas Ctrl+C, Ctrl+C, Ctrl+V. Es decir solo en el archivo que le dé para que haga la tarea. Tengo Excel 2013 pero entiendo que también funcionaria en Word 2016. Deseo que no hago uso del copy-paste si no que pueda escribir ojala por el mismo, o que sus compañeros se copien datos entre ellos.
En realidad lo que necesito es para un archivo Word pero como aquí es Excel lo planteo, y si funciona para Excel podría entender como seria para Word.
Encontré este código, pero no funciona, ni para Excel ni para Word. Me gustaría que solo incida el código para el archivo que se este manejando, pues si tengo otros archivos abiertos allá no afecte.
Sub alabrirThisWorkbook_Activate()
Dim oCtrl As Office.CommandBarControl
'Deshabilita Cut del todo el menu
For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
oCtrl.Enabled = False
Next oCtrl
'Deshabilita Copy del todo el menu
For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
oCtrl.Enabled = False
Next oCtrl
'Deshabilita Paste del todo el menu
For Each oCtrl In Application.CommandBars.FindControls(ID:=6002)
oCtrl.Enabled = False
Next oCtrl
Application.CellDragAndDrop = False
End Sub
Sub alabrirThisWorkbook_Activate()
Dim oCtrl As Office.CommandBarControl
'Habilita Cut del todo el menu
For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
oCtrl.Enabled = True
Next oCtrl
'Habilita Copy del todo el menu
For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
oCtrl.Enabled = True
Next oCtrl
'Habilita Paste del todo el menu
For Each oCtrl In Application.CommandBars.FindControls(ID:=6002)
oCtrl.Enabled = True
Next oCtrl
Application.CellDragAndDrop = True
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
With Application
.CellDragAndDrop = False
.CutCopyMode = False 'Clear clipboard
End With
End Sub
La lista de los IDs los consigo con este código que funciona bien en un archivo Excel
Sub listaIDs()
'Funciona
Dim oneCont As Object
Dim outRow As Long
For Each oneCont In CommandBars("Standard").Controls
outRow = outRow + 1
Cells(outRow, 1) = oneCont.Caption
Cells(outRow, 2) = oneCont.ID
Next oneCont
End Sub
Saludos estimados amigos del foro
Esta consulta pretende saber cómo se puede evitar con vba para que en el archivo que le daré a mi estudiante pueda usar el icono o control de comando para copiar, cortar o pegar, incluso no funcione las teclas abreviadas Ctrl+C, Ctrl+C, Ctrl+V. Es decir solo en el archivo que le dé para que haga la tarea. Tengo Excel 2013 pero entiendo que también funcionaria en Word 2016. Deseo que no hago uso del copy-paste si no que pueda escribir ojala por el mismo, o que sus compañeros se copien datos entre ellos.
En realidad lo que necesito es para un archivo Word pero como aquí es Excel lo planteo, y si funciona para Excel podría entender como seria para Word.
Encontré este código, pero no funciona, ni para Excel ni para Word. Me gustaría que solo incida el código para el archivo que se este manejando, pues si tengo otros archivos abiertos allá no afecte.
Sub alabrirThisWorkbook_Activate() Dim oCtrl As Office.CommandBarControl 'Deshabilita Cut del todo el menu For Each oCtrl In Application.CommandBars.FindControls(ID:=21) oCtrl.Enabled = False Next oCtrl 'Deshabilita Copy del todo el menu For Each oCtrl In Application.CommandBars.FindControls(ID:=19) oCtrl.Enabled = False Next oCtrl 'Deshabilita Paste del todo el menu For Each oCtrl In Application.CommandBars.FindControls(ID:=6002) oCtrl.Enabled = False Next oCtrl Application.CellDragAndDrop = False End Sub Sub alabrirThisWorkbook_Activate() Dim oCtrl As Office.CommandBarControl 'Habilita Cut del todo el menu For Each oCtrl In Application.CommandBars.FindControls(ID:=21) oCtrl.Enabled = True Next oCtrl 'Habilita Copy del todo el menu For Each oCtrl In Application.CommandBars.FindControls(ID:=19) oCtrl.Enabled = True Next oCtrl 'Habilita Paste del todo el menu For Each oCtrl In Application.CommandBars.FindControls(ID:=6002) oCtrl.Enabled = True Next oCtrl Application.CellDragAndDrop = True End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) With Application .CellDragAndDrop = False .CutCopyMode = False 'Clear clipboard End With End Sub
La lista de los IDs los consigo con este código que funciona bien en un archivo Excel
Sub listaIDs() 'Funciona Dim oneCont As Object Dim outRow As Long For Each oneCont In CommandBars("Standard").Controls outRow = outRow + 1 Cells(outRow, 1) = oneCont.Caption Cells(outRow, 2) = oneCont.ID Next oneCont End Sub
Agradezco anticipadamente su gentil colaboración
Deshabilitar comandos de controlV1.xlsm