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

Papito... Cuanto me amas?

El día de hoy recibí un email qué quiero compartir con todos ustedes. Papito... Cuanto me amas? El día que mi Hija nació, en verdad no sentí gran alegría. Por que la decepción que sentía parecía, ser más grande que el gran acontecimiento que representa tener una hija. Yo quería un varón! A los dos días de haber nacido, fui a buscar a mis dos mujeres, una lucía pálida y agotada y la otra radiante y dormilona. En pocos meses me dejé cautivar por la sonrisita de mi Carmencita y por la infinita inocencia de su mirada fija y penetrante, fue entonces cuando empecé a amarla con locura. Su carita, su sonrisita y su mirada no se apartaban ni por un instante de mis pensamientos, todo se lo quería comprar, la miraba en cada niño o niña, hacía planes sobre planes, todo sería para mi Carmencita. Este relato era contado a menudo por Randolf, el padre de Carmencita y yo también sentía gran afecto por la niña que era la razón más grande para vivir de Randolf según decía el mismo. Una tarde esta...

El triste

"Hasta el mejor libro... tiene final." No recuerdo al autor. "Qué triste todos dicen que soy, que siempre estoy hablando de ti..."  Esa cita es parte de la letra de una canción llamada "El triste" interpretada por José José... el día de hoy describe una parte de mi.

Clipper, Harbour

  Aunque muchos consideran a Clipper y Harbour ( https://harbour.github.io/ ) lenguajes “viejos”, la realidad es que siguen siendo el motor de numerosos sistemas de gestión. ✅ ¿El reto? En un reciente proyecto el objetivo fue realizar la planificación de rutas de visita optimizadas a zonas geográficas. ✅ ¿La solución? Utilizar Python en Google Colab ( https://colab.google/ ) para extraer centroides geográficos desde archivos .kml y construir archivos .dbf 🔧 Metodología En Google Colab utilizar librería fastxml ( https://pypi.org/project/fastkml/ ) para procesar archivos .kml y extraer los centroides de cada polígono. Utilizar la librería dbf ( https://pypi.org/project/dbf/ ) pa...