Ir ao conteúdo
  • Cadastre-se
daniellopes2006

Célula ativa no ooo basic.

Recommended Posts

Olá pessoal.

Estou migrando algumas macros do MS Office para LibreOffice.

Uma das coisas que não consigo fazer é encontrar uma equivalência para ActiveCell() do MS Office.

A estrutura da minha macro depende disso.

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

 

No caso, o comum é usar o método CurrentSelection juntamente com um teste para verificar se a seleção é uma célula individual:

Sub Main
	oDoc = ThisComponent
	oCel = oDoc.CurrentSelection
	
	If oCel.ImplementationName <> "ScCellObj" Then
	   MsgBox "Por favor, selecione uma única célula."
	   Exit Sub
	End If

	vCel = oCel.Value
	sCel = oCel.String

	MsgBox "Valor: " & vCel & Chr(10) & "Texto: " & sCel
End Sub

 

Em todo caso, se precisar realmente de um comportamento mais parecido ao do ActiveCell do VBA, então pode usar a função abaixo em seu código:

Function getActiveCell()
Dim as1(), lSheet&,lCol&,lRow$, sDum as String,bErr as Boolean
   oView = ThisComponent.CurrentController
   as1()  = Split(oView.ViewData, ";")
   lSheet = CLng(as1(1))
   sDum = as1(lSheet +3)
   as1() = Split(sDum, "/")
   on error goto errSlash
      lCol = CLng(as1(0))
      lRow = CLng(as1(1))
   on error goto 0
   getActiveCell = oView.Model.getSheets.getByIndex(lSheet).getcellByPosition(lCol,lRow)
exit Function
errSlash:
   if NOT(bErr) then
      bErr = True
      as1() = Split(sDum, "+")
      resume
   endif
End Function

 

Um exemplo de como usar a função acima:

Sub Main2
	oCel = getActiveCell

	vCel = oCel.Value
	sCel = oCel.String

	MsgBox "Valor: " & vCel & Chr(10) & "Texto: " & sCel
End Sub

 

 

[]s.

TianK

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×