Seite 1 von 1

[Gelöst]verschiedene Symolleisten usw. in Calc

Verfasst: Sa 18. Jan 2025, 13:18
von jef0815
Hallo Gemeinde,
ich versuche in Calc die verschiedenen Symbolleisten, Statusleiste usw. per Makro ein- oder auszublenden.
Mit:
sub All()
ThisComponent.CurrentController.Frame.LayoutManager.setVisible(False, True)
end sub

gelingt das für die Menüleiste, Standardsymbolleiste, Formatierungsleiste, Statuszeile, Suchleiste und die Eingabezeile.

Einzeln funktioniert das z.B. mit

Sub StandardbarAN()
' LayoutElements = "private:resource/toolbar/findbar"
LayoutElements = "private:resource/toolbar/standardbar"
' LayoutElements = "private:resource/toolbar/formatobjectbar"
' LayoutElements = "private:resource/menubar/menubar"
' LayoutElements = "private:resource/statusbar/statusbar"
' LayoutElements = "private:resource/toolbar/tabbar"
doc = ThisComponent
frame = doc.CurrentController.Frame
lmgr = frame.LayoutManager
lmgr.showElement(LayoutElements)
End Sub

nur für die Eingabezeile habe ich keinen Code gefunden.
Da muß ich eine Excel-Anleihe benutzen:
Sub InputbarAN()
Application.DisplayFormulaBar = True
End Sub

Ich suche aber eine reine LO-Lösung

Die anderen Leisten funktionieren mit z.B.

Sub verschiedene()
thiscomponent.currentcontroller.VerticalScrollBar = true
thiscomponent.currentcontroller.HorizontalScrollBar = true
thiscomponent.currentcontroller.sheettabs=true
thiscomponent.currentcontroller.ColumnRowHeaders = True oder False
End Sub

Dabei aber nur die Spaltenköpfe und Zeilenköpfe gemeinsam, Einzellösung habe ich noch nicht gefunden.

Hat jemand eine Idee? Würde mich freuen.

Jürgen

Re: verschiedene Symolleisten usw. in Calc

Verfasst: Sa 25. Jan 2025, 20:02
von thomasmeyer42
Das ist eine schwierige Frage. Ich habe eine künstliche Intelligenz gefragt. Sie antwortete wie folgt:

Re: verschiedene Symolleisten usw. in Calc

Verfasst: Sa 25. Jan 2025, 20:05
von thomasmeyer42
Symbolleisten in LibreOffice Calc ein- oder ausblenden
Um Symbolleisten wie die Eingabezeile (Input Bar) in LibreOffice Calc über Makros zu steuern, können Sie die UNO-API verwenden. Allerdings gibt es keine direkte API-Funktion, die speziell die Eingabezeile adressiert. Hier ist eine mögliche Lösung:

Eingabezeile ein-/ausblenden

Code: Alles auswählen

Sub InputBarAn()
    Dim layoutManager As Object
    Dim inputBar As String

    inputBar = "private:resource/toolbar/inputbar" ' Ressourcenname der Eingabezeile
    layoutManager = ThisComponent.CurrentController.Frame.LayoutManager
    layoutManager.showElement(inputBar) ' Eingabezeile anzeigen
End Sub

Sub InputBarAus()
    Dim layoutManager As Object
    Dim inputBar As String

    inputBar = "private:resource/toolbar/inputbar" ' Ressourcenname der Eingabezeile
    layoutManager = ThisComponent.CurrentController.Frame.LayoutManager
    layoutManager.hideElement(inputBar) ' Eingabezeile ausblenden
End Sub
Andere Symbolleisten
Hier ist ein Beispiel, wie die Standard-Symbolleiste (Standardbar) gesteuert werden kann:

Code: Alles auswählen

Sub StandardbarAn()
    Dim layoutManager As Object
    Dim standardBar As String

    standardBar = "private:resource/toolbar/standardbar" ' Ressourcenname der Standard-Symbolleiste
    layoutManager = ThisComponent.CurrentController.Frame.LayoutManager
    layoutManager.showElement(standardBar) ' Symbolleiste anzeigen
End Sub

Sub StandardbarAus()
    Dim layoutManager As Object
    Dim standardBar As String

    standardBar = "private:resource/toolbar/standardbar"
    layoutManager = ThisComponent.CurrentController.Frame.LayoutManager
    layoutManager.hideElement(standardBar) ' Symbolleiste ausblenden
End Sub
Zeilen- und Spaltenüberschriften
Um die Zeilen- und Spaltenüberschriften gleichzeitig ein- oder auszublenden:

Code: Alles auswählen

Sub ZeilenUndSpaltenÜberschriftenAnzeigen()
    ThisComponent.CurrentController.ColumnRowHeaders = True
End Sub

Sub ZeilenUndSpaltenÜberschriftenAusblenden()
    ThisComponent.CurrentController.ColumnRowHeaders = False
End Sub
Hinweis
Makros können Sie über Extras > Makros > Makros bearbeiten hinzufügen.
Falls bestimmte Funktionen nicht wie erwartet arbeiten, lohnt sich ein Blick in die LibreOffice API-Dokumentation oder in die Community-Foren.

Re: verschiedene Symolleisten usw. in Calc

Verfasst: Sa 25. Jan 2025, 21:33
von mikele
Hallo,
soweit ich es weiß kann man auf die Eingabezeile (Inputline) nur per Dispatcher zugreifen (entspricht der Funktionalität ->Ansicht->Rechenleiste):

Code: Alles auswählen

	oFrame = ThisComponent.CurrentController.Frame
	dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	'Rechenleiste - nur per Dispatcher möglich
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name = "InputLineVisible"
	args1(0).Value = False ' bzw. True
	dispatcher.executeDispatch(oFrame, ".uno:InputLineVisible", "", 0, args1())
Die Inputline ist kein Element des LayoutManager (warum auch immer und an anderer Stelle habe ich sie auch nicht gefunden). Daher funktioniert die KI-Lösung nicht.

Re: verschiedene Symolleisten usw. in Calc

Verfasst: Do 30. Jan 2025, 22:40
von jef0815
Hallo ihr Spezialisten,

Danke für eure Hilfe!

an #thomasmeyer42
der code für eingabezeile an- und ausblenden funktioniert bei mir leider nicht. Bedeutet: es tut sich gar nichts. Dagegen das von #mikele gepostete funktioniert. Danke dafür!

Den code für die standardbar befindet sich ja bereits im Text meiner Anfrage und Zeilen- und Spaltenüberschriften ebenfalls. Bei letzterem war meine Frage aber, ob Zeilenüberschriften und Spaltenüberschriften einzeln zu schalten sind.

nochmals vielen Dank
Jürgen