Generador masivo de códigos QR es una herramienta que te ayudará en gran medida con la elaboración de códigos QR masivos.
Descubre la revolución en la generación de códigos QR: ¡directamente desde Excel! “Generador masivo de códigos QR” convierte tu hoja de cálculo en una fábrica de conexiones instantáneas. Olvídate de procesos manuales y sumérgete en la eficiencia automatizada. Con solo unos clics, el mundo digital está a tu alcance.
Si quieres evitarte todo el trabajo a continuación te dejo el enlace de compra de la plantilla
Producto
Generador de códigos QR masivos a imágenes PNG
Dale a tu eficiencia un impulso tecnológico. Con “Excel QR Genie”, estás invirtiendo en precisión, rapidez y eficacia. Di adiós al tedioso proceso manual de generación de códigos QR y da la bienvenida a una era de profesionalismo y simplicidad. Compra “Excel QR Genie” hoy y transforma tu manera de interactuar con códigos QR.
Como generar la macro para el generador masivo de códigos QR
Como vimos en el video anterior la macro consiste en leer una lista de códigos, seriales o lo que tu quieras para convertirlos en códigos QR que posteriormente serán guardados en una carpeta elegida por el usuario.
los primero que hay que analizar es La macro GenerateAndSaveQRCodes esta función es el corazón de nuestro proceso, para ello vamos a mostrarla y posteriormente a desglosarla.
Inicio de la Subrutina:
Esta línea inicia la definición de una subrutina llamada GenerateAndSaveQRCodes
. Una subrutina es un bloque de código que realiza una tarea específica en VBA.
Declaración de Variables:
Aquí se declara una variable ws
de tipo Worksheet
y se establece que representa la hoja de cálculo activa en ese momento. Se asume que esta hoja contiene los datos que se van a usar para generar los códigos QR.
Se declara otra variable, rCell
, que se usará para referirse a cada celda individual dentro de un rango especificado de la hoja de cálculo.
Selección de Carpeta
Este bloque de código le permite al usuario seleccionar una carpeta donde se guardarán los códigos QR. Si no se selecciona ninguna carpeta, se muestra un mensaje de alerta y se termina la subrutina.
Bucle para Generar y Guardar Códigos QR
Este bucle For Each
recorre cada celda en la columna A, comenzando desde A1 hasta la última celda con datos. Por cada celda no vacía, se toman los primeros 6 caracteres del valor de la celda para crear un nombre de archivo para el código QR. Luego, se llama a otra subrutina o función, SaveQRCodeAsPNG
, que no está definida en este fragmento de código (la analizaremos a continuación) pero que presumiblemente genera una imagen de código QR y la guarda en la carpeta seleccionada como un archivo PNG con una resolución de 300×300 píxeles.
Antes de continuar, un par de recomendaciones sobre el tema
New Posts
¿Cómo crear Códigos QR sin caducidad?
Códigos QR en Excel – ¿Cómo crearlos?
Como generar las imágenes del generador masivo de códigos QR
Para este caso, vamos a referenciar la función SaveQRCodeAsPNG
La función SaveQRCodeAsPNG
es un procedimiento VBA diseñado para generar códigos QR y guardarlos como imágenes PNG en una ubicación especificada por el usuario. A continuación, destaco los elementos más relevantes del código:
Parámetros de la Subrutina:
sFileName
: Ruta y nombre del archivo donde se guardará el código QR.QR_Value
: Valor o texto que se convertirá en código QR.PictureSize
: Tamaño de la imagen del código QR en píxeles, con un valor predeterminado de 300×300.
Construcción de la URL del API de Google para generar el código QR:
- Utiliza la API de Google Chart para generar códigos QR, construyendo una URL con los parámetros necesarios como el tamaño (
chs
), el tipo de gráfico (cht=qr
) y los datos a codificar (chl
).
Codificación de URL:
- La función
UTF8_URL_Encode
(no mostrada aquí) es una función definida más adelante que se encarga de codificar adecuadamente el valor para ser utilizado en la URL, reemplazando espacios con el signo+
.
Solicitud HTTP:
- Crea un objeto
XMLHTTP
para hacer una solicitud HTTP GET a la URL del servicio de Google Chart. - Si la solicitud es exitosa (
oXMLHTTP.Status = 200
), entonces procede a leer la respuesta.
Guardar el archivo:
- Utiliza un objeto
ADODB.Stream
para escribir la respuesta binaria (la imagen del código QR) en un archivo con el nombre y ruta especificados (sFileName
). - El archivo se guarda sobrescribiendo cualquier archivo existente con el mismo nombre.
Manejo de errores:
- Si el estado HTTP no es 200, muestra un mensaje de error con el código de estado y texto descriptivo.
La función se define como Private
, lo que significa que sólo puede ser llamada desde dentro del módulo en el que está definida.
Este código es esencial para la operación de la macro, ya que permite transformar los datos en códigos QR y guardarlos como imágenes en el sistema de archivos del usuario, facilitando su uso en otros documentos, impresiones o aplicaciones web.
Codificar adecuadamente los QR
La función UTF8_URL_Encode
es responsable de convertir una cadena de texto (sStr
) en un formato que es seguro para las URLs, utilizando la codificación UTF-8. Los elementos relevantes de esta función se detallan a continuación:
Variables:
i
: Índice para iterar sobre cada carácter de la cadena.a
: Almacena el valor numérico del código de carácter Unicode.res
: Cadena resultante que acumula la versión codificada URL desStr
.code
: Cadena temporal que almacena la versión codificada de cada carácter individual.
Proceso de codificación:
- Iteración sobre cada carácter: El bucle
For
itera sobre cada carácter de la cadena de entrada. - Obtención del valor Unicode: Utiliza
AscW
para obtener el valor Unicode de cada carácter.AscW
devuelve el valor de carácter Unicode y puede manejar caracteres fuera del rango ASCII estándar (0-127). - Determinación de la necesidad de codificación:
- Si el valor de
a
es menor que 128, es decir, un carácter ASCII estándar, lo deja como está. - Si el valor está entre 128 y 2047, el carácter se encuentra dentro del rango de los caracteres latinos extendidos o de otros alfabetos como el griego o el cirílico, y requiere una codificación de dos bytes en UTF-8.
- Para valores mayores (caracteres con puntos de código Unicode más altos), se necesitan tres bytes para la codificación UTF-8.
- Si el valor de
- Codificación de carácter: Se realizan operaciones bit a bit y luego se llama a la función
URLEncodeByte
para convertir cada byte a su representación hexadecimal con un signo de porcentaje delante (%
), que es el formato esperado para la codificación de URL. - Concatenación de la cadena codificada:
res
acumula el resultado codificado de cada carácter.
Al final de la función, UTF8_URL_Encode
devuelve la cadena completa codificada en formato de URL usando UTF-8, lo que asegura que cualquier carácter, sin importar su origen lingüístico o simbólico, puede ser transmitido correctamente a través de URLs en aplicaciones web y APIs.
Algunos secretos para el generador de códigos QR
La función URLEncodeByte
juega un papel esencial dentro de la codificación URL de caracteres para ser utilizados en URLs, especialmente cuando se trata de caracteres que no son ASCII estándar. En el contexto de la macro de Excel que estás utilizando para generar códigos QR, esta función es un componente de la función UTF8_URL_Encode
. Aquí está cómo funciona y cómo se conecta con el resto del código:
Propósito de URLEncodeByte
:
- Esta función toma un valor entero
val
que representa un byte (un número entre 0 y 255) y lo convierte en su representación hexadecimal con un prefijo de “%”. Esto se debe a que en la codificación URL, los caracteres no ASCII o caracteres reservados deben ser reemplazados con un porcentaje seguido de dos dígitos hexadecimales que representan el valor del byte del carácter.
Cómo funciona:
- La función toma el valor entero
val
y utiliza la funciónHex
para convertir ese valor en una cadena que representa su equivalente hexadecimal. Hex(val)
devuelve una cadena hexadecimal sin ceros al principio, por lo que si el valor hexadecimal es menos de 16 (por ejemplo,E
para el número 14), se agregaría un cero al principio para asegurarse de que el resultado tenga dos dígitos.Right("0" & Hex(val), 2)
asegura que el resultado siempre tenga dos caracteres, lo cual es necesario para la codificación URL de caracteres individuales.- Finalmente, se agrega un “%” al principio de estos dos caracteres, que es la sintaxis requerida para la codificación URL.
Conexión con otras funciones:
URLEncodeByte
es llamada porUTF8_URL_Encode
, la cual es responsable de la codificación completa de una cadena de texto para que pueda ser usada de manera segura en URLs.- En el proceso de codificación UTF-8, que puede requerir uno, dos o tres bytes dependiendo del carácter original,
URLEncodeByte
es utilizada para convertir cada uno de esos bytes a su formato codificado por ciento, que luego es concatenado para formar la cadena final codificada en URL.
Uso práctico:
- Cuando la macro genera una URL para crear un código QR utilizando la API de Google Chart, cualquier carácter que no sea estándar o seguro para URL debe ser codificado de esta manera.
URLEncodeByte
se asegura de que cada byte se codifique correctamente para ser transmitido en la URL de solicitud a la API.