Macro Imprimir sólo lo seleccionado para Calc

Seleccionar un rango de celdas e imprimirlas no es sencillo con Calc; necesitamos definir previamente un rango de impresión.

Esta sencilla macro que describimos en este post realizará todo ese trabajo por nosotros. Definirá el nuevo rango de impresión eliminando cualquier otro anteriormente definido, y activará la vista preliminar. A partir de aquí, nos cede el control para que realicemos los ajustes que consideremos oportunos.

Por supuesto que se podrían automatizar más opciones, pero consideramos que de esta forma es lo suficientemente útil, sencilla y plástica para adaptarse a cualquier necesidad.

Guarda la macro en el área Mis Macros / Module1 e inserta un botón en una barra de herramientas que llame a esta macro; así la tendremos disponible para todas las hojas de cálculo con las que trabajemos.

Os invitamos a que nos enviéis vuestras propuestas.

sub Vista_Preliminar_Solo_Seleccionado()
rem ----------------------------------------------------------------------
rem Definir variables
dim document   as object
dim dispatcher as object
dim RangoSeleccionado as New com.sun.star.table.CellRangeAddress
dim args3(0) as new com.sun.star.beans.PropertyValue
rem ----------------------------------------------------------------------
rem Acceder al documento y rango seleccionado
RangoSeleccionado = ThisComponent.CurrentController.getSelection().getRangeAddress
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
rem Definir el rango de impresión
args3(0).Name = "ToPoint"
args3(0).Value = RangoSeleccionado
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
dispatcher.executeDispatch(document, ".uno:DefinePrintArea", "", 0, Array())
rem ----------------------------------------------------------------------
rem Activar la vista preliminar
dispatcher.executeDispatch(document, ".uno:PrintPreview", "", 0, Array())
end sub