Bu dosya, bulunulan ağın IP adresine göre enlem (Latitude) ve boylam (Longitude) bilgisini Excel hücrelerine getiren, GetRealLocationArray adlı bir Kullanıcı Tanımlı Fonksiyon (KTF) içerir. Konum, cihazın GPS verisinden değil, internet bağlantısının IP adresinden elde edilir; bu nedenle sonuç yaklaşık bir konumu gösterir.
Fonksiyon 2x2'lik bir dizi döndürür: ilk satır başlıkları, ikinci satır enlem ve boylam değerlerini içerir. Sonuçlar B2:C3 aralığına yayılır.
Dosyanın içeriği
- Sayfa1: B2:C3 aralığında iki satırlı bir sonuç tablosu bulunur. İlk satırda "Latitude (Enlem)" ve "Longitude (Boylam)" başlıkları, ikinci satırda ise değerler yer alır (örnek olarak 41.0082376 enlem değeri).
- Module1: GetRealLocationArray fonksiyonunu barındırır.
- JsonConverter: JSON verisini ayrıştırmak ve üretmek için hazır bir VBA modülüdür. Konum fonksiyonu bu modülü kullanmaz; metni kendi içinde ayırır.
Kullanılan formüller
B2 hücresinde fonksiyon dizi olarak çağrılır:=GetRealLocationArray()
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.- GetRealLocationArray: WScript.Shell ile bir PowerShell komutu çalıştırır. Komut, Invoke-RestMethod ile bir IP konum servisine dış bağlantı kurar ve yanıttan latitude ile longitude alanlarını seçer. Fonksiyon komutun bitmesini bekler, çıktıdaki enlem ve boylam değerlerini ayıklar, virgülleri noktaya çevirir ve diziyi hücrelere döndürür. Çıktı boş gelirse hücrede "Konum alınamadı!" mesajı görünür.
- JsonConverter: ParseJson ve ConvertToJson gibi yordamlarla JSON ayrıştırma, ayrıca UTC ve ISO tarih dönüşümü sağlayan genel amaçlı modüldür.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Bilgisayarın internete bağlı olduğundan emin olun.
- Sayfa1'de B2 hücresindeki formülün hesaplanmasını bekleyin; enlem ve boylam B3:C3 hücrelerine yazılır.
- Değerleri yenilemek için B2 hücresini seçip F2 ve Enter tuşlarına basın ya da Ctrl+Alt+F9 ile yeniden hesaplatın.
- Fonksiyonu başka bir çalışma kitabında kullanmak için Module1 kodunu o dosyaya kopyalayın.