Dikkat Google Api qrcode üretme apisini devre dışı bıraktığı için bu makaledeki örnekler çalışmayacaktı. Bunun için yeni bir api kullanarak deneyebilirsiniz. Örnek kullanım için https://www.zulfumehmet.com/excelde-api-kullanarak-qrcode-uretmek/ makalesini inceleyebilirsiniz.
Daha önce yayınladığım Excelde qrCode Üretme başlıklı makalem için bir çok yorum istete bulunulmuştur, bazıları resimlerin istedikleri boyuta getiremediğini, bazıları istediği kalınlıkta olmadığı gibi bir çok yorum gelmişti. Daha kolay ve istediğiniz boyuta getirebilmeniz için Google’nin qrCode için ürettiği apiyi kullanacağız. qr Code nedir diyenler varsa QR kod yada halk arasında kare kod olarak da bilinen, makinler, telefon kameraları tarafından okunabilen bir matris (iki boyutlu barkod) barkot sistemidir.
Buyurun başlayalım.
qrCode oluşturma
İlk önce Googleapi linkini inceleyelim.
https://chart.googleapis.com/chart?chs=400x400&chld=L|1&choe=utf-8&cht=qr&chl=
Bu api de;
- CHS değişkeni bize oluşturulacak qrkodun ebatlarını vermekte 400×400 px olarak ayarladım siz istediğiniz ebatta yapabilirsiniz. Kullanılış şekli chd=<width>x<height>
- CHLD değişkeni de qrkodaki veri kaybı için kullanılır, L|1 dediğimiz zaman %7 kayıp telafisi sağlar 1 değeri de kenarlık değerini belirtir değeri ne kadar yüksek tutarsanız kenar boşluklar o kadar fazla olacaktır.
- CHOE karakter değerini bildirir, türkçe karakter kullanırsanız qrcode okunmaz, bu yüzden utf-8 değişkenini kullanmak zorundayız.
- CHT zaten olmazsa olmazlardan qr kod oluğunu belirtiyoruz,
- CHL de qrkodumuzun içeriğini belirtiyoruz,
Makro Oluşturma
Yukarda da api hakkında gerekli bilgileri aldıktan sonra şimdi excel de bu apiye göre bir makro yazalım.
Çalışma sayfasına sağ tıklayın ve Kod Görüntüle seçeneğini seçiniz. Visual Basic açılacaktır.
Örnek kodumuz;
Function QRuret(qrcode_value As String) 'QRuret adında bir fonksiyon oluşturuyoruz ebat = ActiveSheet.Range("B1") kenar = ActiveSheet.Range("D1") 'ebat ve kanarılıkları hangi hücreden alacağına dair değişkeni bildiriyoruz Dim URL As String Dim My_Cell As Range Set My_Cell = Application.Caller URL = "https://chart.googleapis.com/chart?chs=" & ebat & "&chld=M|" & kenar & "&cht=qr&choe=utf-8&chl=" & qrcode_value 'google api yi çağırıyoruz On Error Resume Next ActiveSheet.Pictures("My_QR_CODE_" & My_Cell.Address(False, False)).Delete On Error GoTo 0 ActiveSheet.Pictures.Insert(URL).Select With Selection.ShapeRange(1) .Name = "My_QR_CODE_" & My_Cell.Address(False, False) .Left = My_Cell.Left + 5 .Top = My_Cell.Top + 5 End With GenerateQR = "" End Function
Bu kodu excelde Visual Basic ile yeni bir modules açarak kopyalıyoruz. Üst menüden Insert altında Modules tıklayarak ekleyebilirsiniz.
Kodumuzu yeni açılan modüle yapıştırıp kapatıyoruz. Artık Excelde Google api kullanrak qrCode üretmek için bir eksiğimiz kalmadı.
Gerisi kolay hücreye =QRuret(değerin olduğu hücre adı) şeklinde formül girmeniz yeterlidir. Sarı olarak belirttiği yerler ebat ve kenar boşluk değerlerini istediğiniz şekilde değiştirebilirsiniz, ebat belirtirken x ile en boy ayırmayı unutmayınız.
Dikkat etmeniz gereken bir husustan bahsedelim, eğer formülleri sürekli yenilerseniz aynı resim üstüne yeni resim qrcode üreten resim ekleyecektir. Bu yüzden önce verileri girip sonra formül girdikten sonra formülü girip qrcode resimlerini üretmeniz sizin faydanıza olacaktır. Diğer türlü aşırı resim yükleneceği için resim boyutu artacaktır.
Örnek projeyi aşağıdaki linkten indirebilirsiniz. Takıldığınız yerde yorumlardan yazarak vaktim dahilinde yardımcı olmaya çalışacağım. İyi çalışmalar.
Excelde kodsuz yapmak imkansızdı, elinize sağlık, çok işime yaradı.