Bu dosya, Internet Explorer'da açık olan bir web sayfasındaki form alanlarını Excel sayfasına listeler ve Excel'de girilen değerleri sayfadaki alanlara yazar. Tarayıcıyı VBA ile yönetme ve web sayfasından Excel'e veri aktarma konusunda çalışan bir örnek olarak kullanılır.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Sheet1: A1:H18 aralığında form alanlarının listelendiği tablo bulunur. Başlıklar Form_Name, Form_ID, Element_Name, Element_ID, Element_nodeName, Element_Type, Element_Value ve Element_SetValue sütunlarıdır.
- Örnek satırlarda bir giriş formuna ait _token (gizli alan), email ve password alanları ile bir gönderme düğmesi, INPUT ve BUTTON düğüm türleriyle listelenmiştir.
- Module1: Dört prosedürden oluşan VBA modülüdür.
Makrolar
- GetIEApp: Çalışan pencereleri Shell.Application üzerinden tarar ve iexplore.exe penceresi olanları numaralı bir liste olarak sunar. Çalışılacak sayfa listedeki numarayla seçilir; tek pencere açıksa o pencere kullanılır.
- GetFields: Seçilen sayfadaki tüm formları ve form elemanlarını etkin sayfaya yazar. Önce sayfa temizlenir, ardından her eleman için form adı, form kimliği, eleman adı, kimliği, düğüm adı, türü ve değeri listelenir. Gönderme (submit) ve düğme alanlarının Element_SetValue hücresi siyah, gizli (hidden) alanlarınki sarı renklendirilir. SELECT türündeki açılır listelerin seçenekleri, SetValue hücresine not olarak eklenir.
- SetFields: Element_SetValue sütununda değer bulunan satırları okur ve bu değerleri açık sayfadaki ilgili alanlara yazar. Radio ve checkbox türleri işaretlenir, diğer alanlara metin değeri atanır. Hata veren satırlar işlem durdurulmadan atlanır.
- ClearActiveSheet: Etkin sayfayı temizler; GetFields çalışmadan önce bu prosedürü çağırır.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Internet Explorer'da incelemek istediğiniz sayfayı açın.
- Alt+F8 ile GetFields makrosunu çalıştırın; birden fazla pencere açıksa çıkan listeden sayfanın numarasını girin.
- Form alanları Sheet1'e listelenir.
- Alanlara değer göndermek için Element_SetValue sütununa değerleri yazın ve SetFields makrosunu çalıştırın.