İçindekiler
Yeni başlayanlar için bir makroyu kaydetmek, görüntülemek, çalıştırmak ve kaydetmek için adım adım öğretici. Ayrıca makroların Excel'de nasıl çalıştığına dair bazı iç mekanikleri de öğreneceksiniz.
Makrolar, Excel'de tekrarlayan görevleri otomatikleştirmenin harika bir yoludur. Kendinizi aynı şeyleri tekrar tekrar yaparken bulursanız, hareketlerinizi bir makro olarak kaydedin ve ona bir klavye kısayolu atayın. Ve şimdi, kaydedilen tüm eylemlerin tek bir tuşa basarak otomatik olarak gerçekleştirilmesini sağlayabilirsiniz!
Excel'de bir makro nasıl kaydedilir
Diğer VBA araçları gibi, Excel makroları da Geliştirici Bu nedenle, yapmanız gereken ilk şey Excel şeridinize Geliştirici sekmesini eklemektir.
Excel'de bir makro kaydetmek için aşağıdaki adımları uygulayın:
- Üzerinde Geliştirici sekmesinde Kod grubuna girmek için Kayıt Makrosu Düğme.
Alternatif olarak Kayıt Makrosu düğmesinin sol tarafındaki Durum Bar:
Fare yerine klavye ile çalışmayı tercih ediyorsanız, aşağıdaki tuş dizisine basın Alt , L , R (teker teker, tüm tuşlar aynı anda değil).
- İçinde Kayıt Makrosu iletişim kutusu görüntülenir, makronuzun ana parametrelerini yapılandırın:
- İçinde Makro isim kutusuna makronuzun adını girin. Anlamlı ve açıklayıcı olmasına dikkat edin, böylece daha sonra makroyu listede hızlı bir şekilde bulabilirsiniz.
Makro adlarında harfler, sayılar ve alt çizgiler kullanabilirsiniz; ilk karakter bir harf olmalıdır. Boşluklara izin verilmez, bu nedenle her bölümü büyük harfle başlayan bir adı tek kelimeli tutmalısınız (örn. MyFirstMacro ) veya sözcükleri alt çizgi ile ayırın (örn. My_First_Macro ).
- İçinde Kısayol tuşu kutusuna, makroya bir klavye kısayolu atamak için herhangi bir harf yazın (isteğe bağlı).
Hem büyük hem de küçük harflere izin verilir, ancak makro kısayolları, makroyu içeren çalışma kitabı açıkken varsayılan Excel kısayollarını geçersiz kıldığından, büyük harf tuş kombinasyonlarını ( Ctrl + Shift + harf ) kullanmanız akıllıca olacaktır. Örneğin, bir makroya Ctrl + S atarsanız, Excel dosyalarınızı bir kısayolla kaydetme yeteneğinizi kaybedersiniz.standart kaydetme kısayolu.
- Bu kitaptan Makroyu içinde saklayın açılır listesinde, makronuzu nerede saklamak istediğinizi seçin:
- Kişisel Makro Çalışma Kitabı - adlı özel bir çalışma kitabına makroyu kaydeder. Kişisel.xlsb Bu çalışma kitabında depolanan tüm makrolar Excel'i her kullandığınızda kullanılabilir.
- Bu Çalışma Kitabı (varsayılan) - makro geçerli çalışma kitabında saklanır ve çalışma kitabını yeniden açtığınızda veya diğer kullanıcılarla paylaştığınızda kullanılabilir.
- Yeni Çalışma Kitabı - yeni bir çalışma kitabı oluşturur ve makroyu bu çalışma kitabına kaydeder.
- İçinde Açıklama kutusuna makronuzun ne yaptığına dair kısa bir açıklama yazın (isteğe bağlı).
Bu alan isteğe bağlı olsa da, her zaman kısa bir açıklama yapmanızı tavsiye ederim. Çok sayıda farklı makro oluşturduğunuzda, her makronun ne yaptığını hızlı bir şekilde anlamanıza yardımcı olacaktır.
- Tıklayın TAMAM. makroyu kaydetmeye başlamak için.
- İçinde Makro isim kutusuna makronuzun adını girin. Anlamlı ve açıklayıcı olmasına dikkat edin, böylece daha sonra makroyu listede hızlı bir şekilde bulabilirsiniz.
- Otomatikleştirmek istediğiniz eylemleri gerçekleştirin (lütfen kayıt makrosu örneğine bakın).
- İşiniz bittiğinde Kaydı Durdur üzerindeki Geliştirici sekmesi:
Ya da benzer bir düğme Durum Bar:
Excel'de makro kaydetme örneği
Pratikte nasıl çalıştığını görmek için, seçili hücrelere bazı biçimlendirmeler uygulayan bir makro kaydedelim. Bunun için aşağıdakileri yapın:
- Biçimlendirmek istediğiniz bir veya daha fazla hücre seçin.
- Üzerinde Geliştirici sekmesi veya Durum çubuğuna tıklayın, tıklayın Kayıt Makrosu .
- İçinde Kayıt Makrosu iletişim kutusunda, aşağıdaki ayarları yapılandırın:
- Makroyu adlandırın Header_Formatting (çünkü sütun başlıklarını biçimlendireceğiz).
- İmleci şuraya yerleştirin Kısayol tuşu kutusunu seçin ve Shift + F tuşlarına aynı anda basın. Bu, makroya Ctrl + Shift + F kısayolunu atayacaktır.
- Makroyu bu çalışma kitabında saklamayı seçin.
- İçin Açıklama makronun ne yaptığını açıklayan aşağıdaki metni kullanın: Metni kalın yapar, dolgu rengi ekler ve ortalar .
- Tıklayın TAMAM. Kaydı başlatmak için.
- Önceden seçilmiş hücreleri istediğiniz şekilde biçimlendirin. Bu örnek için kalın metin biçimlendirmesi, açık mavi dolgu rengi ve orta hizalama kullanıyoruz.
İpucu: Makroyu kaydetmeye başladıktan sonra hiçbir hücreyi seçmeyin. Bu, tüm biçimlendirmenin makroya uygulanmasını sağlayacaktır. seçim belirli bir aralık değil.
- Tıklayın Kaydı Durdur ya da Geliştirici sekmesi veya Durum Bar.
İşte bu! Makronuz kaydedildi. Artık herhangi bir sayfadaki herhangi bir hücre aralığını seçebilir, atanan kısayola ( Ctrl + Shift + F ) basabilirsiniz ve özel biçimlendirmeniz seçili hücrelere hemen uygulanacaktır.
Excel'de kayıtlı makrolarla çalışma
Excel'in makrolar için sağladığı tüm ana seçeneklere Makro iletişim kutusunu açmak için Makrolar üzerindeki Geliştirici sekmesine tıklayın veya Alt+ F8 kısayoluna basın.
Açılan iletişim kutusunda, tüm açık çalışma kitaplarında bulunan veya belirli bir çalışma kitabıyla ilişkilendirilmiş makroların listesini görüntüleyebilir ve aşağıdaki seçeneklerden yararlanabilirsiniz:
- Koşmak - seçili makroyu yürütür.
- İçeri girin - Visual Basic Düzenleyicisi'nde makroda hata ayıklamanıza ve makroyu test etmenize olanak tanır.
- Düzenle - Seçilen makroyu, kodu görüntüleyebileceğiniz ve düzenleyebileceğiniz VBA Düzenleyicisinde açar.
- Silme - Seçilen makroyu kalıcı olarak siler.
- Seçenekler - gibi makronun özelliklerinin değiştirilmesine izin verir. Kısayol anahtar ve Açıklama .
Excel'de makrolar nasıl görüntülenir
Bir Excel makrosunun kodu Visual Basic Düzenleyicisi'nde görüntülenebilir ve değiştirilebilir. Düzenleyici'yi açmak için Alt + F11 tuşlarına basın veya Visual Basic üzerindeki Geliştirici sekmesi.
VB Düzenleyicisini ilk kez görüyorsanız, lütfen cesaretiniz kırılmasın veya gözünüz korkmasın. VBA dilinin yapısı veya sözdizimi hakkında konuşmayacağız. Bu bölüm size sadece Excel makrolarının nasıl çalıştığı ve bir makroyu kaydetmenin gerçekte ne yaptığı hakkında bazı temel bilgiler verecektir.
VBA Düzenleyicinin birkaç penceresi vardır, ancak biz iki ana pencereye odaklanacağız:
Proje Kaşifi - tüm açık çalışma kitaplarının ve sayfalarının bir listesini görüntüler. Ayrıca, modülleri, kullanıcı formlarını ve sınıf modüllerini gösterir.
Kod Penceresi - Proje Gezgini'nde görüntülenen her nesne için VBA kodunu görüntüleyebileceğiniz, düzenleyebileceğiniz ve yazabileceğiniz yer burasıdır.
Örnek makroyu kaydettiğimizde, arka uçta aşağıdaki şeyler meydana geldi:
- Yeni bir modül ( Moduel1 ) eklenmiştir.
- Makronun VBA kodu Kod penceresine yazılmıştır.
Belirli bir modülün kodunu görmek için modüle çift tıklayın ( Modül1 Normalde bir makro kodu şu kısımlardan oluşur:
Makro adı
VBA'da herhangi bir makro şu şekilde başlar Alt ardından makro adı gelir ve şu şekilde biter End Sub Burada "Sub", "Sub" kelimesinin kısaltmasıdır. Alt Yordam (aynı zamanda Prosedür ). Örnek makromuzun adı Header_Formatting() Bu yüzden kod bu satırla başlar:
Sub Header_Formatting()Eğer isterseniz makroyu yeniden adlandırın mevcut adı silin ve doğrudan Kod penceresine yeni bir ad yazın.
Yorumlar
Ön ekinde kesme işareti (') bulunan ve varsayılan olarak yeşil renkte görüntülenen satırlar çalıştırılmaz. Bunlar bilgi amaçlı eklenen yorumlardır. Yorum satırları kodun işlevselliğini etkilemeden güvenli bir şekilde kaldırılabilir.
Genellikle, kaydedilen bir makro 1 - 3 yorum satırına sahiptir: makro adı (zorunlu); açıklama ve kısayol (kayıttan önce belirtilmişse).
Yürütülebilir kod
Yorumlardan sonra, kaydettiğiniz eylemleri yürüten kod gelir. Bazen, kaydedilmiş bir makroda çok sayıda gereksiz kod olabilir, ancak bu yine de VBA ile işlerin nasıl yürüdüğünü anlamak için yararlı olabilir :)
Aşağıdaki resim makro kodumuzun her bir parçasının ne yaptığını göstermektedir:
Kaydedilmiş bir makro nasıl çalıştırılır
Bir makroyu çalıştırarak, Excel'e kaydedilen VBA koduna geri dönmesini ve aynı adımları yürütmesini söylersiniz. Excel'de kaydedilmiş bir makroyu çalıştırmanın birkaç yolu vardır ve işte en hızlı olanları:
- Eğer bir klavye kısayolu makro için, bu kısayola basın.
- Alt + 8 tuşlarına basın veya Makrolar üzerindeki Geliştirici sekmesinde Makro iletişim kutusunda istediğiniz makroyu seçin ve Koşmak .
Kendi düğmenize tıklayarak kaydedilmiş bir makroyu çalıştırmanız da mümkündür. İşte bir makro oluşturmanın adımları: Excel'de makro düğmesi nasıl oluşturulur?
Excel'de makrolar nasıl kaydedilir
İster bir makro kaydetmiş olun ister VBA kodunu manuel olarak yazmış olun, makroyu kaydetmek için çalışma kitabını makro etkin (.xlms uzantılı) olarak kaydetmeniz gerekir:
- Makroyu içeren çalışma kitabında Kaydet düğmesine veya Ctrl + S tuşlarına basın.
- İçinde Farklı Kaydet iletişim kutusunu seçin, ardından Excel Makro Etkin Çalışma Kitabı (*.xlsm) bir şey yok. Farklı kaydet açılır listesini seçin ve ardından Kaydet :
Excel makroları: ne kaydedilir ve ne kaydedilmez
Az önce gördüğünüz gibi, Excel'de bir makro kaydetmek oldukça kolaydır. Ancak etkili makrolar oluşturmak için, perde arkasında neler olup bittiğini anlamanız gerekir.
Kaydedilenler
Excel'in Makro Kaydedicisi oldukça fazla şeyi kaydeder - neredeyse tüm fare tıklamaları ve tuş basımları. Bu nedenle, makronuzun beklenmedik davranışına neden olabilecek fazla koddan kaçınmak için adımlarınızı dikkatlice düşünmelisiniz. Aşağıda Excel'in kaydettiklerine birkaç örnek verilmiştir:
- Hücreleri fare veya klavye ile seçme. Yalnızca bir eylemden önceki son seçim kaydedilir. Örneğin, A1:A10 aralığını seçer ve ardından A11 hücresini tıklatırsanız, yalnızca A11 seçimi kaydedilir.
- Dolgu ve yazı tipi rengi, hizalama, kenarlıklar vb. gibi hücre biçimlendirmesi.
- Yüzde, para birimi vb. gibi sayı biçimlendirmeleri.
- Formülleri ve değerleri düzenleme Enter tuşuna bastıktan sonra değişiklikler kaydedilir.
- Kaydırma, Excel pencerelerini taşıma, diğer çalışma sayfalarına ve çalışma kitaplarına geçme.
- Çalışma sayfalarını ekleme, adlandırma, taşıma ve silme.
- Çalışma kitapları oluşturma, açma ve kaydetme.
- Diğer makroları çalıştırma.
Kaydedilemeyenler
Excel'in kaydedebileceği birçok farklı şey olmasına rağmen, bazı özellikler Makro Kaydedicinin yeteneklerinin ötesindedir:
- Excel şeridinin ve Hızlı Erişim araç çubuğunun özelleştirilmesi.
- Excel iletişim kutuları içindeki eylemler, örneğin Koşullu Biçimlendirme veya Bul ve Değiştir (sadece sonuç kaydedilir).
- Diğer programlarla etkileşimler. Örneğin, bir Excel çalışma kitabından bir Word belgesine kopyalama/yapıştırma kaydı yapamazsınız.
- VBA Editörünü içeren her şey. Bu, en önemli sınırlamaları getirir - programlama düzeyinde yapılabilecek birçok şey kaydedilemez:
- Özel fonksiyonlar oluşturma
- Özel iletişim kutularını görüntüleme
- Gibi döngüler yapmak Sonraki İçin , Her Biri İçin , Do While vb.
- Koşulların değerlendirilmesi VBA'da IF Sonra Else deyimini bir koşulu test etmek ve koşul doğruysa bazı kodları veya koşul yanlışsa başka bir kodu çalıştırmak için kullanabilirsiniz.
- Olaylara dayalı kod çalıştırma VBA ile birçok olayı, o olayla ilişkili bir kodu çalıştırmak için kullanabilirsiniz (örneğin, bir çalışma kitabını açma, çalışma sayfasını yeniden hesaplama, seçimi değiştirme vb.)
- Bağımsız değişkenleri kullanma VBA Düzenleyici'de bir makro yazarken, makronun belirli bir görevi yerine getirmesi için giriş bağımsız değişkenleri sağlayabilirsiniz. Kaydedilmiş bir makro bağımsız olduğundan ve diğer makrolara bağlı olmadığından herhangi bir bağımsız değişkene sahip olamaz.
- Örneğin, belirli hücreleri kopyalayan bir makro kaydederseniz, örneğin Toplam satırında, Excel yalnızca kopyalanan hücrelerin adreslerini kaydedecektir. VBA ile mantığı kodlayabilirsiniz, yani değerleri Toplam Sıra.
Yukarıdaki sınırlamalar kaydedilen makrolar için birçok sınır koysa da, yine de iyi bir başlangıç noktasıdır. VBA dili hakkında hiçbir fikriniz olmasa bile, hızlı bir şekilde bir makro kaydedebilir ve ardından kodunu analiz edebilirsiniz.
Excel'de makro kaydetmek için faydalı ipuçları
Aşağıda, öğrenme eğrinizi daha yumuşak ve makroları daha verimli hale getirerek size potansiyel olarak çok fazla zaman ve sinir kazandırabilecek birkaç ipucu ve not bulacaksınız.
Makro kaydı için göreli referansları kullanma
Excel varsayılan olarak mutlak referans gösterme Bu, makroyu çalıştırırken çalışma sayfasının neresinde olursanız olun, VBA kodunuzun her zaman tam olarak seçtiğiniz hücrelere başvuracağı anlamına gelir.
Ancak, varsayılan davranışı şu şekilde değiştirmek mümkündür göreli referanslama Bu durumda, VBA hücre adreslerini sabit olarak kodlamaz, ancak etkin (o anda seçili) hücreye göre çalışır.
Bir makroyu göreli referanslama ile kaydetmek için Kullanım Göreceli Referanslar üzerindeki Geliştirici Mutlak referanslamaya geri dönmek için düğmeyi tekrar tıklayarak kapatın.
Örneğin, bir tablonun kurulumunu varsayılan mutlak referanslama ile kaydederseniz, makronuz tabloyu her zaman aynı yerde yeniden oluşturacaktır (bu durumda, Başlık A1'de, Madde1 A2'de, Madde2 A3'te).
Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub
Aynı makroyu göreli referanslama ile kaydederseniz, tablo makroyu çalıştırmadan önce imleci koyduğunuz yerde oluşturulur ( Başlık aktif hücrede, Madde1 aşağıdaki hücrede ve bu şekilde devam eder).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End SubNotlar:
- Göreli referansları kullanırken, makroyu kaydetmeye başlamadan önce ilk hücreyi seçtiğinizden emin olun.
- Göreceli başvuru her şey için işe yaramaz. Bazı Excel özellikleri, örneğin bir aralığı tabloya dönüştürme, mutlak başvurular gerektirir.
Klavye kısayollarını kullanarak aralıkları seçin
Fareyi veya ok tuşlarını kullanarak bir hücreyi veya hücre aralığını seçtiğinizde, Excel hücre adreslerini yazar. Sonuç olarak, bir makro çalıştırdığınızda, kaydedilen işlemler tam olarak aynı hücreler üzerinde gerçekleştirilir. İstediğiniz bu değilse, hücreleri ve aralıkları seçmek için kısayolları kullanın.
Örnek olarak, aşağıdaki tablodaki tarihler için belirli bir biçim (d-mmm-yy) ayarlayan bir makro kaydedelim:
Bunun için aşağıdaki işlemleri kaydedersiniz: Ctrl + 1 tuşlarına basarak Hücreleri Biçimlendir iletişim kutusu> Tarih> biçimi seç> Tamam. Kaydınız aralığı fare veya ok tuşlarıyla seçmeyi içeriyorsa, Excel aşağıdaki VBA kodunu üretecektir:
Sub Date_Format() Range( "A2:B4" ). Select Selection.NumberFormat = "d-mmm-yy" End SubYukarıdaki makroyu çalıştırmak her seferinde A2:B4 aralığını seçecektir. Tablonuza daha fazla satır eklerseniz, bunlar makro tarafından işlenmeyecektir.
Şimdi, bir kısayol kullanarak tabloyu seçtiğinizde ne olacağını görelim.
İmleci hedef aralığın (bu örnekte A2) sol üst hücresine getirin, kaydı başlatın ve Ctrl + Shift + End tuşlarına basın. Sonuç olarak, kodun ilk satırı aşağıdaki gibi görünecektir:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). SelectBu kod, etkin hücreden son kullanılan hücreye kadar tüm hücreleri seçer, yani tüm yeni veriler otomatik olarak seçime dahil edilir.
Alternatif olarak Ctrl + Shift + Oklar kombinasyonlarını da kullanabilirsiniz:
- Sağdaki tüm kullanılan hücreleri seçmek için Ctrl + Shift + Sağ ok, ardından
- Ctrl + Shift + Aşağı ok, kullanılan tüm hücreleri aşağı seçmek için.
Bu, bir yerine iki kod satırı oluşturacaktır, ancak sonuç aynı olacaktır - aktif hücrenin aşağısında ve sağında veri bulunan tüm hücreler seçilecektir:
Range(Selection, Selection. End (xlToRight)). Select Range(Selection, Selection. End (xlDown)). SelectBelirli hücreler yerine seçim için bir makro kaydetme
Yukarıdaki yöntem (yani etkin hücreden başlayarak kullanılan tüm hücrelerin seçilmesi) tüm tablo üzerinde aynı işlemleri gerçekleştirmek için harika çalışır. Ancak bazı durumlarda, makronun tüm tablo yerine belirli bir aralığı işlemesini isteyebilirsiniz.
Bunun için VBA şunları sağlar Seçim Bir aralıkla yapılabilen çoğu şey, seçimle de yapılabilir. Bu size ne avantaj sağlar? Çoğu durumda, kayıt sırasında hiçbir şey seçmenize gerek yoktur - sadece etkin hücre için bir makro yazın. Ardından, istediğiniz herhangi bir aralığı seçin, makroyu çalıştırın ve makro tüm seçimi işlesin.
Örneğin, bu tek satırlık makro seçilen herhangi bir sayıda hücreyi yüzde olarak biçimlendirebilir:
Sub Percent_Format() Selection.NumberFormat = "0.00%" End SubNe kaydedeceğinizi dikkatlice planlayın
Microsoft Excel Makro Kaydedici, yaptığınız ve düzelttiğiniz hatalar da dahil olmak üzere neredeyse tüm etkinliklerinizi kaydeder. Örneğin, bir şeyi geri almak için Ctrl + Z tuşlarına basarsanız, bu da kaydedilir. Sonunda, çok sayıda gereksiz kodla karşılaşabilirsiniz. Bunu önlemek için, kodu VB Düzenleyicisinde düzenleyin veya kaydı durdurun, eksik bir makroyu silin ve yeniden kaydetmeye başlayın.
Makro çalıştırmadan önce çalışma kitabını yedekleme veya kaydetme
Excel makrolarının sonucu geri alınamaz. Bu nedenle, bir makronun ilk çalıştırılmasından önce, beklenmedik değişiklikleri önlemek için çalışma kitabının bir kopyasını oluşturmak veya en azından mevcut çalışmanızı kaydetmek mantıklıdır. Makro yanlış bir şey yaparsa, çalışma kitabını kaydetmeden kapatın.
Kaydedilen makroları kısa tutun
Bir dizi farklı görevi otomatikleştirirken, hepsini tek bir makroya kaydetmek cazip gelebilir. Bunu yapmamanın iki ana nedeni vardır. Birincisi, uzun bir makroyu hatasız bir şekilde kaydetmek zordur. İkincisi, büyük makroların anlaşılması, test edilmesi ve hata ayıklanması zordur. Bu nedenle, büyük bir makroyu birkaç parçaya bölmek iyi bir fikirdir. Örneğin, bir özet tablo oluştururkenBirden fazla kaynaktan gelen bilgileri içe aktarmak için bir makro, verileri birleştirmek için başka bir makro ve tabloyu biçimlendirmek için üçüncü bir makro kullanabilirsiniz.
Umarım bu eğitim size Excel'de bir makronun nasıl kaydedileceği hakkında biraz fikir vermiştir. Her neyse, okuduğunuz için teşekkür ediyor ve gelecek hafta blogumuzda görüşmeyi umuyorum!