venerdì 12 settembre 2014

Nota sul codice per associare all'evento click di un menu una routine, con passaggio di parametro stringa

Ho fatto il primo passetto per la realizzazione dei menu popup in Excel...

Vediamo...
Application.CommandBars.Add Name:="MyCustomToolbar", _
                            Position:=MsoBarPosition.msoBarPopup, _
                            MenuBar:=False, _
                            Temporary:=True


Sono andato lontano.
Mi annoto il codice:
Private Sub CommandButton1_Click()

cancellaMenu
Set cbr = Application.CommandBars.Add(Name:="MyCustomToolbar", _
                            Position:=MsoBarPosition.msoBarPopup, _
                            MenuBar:=False, _
                            Temporary:=True)

Set ctr1 = cbr.Controls.Add(Type:=msoControlButton)
Dim s As String
s = "Bottone"
ctr1.Caption = s

ctr1.OnAction = "'scrivi """ & s & """'"

Application.CommandBars("MyCustomToolbar").ShowPopup


End Sub

Private Sub cancellaMenu()
On Error GoTo fine
Application.CommandBars("MyCustomToolbar").Delete
fine:
End Sub
Private Sub CommandButton2_Click()
Application.CommandBars("MyCustomToolbar").Delete
End Sub
...laddove in rosso è segnato il codice per passare un parametro stringa (cervelloticissimo!) a una routine chiamata scrivi con un parametro di tipo stringa situata nel modulo 1:
Sub scrivi(ByVal testo As String)
    MsgBox testo
End Sub
Non oso ancora chiedermi il perché di tutto questo... comunque funziona!
Adesso cerchiamo di vedere se è possibile intercettare un evento su un foglio Excel...

Nessun commento:

Posta un commento