Como Exibir/Ocultar guia específica de uma planilha Calc?

Boa tarde,
pessoal estou precisando de uma macro para exibir/ocultar uma aba especifica de uma planilha, por exemplo: tenho uma planilha com 3 abas; Plan1, Plan2 e Plan3, quero apenas exibir/ocultar a Plan2.

Encontrei outra forma de ocultar uma guia especifica,

Sub Ocultar

ThisComponent.Sheets.GetByName(“nome da planilha”).IsVisible = False '(para ocultar)

end Sub

.

Sub Mostrar

ThisComponent.Sheets.GetByName(“nome da planilha”).IsVisible = True '(para exibir)

ens Sub

.

Muito bem @JúnioVieira, uma só linha, já substitui a minha.

Oi @JúnioVieira, segue as macros e arquivo teste

sub OcultarAba2
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "Planilha2"      '<=========== aqui é o nome da aba.
dispatcher.executeDispatch(document, ".uno:Hide", "", 0, Array())
end sub

.

sub MostrarAba2
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "aTableName"
args1(0).Value = "Planilha2"  '<=========== aqui é o nome da aba.
dispatcher.executeDispatch(document, ".uno:Show", "", 0, args1())
end sub

Bom dia Gilberto, é exatamente o que eu precisava, obrigado.

Ola @JúnioVieira, por gentileza, click na bolinha Descrição da imagem a esquerda da resposta, para finalizar a pergunta.

@Gilberto Schiavinatto, por favor, pq para ocultar tem que utlizar o número da aba e para mostrar pode ser usado o nome da aba? pois eu preciso que funcione pelo nome da aba, e só funciona se coloco o número dela…no aguardo, agradeço!

@JúnioVieira, ok, acerto feito. a macro Ocultar e Mostrar são identicas exceto a penultima linha “uno:Hide” = ocultar e “uno:Show” mostrar.

Olá @JúnioVieira, segue uma versão de macro 2007 acima, que funciona perfeitamente no libreoffice e para versões da Microsoft também.

Rem Attribute VBA_ModuleType=VBAModule

Option VBASupport 1

Sub Ocultar_Sheets ()

	Worksheets("Plan1").Visible = False
	Worksheets("Plan2").Visible = False
	Worksheets("Plan3").Visible = False	

End Sub


Sub Reexibir_Sheets ()

	Worksheets("Plan1").Visible = True
	Worksheets("Plan2").Visible = True
	Worksheets("Plan3").Visible = True	

End Sub

Observação: Copie deste a frase Rem Attribute VBA_ModuleType=VBAModule

Boa noite,

Veja se é isso que procura:

Sub OcultarGuias
Dim oControlador As Object
  
  oControlador = ThisComponent.CurrentController
  oControlador.SheetTabs = False
End Sub

Sub ExibirGuias
Dim oControlador As Object
  
  oControlador = ThisComponent.CurrentController
  oControlador.SheetTabs = True
End Sub

Atte,

ola @JúnioVieira, creio que estas macros possam ser úteis também, veja aqui Personalizando Calc como Aplicativo - II

Gilberto obrigado pela sua resposta, porém não me expressei corretamente. O que realmente estou precisando é exibir/ocultar uma aba de planilha especifica, por exemplo: tenho Plan1, Plan2 e Plan3, quero apenas exibir/ocultar a Plan2. Entendeu?