- Makro kaydedici tam olarak ne yapar?
- Kayda başlamadan önce hazırlık
- Adım adım makro kaydetme
- Örnek senaryo: ham raporu tek tuşla düzenlemek
- Kaydedilen kodu okumak ve düzenlemek
- Makroyu çalıştırma, kaydetme ve güvenlik
- Sık yapılan hatalar ve nasıl önlenir
- Makro becerisini nasıl ilerletirsiniz?
- Sık sorulan sorular
Makro kaydedici ile Excel'de tekrar eden işleri otomatikleştirmek
Excel makro kaydedici ile tekrar eden işleri otomatikleştirmeyi, kaydedilen kodu düzenlemeyi ve makroyu güvenle kaydetmeyi örneklerle öğrenin.
Makro kaydedici tam olarak ne yapar?
Makro kaydedici, Excel'de yaptığınız işlemleri izler ve bunları VBA koduna çevirir. Hücreye bir şey yazmak, bir aralığı kalın yapmak, filtre uygulamak, sütun genişliğini ayarlamak kaydedilir. Kaydı durdurduğunuzda ortaya çıkan kod, aynı işlemleri tek bir komutla yeniden oynatır. Kod yazmayı bilmeniz gerekmez; ama kaydedilen kodu okumayı öğrenmek, makro becerisinin gerçek başlangıcıdır.
Kaydediciyi doğru kullanmak için bir sınırını bilmek gerekir: Kaydedici yalnızca sizin yaptığınız hareketleri tekrarlar, karar vermez. 'Bu satır boşsa atla' ya da 'veri kaç satır sürüyorsa hepsini işle' gibi mantıkları kaydedemezsiniz; bunlar sonradan kod düzenlemesiyle eklenir. Bu yüzden kaydedici, her gün aynı sırayla yaptığınız, kural değişmeyen işler için idealdir.
Kayda başlamadan önce hazırlık
Makro kaydı, elinizi acele ettirmeyen bir iştir. Kayıt açıkken yaptığınız her fazladan tıklama koda girer. Bu yüzden önce işi kâğıt üzerinde sıralayın: hangi dosya açık olacak, imleç nerede başlayacak, hangi işlemler hangi sırayla yapılacak, iş nerede bitecek.
Geliştirici sekmesi varsayılan olarak gizlidir; Microsoft'un yönergesine göre önce bu sekmeyi görünür hale getirmeniz gerekir. Mac'te bu ayar Excel menüsündeki Tercihler altında, şerit ve araç çubuğu bölümündedir. Sekme göründükten sonra Kod grubunda Makro Kaydet düğmesini bulursunuz.
Hazırlık için kısa bir kontrol listesi: • Örnek bir veri dosyası kopyası üzerinde çalışın, asıl dosyada değil. • Başlangıç hücresini belirleyin; kayıttan önce o hücreye tıklayın. • Gerçekten gerekli olmayan gezinmelerden kaçının; kayıtta gereksiz sayfa geçişi yapmayın. • Makroya baştan anlamlı bir ad verin, örneğin RaporuBicimlendir. Ad harfle başlar, boşluk içermez.
Adım adım makro kaydetme
Microsoft'un makro hızlı başlangıç yönergesindeki akış şöyledir. Geliştirici sekmesinde, Kod grubunda Makro Kaydet'i seçin. Açılan pencerede makro adını, isterseniz bir kısayol tuşunu ve bir açıklamayı girin, ardından Tamam'a basın. Bu andan itibaren kayıt başlamıştır. Otomatikleştirmek istediğiniz işlemleri yapın ve işiniz bitince Geliştirici sekmesinde Kaydı Durdur'u seçin.
Kısayol tuşu seçerken dikkat edin: Excel'in kendi kısayollarıyla çakışan bir birleşim seçerseniz makronuz o kısayolu geçersiz kılar. Büyük harfli birleşimler (Ctrl ile birlikte Shift) daha güvenlidir.
Açıklama kutusunu boş geçmeyin. Birkaç ay sonra dosyayı açan kişi, makronun neyi neden yaptığını oradan okur. Makro gereksiz yere uzun sürüyorsa, kayıtta fare yerine klavye kısayollarıyla gezmek hem kodu kısaltır hem de kaydı daha tutarlı yapar.
Örnek senaryo: ham raporu tek tuşla düzenlemek
Örneğin her sabah sistemden indirdiğiniz bir satış listesi var. Başlık satırı düz yazı halinde, sütunlar dar, filtre yok. Siz her seferinde aynı işlemleri yapıyorsunuz: başlık satırını kalın yapmak, sütun genişliklerini içeriğe uydurmak, başlıkların üstüne filtre koymak. Kayıt sırasında sırayla bunları yapar ve Kaydı Durdur'u seçersiniz.
Düzenleme penceresinde kaydedicinin ürettiği kod yaklaşık şuna benzer:
Sub RaporuBicimlendir() Rows("A:A").Select Selection.Font.Bold = True Cells.Select Cells.EntireColumn.AutoFit Range("A:A").Select Selection.AutoFilter End Sub
Bu kod çalışır ama gereksiz Select çağrıları doludur. Aynı işi sadeleştirilmiş haliyle yazmak mümkündür:
Sub RaporuBicimlendir() With ActiveSheet .Rows("A:A").Font.Bold = True .Cells.EntireColumn.AutoFit .Range("A:A").AutoFilter End With End Sub
Bu sürümler aynı sonucu verir; sadeleştirilmiş olanı seçimlere bağlı olmadığı için daha hızlı ve daha az kırılgandır. Gerçek bir dosyada başlık satırının adresini kendi tablonuza göre değiştirirsiniz.
Kaydedilen kodu okumak ve düzenlemek
Makroyu kaydettikten sonra Geliştirici sekmesindeki Kod grubunda Makrolar'ı seçin, makronun adını işaretleyin ve Düzenle'ye basın. Visual Basic Düzenleyicisi açılır. Kısayol olarak Alt+F11 de aynı pencereyi açar. Sol taraftaki proje ağacında makronun içinde bulunduğu modülü görürsünüz.
Kodu okurken şu kalıplara bakın: • Select ve Selection: kaydedici, her şeyi önce seçip sonra uygular. Çoğu zaman bu satırlar tek satıra indirilebilir. • Range ve Cells: hücre adresi sabit yazılmışsa, veri uzunluğu değiştiğinde makro yanlış aralıkta çalışır. Bu, kaydedilmiş makroların en yaygın kırılma noktasıdır. • ActiveSheet: makro, o anda açık olan sayfada çalışır. Belirli bir sayfada çalışmasını istiyorsanız sayfa adını koda açıkça yazın.
İlk düzenleme alıştırması olarak sabit adresleri bir değişkene çevirin; örneğin son dolu satırı bulup aralığı ona göre ayarlayın. Bu adım, kaydediciden gerçek VBA'ya geçişin ilk adımıdır.
Makroyu çalıştırma, kaydetme ve güvenlik
Makroyu çalıştırmanın birkaç yolu vardır: tanımladığınız kısayol tuşuna basmak, Geliştirici sekmesinde Makrolar'dan adını seçip çalıştırmak ya da sayfaya yerleştirilmiş bir düğmeye atamak. Sık kullanılan makrolar için düğme atamak, ekiptekilerin kodu hiç görmeden kullanabilmesini sağlar.
Makro içeren bir dosyayı normal çalışma kitabı biçiminde kaydederseniz makrolar kaybolur. Makrolu çalışma kitabı biçimi (uzantısı xlsm) seçmeniz gerekir. Başka kişilere dosya gönderirken Excel'in güvenlik uyarısı çıkabilir; bu normaldir, çünkü makrolar zararlı kod taşıyabilir. Tanımadığınız kaynaktan gelen makrolu dosyadaki içeriği etkinleştirmeyin.
Makroyu yalnızca bir dosyada değil, bütün dosyalarınızda kullanmak istiyorsanız kişisel makro çalışma kitabı kavramına bakın. Orada tutulan makrolar her Excel oturumunda hazır bulunur. Hangi seçeneğin hangi menü adıyla göründüğü Excel sürümüne göre değişebildiği için Microsoft'un güncel belgesine göz atın.
Sık yapılan hatalar ve nasıl önlenir
Başlangıçta en çok görülen hata, kayıt açıkken yanlış tıklayıp onu geri almak ve bunun koda tüm adımlarıyla girmesidir. Kayıt bozulduysa durdurup baştan kaydetmek, düzeltmeye çalışmaktan hızlıdır.
Bir diğer hata, makroyu yalnızca kayıt sırasındaki veriyle sınamaktır. Dosyaya yeni satırlar eklenince ya da sütun sırası değişince makro çalışmaz. Çözüm: makroyu hem kısa hem uzun veriyle deneyin, yanlış çıktıyı fark ederseniz sabit adresleri dinamik hale getirin.
Bir başka hata, makroyu asıl dosyada ilk kez çalıştırmaktır. Makrolarla yapılan işlemler çoğu zaman geri alınamaz; Ctrl+Z makro sonrası çalışmaz. Bu yüzden önce kopyada deneyin. Son olarak makroyu kimse anlamayacak biçimde adlandırmaktır: Makro adı ve açıklama kutusu, dosyayı devralacak kişi için yazılır.
Makro becerisini nasıl ilerletirsiniz?
Makro kaydediciyle başlayıp VBA dilini öğrenmek doğal bir yoldur. İlk aşamada tekrar eden küçük işleri kaydedin. İkinci aşamada kaydedilen kodları okuyup Select'leri temizleyin. Sonraki aşamada döngüler, koşullar ve değişkenlerle kaydedicinin yapamadığı işleri ekleyin. Son aşama, bir kullanıcı formu ya da rapor üretim akışı gibi bütün bir süreci otomatikleştirmektir.
Mindset'in Excel Makroları ve VBA Temelleri programında, müfredatın Makro Kavramı ve Kaydedici ile Başlangıç modülü bu ilk adımı, Hücreler, Aralıklar ve Sayfalar ile Çalışma modülü de kaydedilen kodun ana yapı taşlarını işler. Program; haftalık raporu elle hazırlayan finans, satış operasyonu ve raporlama ekipleri için uygundur. Ekipteki herkes aynı kayıt alışkanlığını kazanınca, kişiye bağlı olmayan ortak makro kütüphanesi kurmak mümkün olur.
İlgili Mindset programı
Excel Makroları ve VBA Temelleri
Sık sorulan sorular
Excel'de makro kaydetmek için kod bilmek gerekir mi?
Hayır. Kaydedici kodu sizin yerinize üretir; siz yalnızca işlemleri normal biçimde yaparsınız. Yine de kaydedilen kodu okuyabilmek, makro bozulduğunda neyin yanlış gittiğini anlamanızı sağlar. Bu yüzden kaydediciyle başlayıp kodu yavaş yavaş okumaya geçmek en verimli yoldur.
Geliştirici sekmesi görünmüyorsa ne yapmalıyım?
Bu sekme varsayılan olarak gizlidir. Windows'ta Excel seçeneklerinden şeridi özelleştirerek, Mac'te Excel menüsündeki Tercihler altında şerit ve araç çubuğu bölümünden Geliştirici kutusunu işaretleyerek görünür yapabilirsiniz. Sekme açıldıktan sonra Kod grubunda kayıt düğmesini bulursunuz.
Kaydettiğim makro neden başka dosyada çalışmıyor?
Makro, kaydedildiği çalışma kitabına bağlıdır. Başka dosyada kullanmak için kodu o dosyaya kopyalayabilir ya da makroyu kişisel makro çalışma kitabında tutabilirsiniz. Ayrıca makro sabit hücre adreslerine bağlıysa, farklı yapıdaki bir tabloda yanlış yerde çalışır.
Makrolu dosyayı hangi biçimde kaydetmeliyim?
Makrolar normal çalışma kitabı biçiminde saklanmaz; makroları koruyan biçimi (uzantısı xlsm) seçmelisiniz. Normal biçimde kaydederseniz Excel uyarı verir ve devam ederseniz makrolar silinir. Gönderirken alıcıya dosyanın makro içerdiğini söylemeniz de iyi bir alışkanlıktır.
Makro kaydı ile VBA yazmak arasındaki fark nedir?
Kaydedici, yaptığınız hareketleri olduğu gibi tekrarlar; koşul, döngü ya da hata denetimi içermez. VBA yazarken bu mantıkları kendiniz eklersiniz. Pratikte bu yaklaşımlar birlikte kullanılır: önce kaydedin, sonra kodu düzenleyerek esnek hale getirin.
İlgili rehberler
Kategori: Veri Analitiği ve İş Zekası