Generare QR Code
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

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:
Function GenerateQRCode(Valore As String)
  Set Cella = Application.Caller
  NomeImmagine = "QRcode_" & Cella.Address(False, False)
  
  'cancella l'immagine precedente
  On Error Resume Next
    ActiveSheet.Pictures(NomeImmagine).Delete
  On Error GoTo 0
  
  ' link al servizio di generazione del QR code 75x75 pixel
  URL = "https://api.qrserver.com/v1/create-qr-code/?size=75x75&qzone=3&data=" + Valore
        
  'creazione dell'immagine e posizionamento sul foglio
  Set ImgQRcode = ActiveSheet.Pictures.Insert(URL)
  With ImgQRcode
   .Name = NomeImmagine
   .Left = Cella.Left + 3
   .Top = Cella.Top + 3
  End With
  GenerateQRCode = ""
End Function

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


L'esempio completo é scaricabile da questo link: Es403.xlsm (a questo link le info per attivare le macro se risultano bloccate)

Gli esempi contenuti nel sito sono per uso personale, non é consentito l'uso professionale, commerciale o la riproduzione senza autorizzazione.
Per dubbi o domande potete scriverci a domande@macrofacili.it, sulla nostra pagina FB MacroFacili.it o sul gruppo FB Excel, macro e formule.
 

data4idea srls - PIva 01881000937 - info@data4idea.it