Excel VBA ile Web API'lerinden Veri Çekme: JSON Verilerini Ayrıştırma ve Excel'e Aktarma
Günümüzde veriye erişim, web servisleri ve API'ler aracılığıyla giderek daha yaygın hale geliyor. Excel VBA kullanarak, çeşitli web API'lerinden veri çekebilir, bu verileri Excel'de işleyebilir ve analiz edebilirsiniz. Bu makalede, Excel VBA ile bir web API'sinden JSON formatında veri çekmeyi ve bu veriyi Excel'e aktarmayı adım adım göstereceğiz.
Web API'si ve JSON Nedir?
Web API (Application Programming Interface): Farklı yazılım uygulamalarının birbirleriyle iletişim kurmasını sağlayan bir arayüzdür. Web API'leri genellikle HTTP protokolü üzerinden çalışır ve veri alışverişi için JSON veya XML gibi formatları kullanır.
JSON (JavaScript Object Notation): İnsanlar tarafından kolayca okunabilen ve makineler tarafından kolayca ayrıştırılabilen, hafif bir veri değişim formatıdır. Web API'lerinden veri almak ve bu veriyi işlemek için sıkça kullanılır.
Adım Adım: Excel VBA ile Web API'sinden JSON Verisi Çekme ve Ayrıştırma
1. Gerekli Referansları Ekleme
VBA editöründe, Tools > References menüsüne gidin ve Microsoft XML, v6.0 veya daha güncel bir sürümünü seçin. Bu, XMLHTTP nesnesini kullanmamızı sağlayacaktır.
2. VBA Kodu Yazma
Aşağıdaki VBA kodunu bir modüle ekleyin. Bu kod, belirtilen URL'den JSON verisini çekecek, ayrıştıracak ve Excel'e yazdıracaktır.
Sub GetJSONData()
Dim xmlHttp As Object
Dim strURL As String
Dim strResponse As String
Dim js As Object, item As Object
Dim i As Long, j As Long
' Web API URL'si (Örnek: Rastgele kullanıcı bilgileri sağlayan bir API)
strURL = "https://randomuser.me/api/?results=5"
' XMLHTTP nesnesi oluşturma
Set xmlHttp = CreateObject("MSXML2.XMLHTTP60") 'Veya MSXML2.XMLHTTP
' İstek gönderme
xmlHttp.Open "GET", strURL, False
xmlHttp.send
' Yanıtı alma
strResponse = xmlHttp.responseText
' JSON ayrıştırma
Set js = JsonConverter.ParseJson(strResponse)
' Veriyi Excel'e yazdırma
i = 1 ' Başlangıç satırı
' Anahtar isimlerini (header) yazdırma
For Each item In js("results")(1)
j = 1
For Each key In item
Cells(i, j).Value = key
j = j + 1
Next key
Exit For ' Sadece bir kez header yazmak için
Next item
i = 2 ' Verilerin başlayacağı satır
' Her bir JSON nesnesi için
For Each item In js("results")
j = 1
For Each key In item
Cells(i, j).Value = item(key)
j = j + 1
Next key
i = i + 1
Next item
' Belleği temizleme
Set xmlHttp = Nothing
Set js = Nothing
Set item = Nothing
MsgBox "Veri başarıyla çekildi ve Excel'e yazıldı."
End Sub
3. JSON Ayrıştırma Kütüphanesini Ekleme
Bu kod, JsonConverter
adında bir nesne kullanıyor. Bu nesne, VBA'da JSON verisini ayrıştırmak için kullanılan bir kütüphanedir. Bu kütüphaneyi edinmek için aşağıdaki adımları izleyin:
- VBA-JSON GitHub repositorisini ziyaret edin.
JsonConverter.bas
dosyasını indirin.- VBA editöründe, File > Import File menüsünü seçin ve indirdiğiniz
JsonConverter.bas
dosyasını içeri aktarın.
4. Kodu Çalıştırma
VBA editöründe, yazdığınız kodu çalıştırın. Kod, belirtilen web API'sinden veriyi çekecek, ayrıştıracak ve Excel sayfasına yazdıracaktır.
Sonuç
Bu makalede, Excel VBA kullanarak web API'lerinden JSON formatında veri çekmeyi ve bu veriyi Excel'e aktarmayı öğrendik. Bu yöntem, dinamik veriye erişim ve veri analizi için güçlü bir araçtır. Farklı API'leri kullanarak, çeşitli kaynaklardan veri çekebilir ve Excel'de detaylı analizler yapabilirsiniz.