Creare nuova barra mediante macro

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Attilafdd
Volontario
Volontario
Messaggi: 564
Iscritto il: giovedì 5 aprile 2012, 8:25

Creare nuova barra mediante macro

Messaggio da Attilafdd »

Tramite Visualizza-Barre degli strumenti-Personalizza è possibile creare una nuova "Barra" con n pulsanti (sia con testo che con immagine associata) ai quali collegare una macro.

Quel che mi servirebbe è creare la barra mediante macro.

Quel che finora ho trovato in rete è:

Codice: Seleziona tutto

   
Sub Mostra
ThisComponent.CurrentController.Frame.LayoutManager.showElement("private:resource/toolbar/standardbar")
End Sub

Sub Nascondi
ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/standardbar")
End Sub
che non fa altro che visualizzare o nascondere una barra già definita in OOo...
... mentre a me servirebbe da macro creare la barra "Barra Pinco Pallino" composta da 9 pulsanti con separatore dopo il 3° e dopo il 7°. Il primo con icona " :D " e testo "primo" il secondo con icona " :( " e testo "secondo" ecc. ai quali sono associate le macro "x" al primo, la macro "y" al secondo ecc.

Sarà possibile?
LibreOffice 24.8.3 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: viewtopic.php?f=9&t=5661
Attilafdd
Volontario
Volontario
Messaggi: 564
Iscritto il: giovedì 5 aprile 2012, 8:25

Re: Creare nuova barra mediante macro

Messaggio da Attilafdd »

Per chi ci capisce qualcosa in basic riporto il codice che utilizzavo con Excel.
Sperando che si possa tradurre in OOo.

Codice: Seleziona tutto

Private Sub CreaBarra() 'per creare una barra strumenti personalizzata
On Error Resume Next
 
'cancello la barra qualora già esista
Application.CommandBars("Nuova barra").Delete

 
'creo la barra e imposto alcune proprietà
With Application.CommandBars.Add("Nuova barra", msoBarTop, MenuBarBool, True)
.Visible = True
.Position = msoBarTop
.Protection = msoBarNoChangeVisible + msoBarNoCustomize

'aggiungo tre pulsanti ed imposto le proprietà

With .Controls
With .Add(msoControlButton)
.Caption = "Dividi in fogli"
.Style = msoButtonIconAndCaption
'icona di office
.FaceId = 1548
'nome funzione
.OnAction = "M1_Dividi_in_fogli"
End With

 
With .Add(msoControlButton)
.Caption = "Salva fogli in file"
.Style = msoButtonIconAndCaption
'icona di office
.FaceId = 749
'nome funzione
.OnAction = "M2_Crea_file_separati"

End With
 
With .Add(msoControlButton)
.Caption = "Dividi e salva"
.Style = msoButtonIconAndCaption
'icona di office
.FaceId = 1676
'nome funzione
.OnAction = "M3_Dividi_in_fogli_e_salva_in_file"

End With
End With
End With

messaggio = msgbox("Puoi attivare tutte le funzioni dalla nuova barra!!!!", vbInformation)

End Sub
LibreOffice 24.8.3 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: viewtopic.php?f=9&t=5661
pinosauro
Messaggi: 37
Iscritto il: sabato 7 settembre 2013, 8:33

Re: Creare nuova barra mediante macro

Messaggio da pinosauro »

Ciao Attila,

Codice: Seleziona tutto

Sub main
ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/standardbar")
End Sub
...facendo riferimento al codice che hai indicato, quali sono gli altri nomi da utilizzare per far apparire/scomparire le altre barre al posto di STANDARDBAR?

Grazie
OpenOffice 3.3 / win 8
Rispondi