Click destro del mouse: intervenire sul menų contestuale. - dal 04/09/04 pagina vista: volte

Abbiamo giā visto come disabilitare la comparsa del menų contestuale che appare quando si clicca destro col mouse sul foglio di lavoro (Sezione Vba, articolo "Routines veloci", sull'altro sito). Qui ci occupiamo invece di come eliminare delle "Voci" dal menų contestuale, lasciandone altre. Esempio: a sinistra il menų contestuale che appare cliccando destro, a destra lo stesso menų dal quale sono state tolte (inibite) le voci indicate dalle frecce rosse:

Questo menų contestuale viene identificato da Excel come "CommandBars" dal nome "Cell", e le voci che "Cell" contiene sono "Controls". Per eliminare la "voce (controls)" che ci interessa, dovremo usare il nome cosė come appare nel menų, e la sua proprietā "Visible" impostandola a "False". Useremo l'evento appropriato BeforeRightClick del Worksheet, in questo modo:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Application.CommandBars("Cell").Controls("Elimina...").Visible = False
Application.CommandBars("Cell").Controls("Copia").Visible = False
Application.CommandBars("Cell").Controls("Taglia").Visible = False
End Sub

Come si nota sono stati usati i nomi dei controlli scritti esattamente come riportati nel menų contestuale.

Attenzione: le voci "inibite" resteranno tali non solo per tutti i fogli del Workbook, ma anche per successive applicazioni, cioč anche all'apertura successiva di Excel con altre cartelle. E' quindi IMPORTANTE ricordarsi di ripristinare le voci tolte, all'uscita dalla cartella di lavoro, usando l'evento BeforeClose del Workbook, reimpostando a True le voci rese non visibili, cosė:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Cell").Controls("Elimina...").Visible = True
Application.CommandBars("Cell").Controls("Copia").Visible = True
Application.CommandBars("Cell").Controls("Taglia").Visible = True
End Sub

 

Buon lavoro.

prelevato sul sito www.ennius.altervista.org