[RESUELTO]Acceder a diferentes documentos Calc

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Dante
Mensajes: 18
Registrado: Vie May 07, 2010 11:56 pm

[RESUELTO]Acceder a diferentes documentos Calc

Mensaje por Dante »

Buenas
Una consulta, hay alguna forma para acceder a los documentos abiertos??
He visto que se puede, enumerandolos, hay otra forma ?? porque si la macro me genera nuevos documentos, esa enumeración cambiaria

Espero que me ayuden con esto.
Gracias
Última edición por Dante el Mié May 12, 2010 4:31 am, editado 1 vez en total.
OpenOffice.org 3.2
Windows XP service pack 2
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Acceder a diferentes documentos Calc

Mensaje por mauricio »

Hola...

La siguiente macro te muestra los nombres de todas las hojas de calculo abiertas, estén o no guardadas, si creas nuevos documentos vuelve a llamarla y tendrás de nuevo todos los documentos...

Código: Seleccionar todo

Option Explicit

Sub Main
Dim oApp As Object
Dim oDocs As Object
Dim oDoc As Object
Dim sTmp As String

	oApp = StarDesktop
	oDocs = oApp.getComponents.createEnumeration
	Do While oDocs.hasMoreElements
		oDoc = oDocs.nextElement()
		If oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") Then
			sTmp = sTmp & oDoc.getTitle & Chr(10)	
		End If
	Loop

	MsgBox sTmp, 0, "Hojas de calculo abiertas"

End Sub
Por favor, si esto responde tu pregunta, edita el primer mensaje de este hilo y agrega al principio del título la etiqueta [RESUELTO], de esta forma conseguiremos un foro más ordenado.

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Dante
Mensajes: 18
Registrado: Vie May 07, 2010 11:56 pm

Re: Acceder a diferentes documentos Calc

Mensaje por Dante »

Gracias
Me has abierto nuevas posibilidades jejeje.
He agregado un par de lineas, para que me seleccione una pagina especifica y me la active.

Código: Seleccionar todo

Option Explicit

Sub Main
Dim oApp As Object
Dim oDocs As Object
Dim oDoc As Object
Dim sTmp As String
Dim vent as object

   oApp = StarDesktop
   oDocs = oApp.getComponents.createEnumeration
   Do While oDocs.hasMoreElements
      oDoc = oDocs.nextElement(3)
      If oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") Then
         sTmp = oDoc.getTitle 'sTmp & oDoc.getTitle & Chr(10)   
         if sTmp = "Documento.ods" then
           vent = oDoc.getCurrentController.getFrame.getComponentWindow()
  		  vent.setFocus() 
  		  end if
  		  'MsgBox sTmp, 0, "Hojas de calculo abiertas"
      End If
   Loop
End Sub
Se agradece, recien he comenzado a usar el OOoBasic, ironicamente cuando ya estaba dominando el VBA, cosas del trabajo, me ha servido bastante este foro y tu manual, asi que si surgen mas dudas espero me puedas dar una mano.
Gracias nuevamente
OpenOffice.org 3.2
Windows XP service pack 2
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: [RESUELTO]Acceder a diferentes documentos Calc

Mensaje por mauricio »

Hola:

Te cuento que yo use por 10 años VBA y me sirvió mucho para mi aprendizaje con OOo Basic, y claro, siempre que pueda, en este foro, procuro ayudar lo más posible...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder