Buon giorno. Propongo qui una questione già proposta giorni addietro qui:
https://forum.openoffice.org/it/forum/viewtopic.php?t=12613&sid=82d95bbdf756b8cc7d96c4605af2c88c
Continuando a sperimentare le funzioni di LO (l’obiettivo sarà quello di convertire le mie VBA di Excel) sono incappato in questo problema:
la sub elencata genera una toolbar con un pulsante. Funziona la prima volta che viene eseguita. Le volte successive la barra non viene generata, ma neanche appaiono errori. Visivamente la finestra delle celle del foglio si abbassa, come per fare spazio alla nuova barra, ma questa non appare. Perchè appaia devo chiudere il programma, riaprirlo ed eseguire la sub.
La sub è il risultato di una serie di taglia/incolla di altre sub trovate in rete.
Chiedo ai frequentatori del forum suggerimenti su accorgimenti da adottare per eliminare il problema.
Ringrazio in anticipo
Sub CreaBarra_Del_foglio_di_Calcolo2()
dim sToolbarURL as string ' URL of the custom toolbar.
dim oModuleCfgMgrSupplier as object ' ModuleUIConfigurationManagerSupplier
dim oModuleCfgMgr as object ' Module manager.
dim oToolbarSettings as object ' Settings that comprise the toolbar.
dim oToolbarItem as variant ' Single toolbar button.
dim aToolbarItem(3) as new com.sun.star.beans.PropertyValue
'A custom toolbar name MUST start with "custom_"!
sToolbarURL = "private:resource/toolbar/custom_PROVACCCC"
oModuleCfgMgrSupplier = createUnoService("com.sun.star.ui.ModuleUIConfigurationManagerSupplier")
Set oModuleCfgMgr = oModuleCfgMgrSupplier.getUIConfigurationManager("com.sun.star.sheet.SpreadsheetDocument")
If (oModuleCfgMgr.hasSettings(sToolbarURL)) Then
oModuleCfgMgr.removeSettings(sToolbarURL)
End If
oToolbarSettings = oModuleCfgMgr.createSettings() ' la struttura della barra
oToolbarSettings.UIName = "PROVA_CCCC" ' Set a title for our new custom toolbar
'---------------------------------------------'
aToolbarItem(0).Name = "CommandURL"
aToolbarItem(0).Value = "macro:///Standard.SubProva.Prima_sub()"
aToolbarItem(1).Name = "Label"
aToolbarItem(1).Value = "Esegui 1"
aToolbarItem(2).Name = "Type" '
aToolbarItem(2).Value = 0 ' Valore per Type (Con 0 si vede la scritta...)
aToolbarItem(3).Name = "Visible" ' ARGOMENTO PER BOTTONE VISIBULE O NASCOSTO
aToolbarItem(3).Value = true ' true per VISIBILE, false per NASCOSTO
oToolbarSettings.insertByIndex(0, aToolbarItem())
oModuleCfgMgr.insertSettings(sToolbarURL, oToolbarSettings)
ThisComponent.CurrentController.Frame.LayoutManager.showElement( sToolbarURL)
End Sub