Excel VBA Anında Pencere - Kullanmanın 5 Harika Yolu!

'Anında pencere', Excel'de VBA ile çalışırken kullanmak için yararlı bir araç olabilir.

Hemen penceresi, aşağıdakiler gibi şeyleri hızlı bir şekilde yapmanızı sağlar:

  • Excel dosyaları hakkında bilgi alın (çalışma kitabındaki sayfa sayısı veya çalışma kitabının adı gibi)
  • Debug.Print bilgilerini hızla alın
  • Saniyeler içinde bir kod satırı çalıştırın
  • Bir makro çalıştırın (veya bir işlevi çağırın)
  • Değişkenler hakkında bilgi alın (veya değeri veya değişkenleri ayarlayın)

Excel'de VBA ile çalışmak için hemen pencereyi kullanmanız gerekmese de, onu nasıl iyi kullanacağınızı bilmek sizi çok daha verimli hale getirebilir.

Bu eğitimde, anında pencere ve onu en iyi nasıl kullanacağınız hakkında bilmeniz gereken her şeyi ele alacağım (örneklerle açıklanmıştır).

Başlayalım!

Excel VBA'da Hemen Pencere nedir?

Immediate Window, bazı hızlı şeyler yapmak için kullanabileceğiniz VB Editörünün bir parçasıdır.

Size bir örnek vermek gerekirse, bazı gizli çalışma sayfalarına sahip bir çalışma kitabınız varsa ve toplam çalışma sayfalarının sayısını hızlı bir şekilde bilmek istiyorsanız, bunu Hemen penceresiyle birkaç saniye içinde yapabilirsiniz.

Immediate Window çok daha fazlasını yapar (bu eğitimde daha sonra göreceğiniz gibi). Ancak başlangıç ​​olarak, hemen pencereyi Excel VBA'da işinizi hızlandırmanıza yardımcı olacak bir araç olarak düşünelim.

Hemen Pencereyi Nerede Bulabilirim?

Excel VB Düzenleyicisini açtığınızda, hemen pencereyi VB Düzenleyicinin bir parçası olarak görebilirsiniz. Ve zaten görmüyorsanız, kolayca görünmesini sağlayabilirsiniz.

Aşağıda VB Düzenleyiciyi açma ve Anında Pencereyi görünür hale getirme adımları verilmiştir:

  1. Excel şeridindeki "Geliştirici" sekmesine tıklayın (geliştirici sekmesini görmüyorsanız, nasıl edineceğinizi öğrenmek için buraya tıklayın)
  2. Kod Grubunda, 'Visual Basic'e tıklayın. Bu, VB Düzenleyiciyi açacaktır
  3. VB Editöründe, menüdeki 'Görüntüle' seçeneğine tıklayın
  4. Hemen Pencereye tıklayın. Bu, hemen pencerenin VB Editöründe görünmesini sağlayacaktır.

Kısayollar konusunda daha rahatsanız, yukarıdaki adımları hızlandırmak için aşağıda bazılarını bulabilirsiniz:

  • VB Editörünü açmak için - ALT + F11 (şeritte Geliştirici sekmeniz olmasa bile bu çalışır)
  • Hemen pencereyi göstermek için - Kontrol + G (VB Editörü açıkken bunu kullanın)

Excel VBA'da Anında Pencere Kullanma Örnekleri

Artık hemen pencereyi nerede bulacağınızı bildiğinize göre, Excel VBA ile çalışırken onu kullanabileceğiniz bazı harika örnekler görelim.

Dosyalar/Çalışma Kitapları Hakkında Bilgi Alın

'Anında Pencere', çalışma kitapları hakkında soru sorabileceğiniz ve size hemen cevap verecek bir yerdir.

Örneğin, bir çalışma kitabınız olduğunu ve çalışma kitabında kaç sayfa olduğunu öğrenmek istediğinizi varsayalım, hemen açılan pencereye aşağıdaki kodu yazıp enter tuşuna basabilirsiniz.

?ActiveWorkbook.Sheets.Count

Bu size aktif çalışma kitabındaki toplam sayfa sayısını anında söyleyecektir.

Bu, çok sayıda sayfası olan bir çalışma kitabınız olduğunda ve onu manuel olarak sayamadığınız (veya istemediğiniz) veya gizli sayfaların olduğu bir çalışma kitabınız olduğunda ve toplamını bilmek istediğinizde yararlı olabilir. saymak.

NS ? (soru işareti) sorgudan önce kullanılmalıdır, böylece VBA bir soru sorduğunuzu anlayabilir. Bu soru işaretini kullanmazsanız, hemen pencere size ayrıntı/cevap vermeyecektir.

Şimdi, bu, Immediate Window'un size biraz bilgi verdiği ve zaman kazandırdığı gerçekten basit bir örnek.

Aşağıda birkaç örnek daha var:

Etkin çalışma kitabının adını almak için

?ActiveWorkbook.Name

Etkin sayfanın adını almak için

?Activesheet.Name

Çalışma Kitabının yolunu almak için (kaydedildiği adres)

?ActiveWorkbook.Path

Bu nedenle, bir nesne hakkında bir şeye ihtiyacınız varsa (Çalışma kitabı, sayfalar, çizelgeler, şekiller, aralık vb.), bu bilgiyi hızlı bir şekilde almak için hemen pencereyi kullanabilirsiniz.

Debug.Print Bilgilerini Alın

Excel VBA'da, bir değişkenin değerini anında pencerede göstermek için Debug.Print kullanılır.

Örneğin, aşağıdaki kod, hemen pencerede "Günaydın" mesajını anında gösterecektir.

Sub DisplayMessage() Debug.Print "Günaydın" End Sub

Hemen pencerede bazı verileri hızlı bir şekilde almak veya kodunuzda hata ayıklamak için kodunuzdaki Debug.Print satırını kullanabilirsiniz.

Örneğin, bir çalışma kitabındaki tüm sayfaların adlarını almak istiyorsanız aşağıdaki kodu kullanabilirsiniz:

ActiveWorkbook.Sheets Debug.Print sh.Name'deki Her sh için Sub GetSheetNames() Sonraki sh End Sub

Yukarıdaki kod, etkin çalışma kitabındaki her sayfadan geçer ve hemen pencerede adı verir.

Debug.Print, kodunuzda hata ayıklamak için kullanışlı bir tekniktir. Örneğin, bir döngü çalıştırıyorsanız ve döngünün kaç kez çalıştırıldığını görmek istiyorsanız, her döngü çalıştığında artan sayıları gösteren bir Debug.Print satırı yerleştirmeniz yeterlidir.

Eğer kullanıyorsanız Hata Ayıklama.Yazdır kodda hata ayıklamak için işiniz bittiğinde kodu kaldırmayı unutmayın.

Bir makro (veya bir işlev) çalıştırın

Excel'de makro çalıştırmanın çeşitli yolları olsa da, hızlı yollardan biri hemen pencereyi kullanmaktır.

Bir makroyu çalıştırmak için tek yapmanız gereken hemen pencereye makronun adını girmek ve enter tuşuna basmaktır (bunun çalışması için imleç makro adının sonunda olmalıdır).

Aşağıda, hemen pencereye makronun adını girer girmez kodu çalıştırdığı bir örnek verilmiştir (kod, hemen pencerede "Günaydın" mesajını görüntüler).

Bu, bir kodunuz olduğunda ve beklendiği gibi çalışıp çalışmadığını kontrol etmek istediğinizde faydalı olabilir. Kodda bir veya daha fazla Debug.Print satırı olabilir ve hemen pencereden makroyu çalıştırabilirsiniz.

Anında penceredeki değerleri size anında gösterecek ve her şeyin yolunda olup olmadığını kontrol edebilirsiniz.

Özel işlevleri yürütmek için de hemen pencereyi kullanabilirsiniz.

Örneğin aşağıdaki örnekte bir sayının çift mi yoksa tek mi olduğunu kontrol etmek için bir fonksiyon oluşturulmuştur. Bu işlevi, aldığı argümanla işlevi yazarak hemen pencereden çalıştırabilirsiniz. Bu durumda, fonksiyonda saklanan bir değeri döndürmesini istediğiniz için soru işaretini kullanmanız gerekir.

Bir Kod Satırı (veya Birden Çok Kod Satırı) Yürütün

Anında pencere ile, bir kod satırı (veya birden çok kod satırı) da çalıştırabilirsiniz.

Bunun en iyi yanı, hemen pencereyi açıp kodu çalıştırıp kapatabilmenizdir (bir modül penceresine koymanız ve ardından çalıştırmanız gereken bir makronun aksine).

Bunun yararlı olabileceği bir kullanım durumu, çalışma kitabındaki tüm sayfaları hızlı bir şekilde göstermek istediğiniz zamandır.

Çalışma kitabındaki tüm sayfaları göstermek için hemen pencereye yerleştirebileceğiniz kod aşağıdadır. İmleci satırın sonuna getirin ve enter tuşuna basar basmaz tüm sayfaları gösterecek.

Thisworkbook.Sheets içindeki her Sayfa için: Sheet.Visible=True: Sonraki Sayfa

Bu, tek bir kod satırı gibi görünse de, üç bölümden oluştuğunu unutmayın.

Her bölüm bir satır sonu gibi davranan bir : (iki nokta üst üste) ile ayrılır. Bu, her bir sayfada gezinmek ve görünür özelliği DOĞRU olarak değiştirmek için (herhangi bir gizli sayfayı göstermez) hemen penceredeki For Next döngüsünü kullanmanıza olanak tanır.

Değişken Değerleri Al

Karmaşık VBA kodları oluşturmaya başladığınızda, işi yapmak için değişkenlere güvenmeniz gerekir.

Değişken, bir değeri tutan bir şeydir ve bu değer, kod çalışırken değişebilir. Bu değişken değerlerini kontrol etmek için hemen bir pencere kullanabilirsiniz.

Aşağıda, ilk 10 pozitif tamsayının toplamını veren ve sonucu hemen pencerede gösteren basit bir kod verilmiştir.

Sub AddFirstTenNumbers() Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 ila 10 k = k + i Next i Debug.Print i, k End Sub

Bu kodu çalıştırır çalıştırmaz, hemen pencerede aşağıdaki sonucu göreceksiniz. Bu anında kodun iyi çalıştığını ve beklenen sonucu verdiğini söyler.

Beklenen sonuçları vermemesi durumunda, kodun hatalarını ayıklayabilirsiniz.

Birçok kişi kodda hata ayıklarken bir mesaj kutusu kullanır. İyi çalışıyor olsa da, beni Excel çalışma kitabına götürdüğü ve bir mesaj kutusu gösterdiği için biraz müdahaleci buluyorum. Öte yandan, hata ayıklamak için hemen pencereyi kullanmak çok daha pürüzsüz ve beni Visual Basic düzenleyicisinin kendisinde tutuyor.

Not: Karmaşık bir kodla çalışıyorsanız ve izlemeniz gereken birden çok değişken varsa, İzleme Penceresi kullanmak daha iyidir. Bir İzleme Penceresi, bir değişken eklemenize izin verir ve ardından bu değişkenin gerçek zamanlı olarak (veya kodda adım adım ilerlerken) nasıl değiştiğini görebilirsiniz.

Hata Ayıklarken Değişken Değerini Ayarla

Bu, Immediate penceresinin biraz gelişmiş kullanımıdır, ancak kullanırsanız, kod hatalarını ayıklarken çok büyük bir zaman kazandırabilir.

Kodu hata ayıklama modunda çalıştırırken bir değişkenin değerini ayarlamak için hemen pencereyi kullanabilirsiniz (burada kodun tam olarak yürütülmemesi için bir kesme noktası ayarlarsınız - ancak belirli bir satıra kadar).

Örneğin, 10 kez çalışan bir döngünüz varsa ve döngü 8. kez çalıştığında ne olduğunu kontrol etmek istiyorsanız, sekizinci yinelemeye ulaşmak için döngüden yedi kez geçmeniz gerekmez. Basitçe döngüden önce bir kesme noktası ekleyebilir ve döngü değişkenini 8 olarak değiştirebilirsiniz. Şimdi, kodu çalıştırdığınızda, döngüler 8. kez çalıştığında ne olduğunu size gösterecektir.

Bu, karmaşık kodlar yazarken ve belirli döngülerde hata ayıklamak istediğinizde çok daha kullanışlı hale gelir.

Aşağıda gösterildiği gibi bir kodunuz olduğunu varsayalım:

Sub UnhideSheets() For i = 1 To Worksheets.Count Debug.Print Sheets(i).Name Sonraki i End Sub

Yukarıdaki kod, çalışma kitabındaki tüm sayfaların sayfa adlarını hemen pencerede listeler.

Tüm sayfaların adlarını listelemek istemiyorsanız, yalnızca 10. sayfadan sonraki sayfaları listelemek istiyorsanız, döngünün ikinci satırına bir kesme noktası yerleştirebilir (böylece bu satırdan sonra hiçbir şey yürütülmez) ve ardından değiştirebilirsiniz. 'i' ile 11 arasındaki değişken.

Değişken adını hemen pencerede değiştirmek için aşağıdaki satırı girin:

ben=11

Bu, döngünün ilk 10 katının yok sayılmasını ve değişken değerinizin 11 olarak ayarlanmasını sağlayacaktır.

Anında Pencereyi Yerleştirme/Çıkarma

Pencereyi hemen VB Editörüne yerleştirebilirsiniz - bu, VB Editöründe tek bir yerde kaldığı ve onunla birlikte hareket ettiği ve boyutlandırdığı anlamına gelir.

Ayrıca onu yerinden çıkartabilirsiniz, yani VB Editöründen bağımsızdır ve bağımsız bir pencere olarak taşınabilir.

Hemen pencere için yerleştirme ayarlarını nasıl değiştirebileceğiniz aşağıda açıklanmıştır:

  1. VB Editöründeki menüdeki Araçlar seçeneğine tıklayın
  2. 'Seçenekler'e tıklayın
  3. Seçenekler iletişim kutusunda, son sekmeye tıklayın - Yerleştirme
  4. Takılabilir hale getirmek için Anında Pencere seçeneğini işaretleyin ve sabitlenemez hale getirmek için işaretini kaldırın.
  5. Tamam'ı tıklayın

Alternatif olarak, hemen pencere görünürse, sağ tıklayıp sabitlenebilir özelliğini de değiştirebilirsiniz.

Yerleştirilebilir, hemen pencerenin, kendisini pencerenin solu veya alt kısmı gibi belirli yerlere yerleştirerek mevcut pencerenin bir parçası olacağı anlamına gelir. Bu, sabitlenmiş pencerelerin birlikte hareket etmesini ve boyutlandırılmasını sağlar.

Anında Pencere Gösterilmiyor - İşte Bunu Almanın Bazı Yolları

Bu durumun birden fazla nedeni olabilir.

Hemen bir pencere görmemenizin en yaygın nedeni, görünür hale gelmemiş olmasıdır. Varsayılan olarak görünmeyebilir ve görünmesi için menüden Görünüm seçeneğine gitmeniz ve Hemen Pencere seçeneğine tıklamanız gerekir. Bu, VB Editöründe görünür olmasını sağlayacaktır.

Anında pencerenin görünmesini sağlamak için Control + G klavyesini de kullanabilirsiniz. VB Editöründeyken bu klavye kısayolunu kullanın.

Hemen pencereyi görememenizin bir başka nedeni de simge durumuna küçültülmüş olması ve artık görememenizdir (burada bildirildiği gibi). Sadece hızlı bir tarama yapın ve bir yerde gizlenen küçük mavi/kırmızı bir kare görüp görmediğinizi kontrol edin. İmleci üzerine getirebilirsiniz ve yeniden boyutlandırmak için bir seçenek göreceksiniz.

Hemen pencereyi hiç göremiyorsanız, işte birçok insan için işe yarayan bir şey (bu genellikle ekran çözünürlüğü değişiklikleri nedeniyle olur):

  1. VB Düzenleyiciyi açın
  2. Anında pencereye odaklanmak için Ctrl-G tuşlarına basın (veya menüdeki Görünüm seçeneğine tıklayın ve ardından hemen pencereye tıklayın)
  3. ALT tuşunu basılı tutun ve ardından boşluk tuşuna basın. Bu, hemen pencere için açılır seçenekleri gösterecektir.
  4. M'ye basın (Hareket için)
  5. Pencereyi hareket ettirmek için ok tuşlarını kullanın
  6. Nerede olduğunu bulduktan sonra, daha büyük yap.

Bunu burada bir forumdan aldım ve aynı zamanda VBA anında penceresinin görünmemesi için bir çözüm olarak önerildiğini fark ettim.

Deneyebileceğiniz başka bir şey de, hemen pencereyi geri alınamaz hale getirmektir (Araçlar -> Seçenekler -> Yerleştirme'ye gidin ve hemen pencere seçeneğinin işaretini kaldırın). Bu bazı insanlarda işe yaradı.

Aşağıdaki makaleleri de beğenebilirsiniz:

  • Excel Kişisel Makro Çalışma Kitabı | Tüm Çalışma Kitaplarında Makroları Kaydet ve Kullan
  • Excel VBA Döngüleri: Sonraki İçin, Yaparken, Yapana Kadar, Her Biri İçin (Örneklerle)
  • Excel VBA kullanarak Çalışma Sayfalarıyla Çalışmak
  • Excel VBA'da Kullanıcı Tanımlı İşlev (UDF) Oluşturma
wave wave wave wave wave