Özellik ikonu

Application.Visible

İndirme izni yok

Genel Bakış

Application.Visible (Application.Visible property), Excel uygulamasının ekranda görünüp görünmediğini belirten okunur ve yazılır bir Boolean özelliğidir. False yapıldığında Excel penceresi ve açık tüm çalışma kitabı pencereleri gizlenir, True yapıldığında yeniden görünür. Makroların kullanıcıyı rahatsız etmeden arka planda çalışması ya da bir uygulama gibi yalnızca kendi arayüzünü göstermesi için kullanılır.

Söz dizimi​

Özellik, Application nesnesine bağlıdır ve hem okunabilir hem de yazılabilir:
VBA 5 satır
ifade.Visible

Application.Visible = True
Application.Visible = False
Durum = Application.Visible
  • ifade: Application nesnesini temsil eden ifade; VBA içinde doğrudan Application yazmanız yeterlidir. Zorunludur.
  • Değer: Boolean türündedir. True ise Excel görünürdür, False ise gizlidir. Değer atanmazsa mevcut durum okunur.

Dönüş değeri ve davranışı​

Özellik, Excel görünürken True, gizliyken False döndürür. Normal biçimde kullanıcının açtığı bir Excel oturumunda varsayılan değer True'dur. Excel, başka bir programdan otomasyonla (örneğin CreateObject ile) başlatıldığında ise varsayılan olarak gizli başlar ve Visible değeri False olur.
  • Gizlenen öğeler: Excel ana penceresi ve tüm çalışma kitabı pencereleri. Kitaplar açık kalır, kodunuz hücrelere ve nesnelere erişmeye devam eder.
  • Etkilenmeyenler: Çalışma sayfalarının kendi görünürlüğü (Worksheet.Visible) ve tek bir kitap penceresinin görünürlüğü (Window.Visible) ayrı özelliklerdir; bunlar Application.Visible ile karıştırılmamalıdır.
  • UserForm: Excel gizliyken bile UserForm'u Show ile görüntüleyebilirsiniz; bu yöntemle yalnızca formu olan uygulama görünümü elde edilir.

Ne zaman kullanılır​

Kısa süren işlemlerde ekran titremesini önlemek için genellikle Application.ScreenUpdating özelliği yeterlidir. Application.Visible şu durumlarda tercih edilir:
  • Uygulama görünümü: Çalışma kitabı açılırken Excel penceresini gizleyip yalnızca bir UserForm göstermek.
  • Arka plan işlemleri: Kullanıcının pencerelerin açılıp kapandığını görmesini istemediğiniz uzun hazırlık işlemleri.
  • Otomasyon: Başka bir uygulamadan başlatılan Excel örneğini görünür hale getirmek ya da gizli tutmak.
Gizlediğiniz Excel'i işlem sonunda mutlaka yeniden görünür yapın; hata yönetimi bölümünde de Application.Visible = True satırını çalıştırın.

1. Mevcut görünürlük durumunu okuma​

Makro, Excel'in görünür olup olmadığını ve iki ilgili uygulama ayarının değerini sayfaya yazar. Kodu standart bir modüle yapıştırın ve Durum sayfasında çalıştırın.
VBA 10 satır
Option Explicit

Sub DurumYaz()
    ' Uygulama görünürlüğünü ve ilgili ayarları sayfaya yazar
    With ThisWorkbook.Worksheets("Durum")
        .Range("B2").Value = Application.Visible
        .Range("B3").Value = Application.ScreenUpdating
        .Range("B4").Value = Application.DisplayAlerts
    End With
End Sub
Application.Visible
Formülünü incelemek için bir hücre seçin.
AB
1KontrolSonuç
2Application.VisibleYANLIŞ
3Application.ScreenUpdatingDOĞRU
4Application.DisplayAlertsYANLIŞ
DurumExcelDepo v1.0.0
B2 hücresine yazılan YANLIŞ değeri, makro çalışırken Excel'in görünürlük durumudur. B3 hücresinde ekran güncelleme ayarı (DOĞRU), B4 hücresinde ise uyarı iletilerinin ayarı (YANLIŞ) görünür. Bu üç özellik birbirinden bağımsızdır.

2. Excel'i gizleyip yeniden gösterme​

Makro Excel'i gizler, gizliyken özelliğin değerini okur, sonra yeniden görünür yapar. Hata olursa Excel'in gizli kalmaması için hata yönetimi eklenmiştir. Kodu standart bir modüle yapıştırın.
VBA 24 satır
Option Explicit

Sub GizleVeGoster()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Gizleme Testi")

    On Error GoTo Hata

    ' Başlangıç durumu
    ws.Range("B2").Value = Application.Visible

    ' Excel'i gizle ve gizliyken durumu oku
    Application.Visible = False
    ws.Range("B3").Value = Application.Visible

    ' Excel'i yeniden göster
    Application.Visible = True
    ws.Range("B4").Value = Application.Visible
    Exit Sub

Hata:
    ' Ne olursa olsun Excel görünür bırakılır
    Application.Visible = True
End Sub
Application.Visible
Formülünü incelemek için bir hücre seçin.
AB
1AdımVisible değeri
2BaşlangıçYANLIŞ
3GizliykenYANLIŞ
4SonundaDOĞRU
Gizleme TestiExcelDepo v1.0.0
Başlangıçta Visible değeri YANLIŞ, gizleme sonrasında YANLIŞ, yeniden gösterme sonrasında DOĞRU olarak okunur. Hata olsa bile Hata etiketi Excel'i görünür yapar, böylece pencere kaybolmuş gibi görünen bir oturum kalmaz.

3. Arka planda hedef karşılaştırması​

Aylık satışlar hedefle karşılaştırılır ve sonuç Durum sütununa yazılır. İşlem sırasında Excel gizlenir, bitince geri gösterilir. Kodu standart bir modüle yapıştırın.
VBA 25 satır
Option Explicit

Sub HedefKontrol()
    Dim ws As Worksheet
    Dim r As Long
    Set ws = ThisWorkbook.Worksheets("Aylık Satış")

    On Error GoTo Hata
    Application.Visible = False

    ' 2. satırdan 6. satıra kadar sonlu döngü
    For r = 2 To 6
        If ws.Cells(r, 2).Value >= ws.Cells(r, 3).Value Then
            ws.Cells(r, 4).Value = "Hedefte"
        Else
            ws.Cells(r, 4).Value = "Hedefin altında"
        End If
    Next r

    Application.Visible = True
    Exit Sub

Hata:
    Application.Visible = True
End Sub
Application.Visible
Formülünü incelemek için bir hücre seçin.
ABCD
1AySatışHedefDurum
2Ocak125.000120.000Hedefte
3Şubat98.000110.000Hedefin altında
4Mart143.000130.000Hedefte
5Nisan101.000115.000Hedefin altında
6Mayıs156.000150.000Hedefte
Aylık SatışExcelDepo v1.0.0
Makro bittiğinde Ocak için Hedefte, Şubat için Hedefin altında, Mart için Hedefte, Nisan için Hedefin altında ve Mayıs için Hedefte sonucu yazılır. Excel işlem boyunca gizli kalır, sonunda yeniden görünür yapılır. Bu kadar kısa bir işlemde gizleme şart değildir; örnek, kalıbı göstermek içindir.

Kullanırken dikkat edin​

  • Excel'i görünür bırakmayı unutmayın: Application.Visible = False yaptıktan sonra makro hata verip durursa Excel gizli kalabilir. Böyle bir oturumu yalnızca Görev Yöneticisi'nden (Task Manager) kapatabilirsiniz. Bu yüzden her zaman On Error GoTo ile bir hata yönetimi kurun ve hata etiketinde Application.Visible = True çalıştırın.
  • Tüm pencereler gizlenir: Özellik yalnızca makroyu içeren kitabı değil, açık olan tüm çalışma kitabı pencerelerini etkiler. Tek bir kitap penceresini gizlemek istiyorsanız Windows("Kitap1.xlsx").Visible özelliğini kullanın.
  • Çoğu zaman ScreenUpdating yeterlidir: Yalnızca ekran titremesini ve işlem süresini azaltmak istiyorsanız Application.ScreenUpdating = False çoğunlukla yeterli ve daha güvenlidir. Visible özelliği, arayüzün tamamen gizlenmesi gerektiğinde tercih edilmelidir.
  • Otomasyonla açılan Excel: Başka bir programdan oluşturulan Excel örneği varsayılan olarak gizlidir. Kullanıcının çalışma kitabını görmesi gerekiyorsa Visible özelliğini True yapmanız gerekir; iş bittiğinde de Quit ile uygulamayı kapatmayı unutmayın, aksi takdirde gizli bir Excel işlemi bellekte kalır.
  • İlgili konular:
    • Application.ScreenUpdating: Ekran yenilemesini kapatıp açar.
    • Application.DisplayAlerts: Uyarı iletilerini bastırır.
    • Window.Visible: Tek bir çalışma kitabı penceresini gizler ya da gösterir.
    • Worksheet.Visible: Çalışma sayfasını gizler, çok gizli yapar ya da gösterir.
    • Application.WindowState: Excel penceresini simge durumuna küçültür ya da büyütür.
    • Workbook_Open olayı: Kitap açılırken Excel'i gizleyip UserForm göstermek için kullanılır.
    • On Error GoTo: Hata durumunda Excel'i yeniden görünür yapmak için kullanılır.
Örneklerdeki makroların tamamı indirilebilir Excel dosyasındadır (.xlsm). Dosyayı açtıktan sonra makroları etkinleştirin, ardından Alt + F11 ile Visual Basic Düzenleyicisi'nde kodları inceleyebilir ve Alt + F8 ile çalıştırabilirsiniz.
Yazar
ExcelDepo
İndirme sayısı
0
Gösterim
11
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst