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 !!!
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
Saludos,
Carlos Sincuir
tecnisistemas@guate.net.gt