Yukarı
Kodlattır

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:

  1. VBA-JSON GitHub repositorisini ziyaret edin.
  2. JsonConverter.bas dosyasını indirin.
  3. 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.

Yorumlar
Yorum Yaz