Description: It's an example of a non-uniform approach. E.g. >>> ThisComponent.CurrentController.ShowGrid = True 'affects all sheets >>> ThisComponent.CurrentController.freezeAtPosition(0, 1) 'affects active sheet NOTE: This looks like a 10 year-old bug. ODS's file 'settings.xml' contains the 'ShowGrid' property for each sheet. <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item> Steps to Reproduce: 1. Select a sheet. 2. Run in code: ThisComponent.CurrentController.ShowGrid = False 3. Actual Results: The grid of all sheets will be hidden. Expected Results: The grid of only the active sheet is hidden. Reproducible: Always User Profile Reset: No Additional Info: To hide the sheet grid via the GUI, right-click on the sheet tab and select "View Grid Lines" (menu: View/View Grid Lines) Some links solve a contrived problem: https://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=38999 https://extensions.openoffice.org/en/project/gridlines
Created attachment 171168 [details] bt with debug symbols On pc Debian x86-64 with master sources updated today, I could reproduce this. I don't know if it's expected or not but attached a bt showing where the value for "ShowGrid" is set.
What if you run? Option Explicit Sub Macro1() Dim dispatchhelper As com.sun.star.frame.XDispatchHelper dispatchhelper = createUnoService("com.sun.star.frame.DispatchHelper") rem ---------------------------------------------------------------------- dispatchhelper.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:ToggleSheetGrid", "", 0, Array()) end sub
The dispatcher method works. But the question was different. "Toggle” does not allow you to determine the current state.