Excel’de onlarca formül bilip kullansanız da, Word’de yüzlerce sayfa yazı yazsanız da, eminim ki “bunu nasıl yapmışlar yahu” deyip anlam veremediğiniz, çözümünü bilmediğiniz onlarca örnekle karşılaşmışsınızdır. İşte onlar hep makro… J
Makro; Microsoft Office uygulamalarında Word, Excel, PowerPoint gibi uygulamalarını daha güçlü, daha esnek, daha işlevsel ve daha özerk hale getirmek için kullanılan Visual Basic altyapısıyla çalışan ve sizin uygulamada yaptığınız hareketleri takip ederek, kaydettiğiniz kısmı tekrarlayan bir velinimettir. En çok Excel’de kullanılıyor ancak Office’in diğer uygulamalarında da bu destek mevcuttur.
Excel’de yaygın olmasının sebeplerine gelince, orta seviye kullanıcı tarafından mevcut işlerin daha ucuz ve daha etkin olarak organize edilmesi ve yeri geldiğinde programlama altyapısına olan ihtiyaçtır. Yani Excel’de formül yazma yeteneği ile programvari işlemler yapılabilir, makro ile desteklenerek bunların giriş seviyesindeki insanların sorunsuz kullanabilmesi için kısıtlamalar sağlanabilir. Zaten devasa veriler yoksa bir pc programından beklentimiz de bu değil midir? Maliye hesapları, gelir-gider tabloları, kayıt defterleri, zarar hesaplamaları vs vs… Ne gerek var bir günü diğerini tutmayan bir devirde, aylarca uğraşıp didinen programcıya binlerce lira vermeye… Zaten sen programcı mantığıyla düşünmüyorsun, programcı da senin işlerine hakim değil, ne yaptığını anlaması uzun sürüyor, program çıkana kadar devir de değişiyor sistem de değişiyor. O zaman aç bir Excel tasarla sistemini işte… En azından benim yaptığım gibi, programcılara ilham verirsiniz, sahadaki sizi daha iyi anlarlar. Ama hiçbir zaman kendi yaptığınız sistemin yerini tutmuyor bilin. 😉
Ee hocam tamam da biz zaten formül kullanıyoruz neden makro kullanalım diyorsanız, siz Excel’i kullanmamışsınız demektir. Öyle 3-5 formül yazmakla, hücreleri sağa sola uzatmakla renklendirmekle kullanmış olmuyorsunuz. Yeri gelir yüzbinlerce formül dolu hücre ile çalışırsınız. Ki benim öğle yemeğinden önce hesapla dediğim halde öğleden sonra bitmemiş Excel sayfalarım vardı. 1 saatten uzun süren… Tabi ki bilgisayar performansı da etkilidir, ancak en basitinde sayfada sabitleştirebileceğiniz değişmesi mümkün olmayan verileri formülle çağırırsanız, ona da bilgisayarın gücü yetmez. Kimi zaman da web sitelerinden bilgi çekmek gerekir. Ya da kapalı excel sayfalarından veri çekmeniz gerekir. Ya da içiçe düzenilerce formül yazmak kafanızı ağrıtmıştır. İşte tam bu noktada makro işin içine giriyor.
Farzedin ki
bir liste hazırlıyorsunuz, TC yazdığınızda ad-soyad diğer sayfadan DÜŞEYARA ile
çekiliyor. Peki on binlerce kişi olduğunda ad soyadları formülle getirdiğinizi
hayal edin. Yanında da onlarca formül… Sizce bilgisayar durup düşünmez mi
“abi ben bu kadar hesabı nasıl yapacağım” diye? J
Bilgisayarınızı bu dertten kurtarmak için TC yazıp ENTER’a bastığınızda direk
veri kaynağından alıp, yanındaki hücreye statik metin olarak yazan bir kod
yazabilirsiniz. Ya da her TC yazdığınızda satırı kopyalayıp değer olarak
yapıştıran makro yapıp buna kısayol tuşu atayabilirsiniz. Ya da mevcut
bilginizle yapacağınız gibi tuş takımı-fare arasında mekik dokursunuz. Hangisi
daha kolayınıza gelirse…
Peki hoca iyi
hoş da ben Visual Basic adını bile duymadım nasıl makro yapacağım, nasıl olacak
bu işler? Hatta kiminizin “Visual Basic nerde yazdın yahu” dediğinizi duyar
gibiyim… Olacak çekirge olacak, olacak bu işler… Dediğim gibi orta seviye
kullanıcı olsanız yeterli, zaten makroyu kaydet dediğinizde sizi taklit ediyor
ve bu taklitlerinizi Visual Basic koduna çeviriyor. Size düşen de kaydederken
makro ismini ve kısayolunu atamak olacak.
Peki nerden başlamalı? Menüde Görünüm sekmesinde, genelde en sağda bulunan “Makrolar” altında “Makro Kaydet” seçeneğine basarak… Karşınıza bir pencere çıkacak; Makro adı yazan yere Türkçe karakter kullanmamanızı tavsiye ederim. Kısayol tuşu kısmında ise shifte basılı tutarak da bir kısayol atayabilirsiniz. Makronun saklanacağı yeri çok karıştırmayın. Zaten ileride tecrübe edeceksiniz. Sayma sayılarını bilmeden negatif sayıları öğrenmeye çalışmayın. Açıklama kısmı da adı üzerinde, yazın bir destan, kodu inceleyen adam “bu naapmış yahu” demesin. Tamam dediğiniz anda makro sizin hareketlerinizi takip edecektir. Aynı yere geldiğinizde “Kaydı Durdur” yazısını göreceksiniz zaten. Ayrıca bunların altında bir de “Göreli Başvuruları Kullan” seçeneği var. Kayıt esnasında aktif edebilir pasif edebilirsiniz. Bu aktif hücrenin(seçili hücrenin) konumuna göre göreceli konum kaydeder. Mesela A:A’da TC No, B:B’de Ad-Soyad olduğunu düşünün. A2’ye TC No’yu yazdığınızda B2’deki formül ad-soyadı getirdi. Siz de A3’e indiniz ENTER’a bastığınızdan. Göreli başvuruyu kullanarak, A3’ten B2’ye geçip (kopyala)-(değer olarak yapıştır) dediğiniz ve tekrar A3’e geldiğinizi varsayalım. Aynı makroyu kısayol tuşu ile A4’te çalıştırırsanız B3’ü statik metne çevirecektir. Ama kaydederken göreli makro kullanmazsanız, hangi hücre aktif olursa olsun B2’yi statik metne çevirecek A3’e gelecektir. Yani kayıt ettiğiniz hücrelere… Kaydı nereden durduracağınızı soruyorsanız, dikkatiniz dağılmış demektir. Bir kahve içip bu paragrafı okumayı “tekrar deneyin”…
Peki tamam da bu kadarcık şey için makro mu öğreneceğim? Hayal gücünüz şu örnekten ibaretse öğrenmeyin tabi, gidin bir programcıya size istediğiniz programı er ya da geç yazacaktır. Babasının hayrına değil tabi… Sizlere kodlamanın, daha doğrusu problem çözmenin ilk kuralını söylüyorum, asla unutmayın. İlk kural: “Ben bu işi yaparım.” diyebilmektir. O cümlenin sonuna tek noktayı da koyacaksınız ki amalar gelmesin.
Bir yazıda bu kadar karmaşa yeterli. Anlamadım deme, aç bir Excel uygula… Formülünüz bol, işleriniz kolay olsun…