Questa funzione consente di generare un QR code all'interno di un foglio di calcolo, utilizza un servizio web per farlo, necessita quindi di un collegamento ad internet attivo per poter funzionare.
In questo esempio abbiamo utilizzato il servizio
goQR.me che permette di avere il codice anche attraverso chiamata diretta ad una API con parametri, le specifiche del servizio sono
a questa pagina. Servizi analoghi sono forniti anche da altri siti, ad esempio da
Google.
Il risultato nel foglio è simile all'esempio qui a lato in cui si può vedere il codice generato per il link a questo esempio. |
Una versione semplificata della funzione è questa:
La versione qui sotto, leggermente più complessa e che trovate nel file scaricabile, adata la dimensione del QR code alla cella e lo centra
Function GenerateQRCode(
Valore As String)
Set Cella =
Application.Caller
NomeImmagine = "QRcode_" & Cella.
Address(False, False)
Margine = 2
'cancella l'immagine precedente
On Error Resume Next
ActiveSheet.Pictures(NomeImmagine).Delete
On Error GoTo 0
If (
Valore <> "")
Then
' celcolo delle dimensioni del QR code in base alla cella
Dimens = Cella.Height
If (Cella.Width < Dimens)
Then Dimens = Cella.Width
Dimens =
Int(Dimens * 96 / 72) - Margine * 2
If (Dimens < 10)
Then Dimens = 10
' link al servizio di generazione del QR code 75x75 pixel
URL = "https://api.qrserver.com/v1/create-qr-code/?" + _
"size=" & Dimens & "x" & Dimens & "&qzone=3&data=" +
Valore
'creazione dell'immagine
Set ImgQRcode =
ActiveSheet.Pictures.Insert(URL)
ImgQRcode.Name = NomeImmagine
'posizionamento al centro della cella
ImgQRcode.
Left = Cella.
Left + Margine + (Cella.Width - Margine * 2 - ImgQRcode.Width) / 2
ImgQRcode.Top = Cella.Top + Margine + (Cella.Height - Margine * 2 - ImgQRcode.Height) / 2
End If
GenerateQRCode = ""
End Function
Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.