Bu dosya, bilgisayarda kurulu yazıcıların adlarını bir form içinde listeler ve listeden seçilen yazıcıyı Excel'in etkin yazıcısı olarak ayarlar. Etkin yazıcı adı çalışma sayfasında da tutulur.
Dosyanın içeriği
- Sheet1: Boş bir sayfadır; üzerinde formu açan btnShowForm düğmesi için kod bulunur. Sayfada hücre verisi ve formül yoktur.
- UserForm1: Yazıcı listesinin gösterildiği formdur. İçinde lbxPrinters liste kutusu ile btnListPrinters, btnMakeActive ve btnClose düğmeleri için kod vardır.
- modListPrinters: Yazıcı adlarını Windows kayıt defterinden okuyan GetPrinterFullNames işlevini içeren modüldür.
- Tanımlı ad ActivePrinter: Etkin yazıcı adının yazıldığı hücreye başvurur. Bu ad dosyada #REF! hatası verir; hedef hücre atanmadan sayfaya yazma işlemi çalışmaz.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.- Workbook_Open: Dosya açıldığında geçerli etkin yazıcının adını ActivePrinter adlı alana yazar.
- btnShowForm_Click: UserForm1 formunu açar.
- btnListPrinters_Click: GetPrinterFullNames işlevini çağırır, liste kutusunu temizleyip yazıcıları "yazıcı adı on bağlantı noktası" biçiminde ekler ve ilk kaydı seçer.
- btnMakeActive_Click: Listede seçili yazıcıyı Application.ActivePrinter olarak ayarlar, adını ActivePrinter alanına yazar ve bir mesaj kutusunda gösterir. Seçim yoksa işlem yapmaz.
- btnClose_Click: Formu kapatır.
- GetPrinterFullNames: Geçerli kullanıcıya ait Software\Microsoft\Windows NT\CurrentVersion\Devices kayıt defteri anahtarındaki değerleri advapi32 API işlevleriyle sayar ve yazıcı adı ile bağlantı noktasını dizi olarak döndürür. Kayıt defterini yalnızca okur; dosya silme veya dış bağlantı işlemi yoktur.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Sheet1 üzerindeki düğmeye tıklayarak formu açın.
- Form üzerindeki yazıcıları listeleme düğmesine tıklayın; kurulu yazıcılar liste kutusunda görünür.
- Bir yazıcı seçin ve etkin yapma düğmesine tıklayın; seçilen yazıcı adı mesaj kutusunda görüntülenir.
- İşiniz bitince kapat düğmesiyle formu kapatın.