Traducir el blog

Como pintar con Excel

Posted on septiembre 24, 2013 by Excel Pedro Wave

Obras de arte virtuales

No hace falta usar programas especializados para crear arte digital, con programas como Paint o Excel se puede ser un artista, como veremos en este artículo.

La primera vez que se uso un ordenador para pintar fue antes de 1959 en un centro militar con un ordenador que costó 238 millones de dólares al presupuesto de la Guerra Fría, dentro del proyecto SAGE: Semi-Automatic Ground Environment, creado por el MIT e IBM.

Un artista militar anónimo (no es de extrañar) logró pintar en un display gráfico de 19", programándolo con tarjetas perforadas, un dibujo vectorial de una chica pin-up ligerica de ropa, copiada de un calendario de 1956.  La historia completa puedes leerla aquí.

The Never-Before-Told Story of the World's First Computer Art (It's a Sexy Pin-Up)




En esta imagen generada con mi programa para pintar en Excel, que puedes descargar más abajo, la imagen original está en blanco y negro, como puedes suponer, y la de carne y hueso era la del calendario del que se copió.

Hoy en día cualquiera que disponga de programas vectoriales puede crear arte en un ordenador o en la nube o incluso crear objetos y personajes artísticos en escenarios creados en 3D dentro del mundo virtual Second Life, por ejemplo.

Lo que ya es más difícil es encontrar artistas que usen programas como Paint o Excel para realizar sus obras de arte, pero haberlos, haylos.  Por ejemplo los que se pueden ver en esta página.  Creando obras de arte con Excel y Paint

Un jubilado japonés ha realizado unos dibujos artísticos con el uso de las autoformas incluidas en Excel que se pueden descargar en estos enlaces:
http://www.moug.net/img/campaign/2006/a1.zip
http://www.moug.net/img/campaign/2006/a2.zip

(Se pueden bajar 8 cuadros artísticos totalmente pintados en Excel, con sólo cambiar el nombre del fichero a descargar: a1.zip a a8.zip)

Como pintar con Excel

La ídea inicial es usar cada celda de Excel como un pixel de la imagen y cambiar su color para crear un dibujo.  El problema es que hay que desplazarse y seleccionar cada una de las celdas a las que se quiera cambiar su color de relleno como explican los de Microsoft para Resaltar celdas aquí.

Otra forma es dar valores a las celdas que representen un color y crear reglas de formato condicional para cambiar su color dependiendo de sus valores, lo que es muy laborioso y no deja mucha libertad artística.

La solución llegó cuando leí este interesante y excelente artículo en el blog Option Explicit VBA:

Efecto cursor Rollover o Mouseover

Cuando el ratón se desplaza por encima de las celdas no se produce ningún efecto, hay que seleccionar una celda para poder cambiar sus propiedades.

Esto ha cambiado desde que Jordan Goldmeier publicó el 9 de abril de 2011 un artículo en su blog original que permitía cambiar propiedades de celdas pasando el cursor por encima de ellas.

OPTION EXPLICIT VBA Blog - Efecto Rollover

El tuvo la idea participando en el blog de nuestro admirado Chandoo, gurú de Excel, que publicó dos artículos con los que se puede aprender esta técnica:
Chandoo.org - Beam Me Up Scotty – Excel Hyperlinks
Chandoo.org - Interactive Dashboard in Excel using Hyperlinks

Programa para pintar en Excel

Basado en el efecto Rollover o Mouseover he diseñado y desarrollado un Pintor en Excel, como un bloc de dibujo digital inspirado en el programa Paint de Windows pero un poco más limitado, para crear imágenes pixeladas en un mapa de bits, conocido como formato bitmap, rasterizado o calcado, en el que se almacena el color de cada celda en Excel, siendo un bit o pixel representado por una celda en una determinada fila y columna de la hoja de cálculo.

Este programa contiene dos hojas, Pintor para dibujar e Idiomas con las traducciones de los textos al inglés y al español, como es habitual en las plantillas de este blog.

El zoom de la hoja Pintor está preseleccionado al 200% para que sea más fácil editar las imágenes, siendo necesario bajarlo al 50% para obtener el tamaño correcto de los pixeles en los bitmaps generados con este programa.

En la zona de la imagen, nombrada Lienzo, el ancho de las columnas es de 0,17 y el alto de las filas es de 2, con lo que las celdas son cuadradas de 0,05 cms. de lado.

Se han definido varias secciones para manejar este programa de dibujo y pintura:
  • Zoom - Para modificar el zoom de la imagen con 3 botones: Acercar, Alejar y el zoom por defecto del 200%.  En todo momento se muestra el valor del zoom y se puede editar el nombre de la imagen que será el nombre del fichero cuando se guarde la imagen.
  • Mostrar u ocultar - Se pueden mostrar u ocultar las reglas vertical y horizontal, las fórmulas de las celdas, la cuadrícula de la imagen, los títulos de las filas y columnas de la hoja, la barra de estado y las barras de desplazamiento horizontal y vertical y las hojas del libro.
  • Pantalla - Para conmutar a pantalla completa.
  • Portapapeles - Permite copiar y pegar rangos seleccionados de la imagen y guardar la imagen o la selección en un fichero en 4 formatos de imagen: BMP, GIF, JPG o PNG.
  • Imagen - Para seleccionar o borrar todo.  En un recuadro se muestran las coordenadas de la celda por la que pasa el cursor por encima y, si se selecciona ese recuadro (apareciendo "Rellenar con color sólido"), hará que la forma Pincel sea continua y la forma Bloques rellene los rectángulos de color.
  • Formas - Para elegir la forma con la que dibujar entre tres posibles. Pincel que dibuja una línea a mano alzada (continua o discontinua); Líneas que dibuja líneas continuas de un punto a otro; Bloques que dibuja rectángulos, rellenos o no dependiendo de que se esté marcando como "Rellenar con color sólido".
  • Colores - Para cambiar el color de los pinceles intercambiando dos colores: Color 1, activado con el botón izquierdo del ratón; Color 2, activado con el botón derecho del ratón.  Una vez seleccionado uno de los dos colores, se puede cambiar su color con el mosaico del tipo arco iris de su derecha o con el botón para "Editar colores" que abre la ventana para elegir el color de fondo de relleno del formato de celdas.  No se pueden elegir efectos de relleno ni estilos ni colores de trama.
  • Botón para cambiar de idioma - Está pintado en fondo amarillo y se puede cambiar entre el inglés y el español los textos de este pintor.


Función Rollover o Mouseover

Cuando se mueve el cursor por el lienzo de la imagen y aparece en la sección Imagen el texto dinámico:

Fila=136 / Columna=111


con la fila y la columna por la que pasa por encima el ratón, es cuando se produce el denominado efecto Rollover o Mouseover, porque se está ejecutando la función que lo provoca debido a que la celda por la que se pasa contiene una llamada dentro de una función HIPERVINCULO a la función MouseOver:



En esta función se controla que solo se llame una vez por cada paso por encima de una celda y que se ha seleccionado la forma Pincel para dibujar a mano alzada.  Si el trazo es continuo se llama a la rutina PintarRayas, que rellena las celdas para las que no se ha activado el efecto mouseover, y si el trazo es discontinuo se cambia el color de una única celda con la rutina PintarCelda.

Cuando no está activado el relleno de las celdas siempre se informa del punto o celda por la que está pasando el ratón por encima.

Descarga del Pintor

Descarga la plantilla totalmente gratuita, con las macros visibles y las hojas protegidas sin contraseña, de este Pintor de Imágenes desde este enlace y habilita las macros para usarlo:
(Descarga desde Google Drive o Microsoft OneDrive)

Pintor_PW10.zip 


Descarga el fichero comprimido y ejecuta el fichero Pintor_PW10.xlsm para ver en movimiento el efecto Mouseover y la paleta completa de colores. El fichero Pintor_PW10.xls ejecutado en modo de compatibilidad en Excel 2007 y 2010 permite ver ese efecto pero no guarda la paleta completa de colores. Está probado en las versiones de Excel 2007 y 2010, por lo que no puedo asegurar que funcione en Excel 2003 ni en Excel 2013.

1 Response to "Como pintar con Excel"

.
gravatar
Unknown Says....

Es posible hacer lo mismo para un formulario de excel?
Como seria?
Gracias

Leave A Reply

Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.

Mi lista de blogs