Ir al contenido principal

Excel y la clase TOleAuto

El día de hoy se publico en el foro de noticias de fivewin un mensaje que me llamó la atención.

Hola
Estoy utilizando TExcelScript y me veo en la necesidad de insertar saltos de
página en la hoja de Excel.

En la documentación de VBA me viene que hay que hacer:
ActiveSheet.HPageBreaks.Add Before:=ActiveCell
¿Cómo se traduce esto a cristiano?
Otra cosa.
A veces veo en los métodos que se utiliza :
::oSheet:PageSetup:Set( "printarea" , cRange ) ó ::oCell := ::oExcel:Get( "ActiveCell")
¿Cúal es la convención de llamadas para usar Set o simplemente hacer " :=
cRange"
Paco García

Ok .... vamos por partes...

ActiveSheet.HPageBreaks.Add Before:=ActiveCell

ActiveSheet es una clase de Excel y nosotros la podemos manejar desde la clase TExcelScript con la Data oSheet que guarda el Objeto de la hoja de trabajo activa.

oExcel:oSheet

ActiveSheet.HPageBreaks.Add Before:=ActiveCell

HPageBreaks es una propiedad de la clase ActiveSheet ( oExcel:oSheet ) , en donde nosotros la podemos manejar con los métodos Set() , Get() o Invoke() , siguiendo esta lógica nuestro código quedaría así.

oExcel:oSheet:HPageBreaks

La propiedad HPageBreaks tiene propiedades y funciones , aquí es donde es muy importante saber que método de la clase TOleAuto debemos de aplicar.

Y realmente es muy sencillo , la regla es la siguiente , todas las propiedades de Excel las vamos a acceder con Set() y Get() , para las funciones usamos el método Invoke()

Conociendo esto solamente nos resta revisar la sintaxis de la propiedad HPageBreaks y saber si "Add" es una función o un método.

La sintaxis de HPageBreaks nos muestra que "Add" es una función y que recibe un parámetro tipo Objeto que indica la celda activa donde se va insertar nuestro salto de página.

Ahora nuestro código queda de la siguiente forma :

oExcel:oSheet:HPageBreaks:Invoke("Add")

únicamente nos hace falta el parámetro tipo Objeto que se envía a la función Add() de la propiedad HPageBreaks.

Ese valor lo podemos obtener de dos formas :

1.- Obteniendo la celda activa

oCell := oExcel:GetCell()

2.- Especificando una dirección .

oCell := oExcel:SetPos( "A5")

El código resultante de todo esto sería.

oExcel:oSheet:HPageBreaks:Invoke("Add", oCell )

¡¡¡ y ……… listo el pollo !!!

Comentarios

Anónimo dijo…
Muy buena explicación Vikthor, con esto ya se puede seguir agregándoles mas opciones a la TExcelScript.

Saludos,

Carlos Sincuir
tecnisistemas@guate.net.gt
Anónimo dijo…
gracias voy a probarlo y os cuento

Entradas más populares de este blog

Hace 20 años

Era un día normal , como de costumbre había llegado temprano a la Escuela Secundaria, en ese entonces cursaba el primer año, aún no sonaba la campana que indicaba el inicio de clases y yo estaba sentado en una banca de concreto esperando mi turno de jugar frontón con mis demás compañeros. A lo lejos había visto a Fabiola , una compañera de mi grupo que ese día, justo ese día era su cumpleaños. Han pasado 20 años y no recuerdo a todos mis compañeros, en mi memoria aparecen mis dos mejores amigos, Luis y "Lucas" , fuimos inseparables hasta el 3er año, tampoco puedo olvidar a Fabiola, aquella linda muchachita de Tabasco que fue mi primer novia de esa epoca escolar. Y tampoco olvidaré ese día, el día que México fue sacudido por un terremoto de 8.1 grados en la escala de Ritcher . Hace 20 años................

Con nuevas energías

Hace unos días dio comienzo la temporada de primavera aquí en México, y la gente tiene por costumbre ir a alguna pirámide a cargarse de energía con los rayos del sol. Mi casa queda a 20 minutos de las pirámides de Teotihuacan y en los casi 10 años que tengo viviendo cerca de ella, en ninguna ocasión he estado presente para recargar energías Este año la energía llego del viejo continente, hace pocos días recibí una invitación para formar parte de un proyecto que tiene todas las características que todo programador alguna vez ha soñado. La invitación la recibí de un buen amigo que conocí gracias a esta hermosa profesión, fue hace 4 años cuando nos conocimos y realizamos un trabajo juntos para una empresa de la industria del calzado. Desde entonces hemos mantenido una gran amistad y siempre que se puede tratamos de convivir con nuestras familias. Ahora mi amigo se ha convertido en todo un “gurú” de la programación, situación que a mi en lo personal me llena de emoción. Después de 4 largo

La tregua

Había dejado de atender este espacio por casi dos meses, y ha llegado el momento de retomar la redacción de este Blog. Este fin de semana leí la novela de Mario Benedetti, "La tregua". "La Tregua" es el diario de Martín Santomé un hombre cincuentón, viudo, próximo a jubilarse. En su diario describe sus confesiones, los problemas con sus hijos, su pasado, su falta de decisión, piensa que hasta ahora su vida no ha sido nada, y se imagina cómo vivira en el ocio. Pero en su camino se cruza Laura Avellaneda una mujer, que podría ser su hija, y se enamora de ella. Es así como Martín Santomé va encontrándose a sí mismo a través de ella, este amor lo lleva a tener una plática con Dios, lo hace analizar su vida, medita sobre el convivir y la amistad, la mediocridad y los verdaderos motivos para vivir. También medita sobre la decisión de un posible matrimonio, la diferencia de edades, ( Laura tiene 24 años y el 50 ), la opinión de sus hijos, el miedo al ridículo, sus amigos