Excel'de Makro Nasıl Çalıştırılır

Excel'de bir makro çalıştırmak zor olmasa da, bunları çalıştırmanın birçok yolu vardır. Bazı yollar makroları kullanmayı kolaylaştırmak içindir, diğer yollar ise bir kullanıcının çalışma kitabınızla etkileşim şeklini tamamen değiştirebilir. Bu makalede, Makrolar Listesi ve Düğme kontrolleri gibi çalışan makroları çalıştırmanın bazı açık yollarını ve VB Düzenleyici ve Olaylar gibi bazı daha belirsiz yolları ele alacağız.

İlk: Makroların Etkin olduğundan emin olun

Excel'in güvenlik özellikleri, varsayılan olarak makroları devre dışı bırakır. Makro etkin bir çalışma kitabını açarken, kullanıcılara genellikle makroları etkinleştirmek isteyip istemedikleri sorulur.

Makroları çalıştıramıyorsanız, şu talimatları izlemeyi deneyin:

  • Çalışma kitabını kaydet
  • Çalışma kitabını kapatın, ardından tekrar açın
  • Çalışma kitabı yüklendiğinde, bir Güvenlik uyarısı istemi (aşağıda resmedilmiştir). Tıklamak İçeriği etkinleştirmek.

Makro Listesinden Bir Makro Çalıştırın

Görünüm sekmesinden bir makro listesine erişilebilir. Bu listeyi görüntülemek için:

  • seçin görüş sekme
  • etiketli düğmeyi tıklayın makrolar Makro listesini getirmek için

  • Listeden çalıştırmak istediğiniz makroyu seçin ve ardından Çalıştırmak buton

Makro Listesini istediğiniz zaman düğmesine basarak da gösterebilirsiniz. ALT+F8.

Klavye Kısayolu kullanarak Makro Çalıştırın

Sık kullandığınız bir makroya CTRL+ veya CTRL+SHIFT+ biçiminde bir klavye kısayolu atayabilirsiniz. Bunu yapmak için:

  • Makro Listesini Açın (görüş > makrolar, veya ALT+F8)
  • Kısayol uygulamak istediğiniz makroyu seçin
  • Tıklamak Seçenekler… göstermek için Makro Seçenekleri alt iletişim kutusu

  • altındaki metin kutusunda Kısayol tuşu, tek bir harf yazın ve ardından Tamam. Harfi yazarken SHIFT tuşunu basılı tutarsanız, kutunun yanındaki etiket kısayolun bir parçası olarak SHIFT öğesini gösterir.

NOT: Kısayol tuşu oluştururken SHIFT kullanmanız şiddetle tavsiye edilir! Excel, kendisi için CTRL+ kısayollarını kullanır, ör. Kopyalamak için CTRL+C veya Kaydetmek için CTRL+V. Bu veya diğer Excel kısayollarını kullanarak bir makro kısayolu oluşturursanız, makro kısayolunu yeniden atayana kadar Excel kısayolunun üzerine yazarsınız.

VB Düzenleyiciden bir Makro Çalıştırın

Makrolar ayrıca VB Editöründen de çalıştırılabilir. VB Düzenleyici, bir makronun kodunu incelemenize ve çalıştırmadan önce istediğiniz değişiklikleri yapmanıza olanak tanır.

VB Editöründe bir makro çalıştırmak için:

  • VB Düzenleyicisini açın (Geliştirici sekmesi > Visual Basic veya ALT+F11)

  • İçinde Proje penceresinde, test etmek istediğiniz makroyu içeren modüle çift tıklayın.
  • Modülün kod penceresinde, imleci yerleştir makronun kodunda "Sub" ve "End Sub" arasında herhangi bir yerde
  • Tıkla Çalıştırmak araç çubuğundaki düğmesine basın veya klavye kısayolu F5'e basın

Düğme veya Şekil Kullanarak Makro Çalıştırın

Çalışma sayfasında, bir Düğme denetimi veya Şekil gibi bir makroyu çalıştırmak için kullanıcının tıklatabileceği bir denetime sahip olmak genellikle yararlıdır. Bu, son kullanıcılar için makro listelerini açmaktan veya VB Düzenleyicisi'nde makro kodu aramaktan çok daha hızlıdır.

Tıklanabilir Düğme veya Şekil oluşturma hakkında bilgi burada bulunabilir: Excel'de Düğme Ekle ve Makro Ata.

VBA'da Olayları Kullanarak Bir Makroyu Otomatik Çalıştırma

Excel'de bir şey olduğunda (örneğin, bir çalışma kitabı açıldığında veya bir hücre değeri değiştiğinde) bir makro çalıştırmak mümkündür. Bunlara denir Olaylar, ve makroları çağırmaları veya diğer işlemleri gerçekleştirmeleri için VBA kodu yazabilirsiniz.

Bir etkinlik için kod yazmak için VB Düzenleyiciyi kullanmanız gerekir. Örneğin, çalışma kitabına ilişkin olayları görüntülemek için:

  • VB Düzenleyicisini açın (ALT+F11)
  • çift ​​tıklayın Bu Çalışma Kitabı VB Editöründeki nesne Proje Penceresi
  • Kod penceresinin sol üst köşesindeki açılır menüden “Çalışma Kitabı”nı seçin
  • Etkinliklerin listesini görmek için sağdaki açılır menüyü tıklayın

Aşağıdakiler, makro çalıştırabileceğiniz küçük ama kullanışlı bir Excel Olayı örneğidir.

Workbook_Open()

Workbook_Open() olayı, bir çalışma kitabı açıldığında tetiklenir. Bir çalışma kitabını açtıktan sonra Güvenlik Uyarısı alırsanız, "İçeriği Etkinleştir"i tıkladıktan sonra bu olay tetiklenir.

12345 Özel Alt Çalışma Kitabı_Open()MsgBox "Çalışma Kitabı Açıldı!"Alt Bitiş

Workbook_BeforeClose(Boolean olarak iptal et)

Workbook_BeforeClose(), kullanıcı çalışma kitabını kapatmaya çalıştığında etkinleşir. Çalışma kitabının kaydedilmesi gerekip gerekmediğini görmek için herhangi bir kontrol yapılmadan önce gerçekleşir.

NS İptal çalışma kitabının kapanmasını durdurmak için parametre True olarak ayarlanabilir.

123456789 Private Sub Workbook_BeforeClose(Boolean Olarak İptal Et)If MsgBox("Emin misiniz?", vbYesNo + vbQuestion, "Kapat") = vbNo Sonraİptal = DoğruBitirAlt Bitiş

Worksheet_Change(Aralık Olarak ByVal Hedefi)

Worksheet_Change(), bir hücrenin değeri değiştirildiğinde (bir makro tarafından, bir kopyala/yapıştır işlemiyle veya harici bir bağlantıyla değiştirildiğinde) tetiklenir. Yine de, bir formül aracılığıyla bir değer yeniden hesaplandığında patlamaz.

NS Hedef parametre değeri değişen hücreleri temsil eder.

Bu olay içindeki diğer hücrelerin değerini değiştirirseniz olay yeniden tetiklenir. Bu muhtemelen sonsuz bir döngüye neden olabilir. Bu olayı tetiklemeden hücre değerlerini değiştirmeniz gerekirse, Application.EnableEvents ile YANLIŞ önce ve sonra tekrar ayarlayın NS olay prosedürünün sonunda.

123456789 Private Sub Worksheet_Change(ByVal Target As Range)MsgBox "Hücreler değişti: " & Target.AddressApplication.EnableEvents = YanlışAralık("A2").Değer = Aralık("A2").Değer + Hedef.Hücreler.SayıApplication.EnableEvents = DoğruAlt Bitiş

Worksheet_SelectionChange(Aralık Olarak ByVal Hedefi)

Bu olay, hedefleme retikülü ile farklı hücreler seçildiğinde tetiklenir. Hedef parametresi, seçilen yeni hücreleri temsil eder.

Bu olayı kodla da tetikleyebilirsiniz, yani “Range(“A1”).Select”. Worksheet_Change()'de olduğu gibi, sonsuz bir döngüye neden olabileceğinden, bu olay içindeki diğer hücreleri seçerken dikkatli olmalısınız. Application.EnableEvents'i kullanın.

123456789 Özel Alt Çalışma Sayfası_SelectionChange(Aralık Olarak ByVal Hedefi)Target.Address = "$A$1" iseMsgBox "İmleç ana konumunda."BitirAlt Bitiş

Çalışan Bir Makroyu Durdur

Çalışan bir makro, düğmesine basılarak durdurulabilir. ESC veya CTRL+BREAK. Varsayılan olarak, kesintiye uğrayan bir makro aşağıdaki iletişim kutusunu gösterecektir:

tıklama Son makroyu durduracak, Devam et yeniden başlatacak. tıklama hata ayıklama makroyu VB Editöründe açar ve yürütmenin duraklatıldığı kod satırına odaklanır. (VB Düzenleyicinin içinde, araç çubuğundaki Çalıştır veya Bitir düğmelerini kullanarak makroyu durdurabilir veya devam ettirebilirsiniz.)

Application.EnableCancelKey

ESC veya CTRL+BREAK ile bir makroyu durdurma özelliğini devre dışı bırakabilirsiniz. Application.EnableCancelKey Emlak. Bu özelliğin üç olası değeri vardır:

  • xl Kesinti - bu, Excel'in yukarıdaki diyaloğu göstermesini sağlayan varsayılan değerdir
  • xlDevre dışı - çalışan bir makroyu durdurma özelliğini kaldırır
  • xlErrorHandler - bir kesme girişimi yapıldığında, kodda işlenebilecek bir hata atılır

Kod yürütme durduğunda, Excel her zaman Application.EnableCancelKey değerini sıfırlar. xl Kesinti.

Bu özelliği kullanmanın iyi bir nedeni güvenliktir. Örneğin, çalışma kitabınızın bölümlerini geçici olarak korumasız bırakan bir makronuz varsa, bir kullanıcı korumayı kaldırmanın hemen ardından makroyu durdurabilir ve sahip olmasını istemediğiniz içeriğe erişim sağlayabilir. Application.EnableCancelKey'i ayarlayarak, onların bunu yapma yeteneklerini tamamen devre dışı bırakabilir veya çalışma kitabını yeniden koruyan bir Hata İşleyici ile kesintilerini zarif bir şekilde halledebilirsiniz.

1234567891011 Sub UpdateBaseData(ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDevre DışıTarget.Worksheet."MyPassword" korumasını kaldırınNewData.Kopyala HedefiTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptAlt Bitiş

Windows Görev Yöneticisi ile Excel'i Zorla Kapatın

Makro "askıda kaldıysa" veya Excel bir kesme girişimini kabul edemeyecek kadar meşgulse, Excel'in kendisini Windows Görev Yöneticisi. (NOT: Bunu yaparsanız, kaydedilmemiş tüm çalışmalarınızı kaybedebilir ve çalışma kitabınızın otomatik kurtarma sürümüne güvenmeniz gerekebilir.)

  • kullanarak doğrudan Görev Yöneticisi'ni açın. CTRL+SHIFT+ESC
  • süreçler” sekmesi
  • Tüm çalışma kitaplarını göstermek için “Microsoft Excel” öğesini genişletin
  • Kapatmak istediğiniz çalışma kitabını seçin ve ardından Görevi bitir sağ alt köşede

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave