Nedir Bu Makrolar? EXCEL Makrolarını Doğru Anlamak OCAK 2011-1- www.etkinbilgi.com
Yazar Hakkında : Yazar hakkında bilgi edinmek için www.serkanozgoz.com adresini ziyaret edebilirsiniz. Yazara ulaşmak için serkan@etkinbilgi.com adresini kullanabilirsiniz. Yayın Hakkında : Bu kitap çok çeşitli sektörler için düzenlenen eğitim projelerinde eğitim içeriği, notları ve kitapları hazırlayan biri tarafından yazıldı. Neden Böyle Bir Yayın? Yıllarca yazdığım eğitim notlarının yada kendi katıldığım eğitimlerde bana verilen eğitim notları ve kitapların dolapların birinde ( ama hangisinde ) kaldığını gördüğüm için basılı eğitim notlarına ve kitaplara inancım azaldı. Artık bilgileri daha hızlı ulaşılabilir, daha rafine ve pratik biçimde paylaşmamız gerektiğini düşünüyorum. Bu kitapta EXCEL üzerinde en üst bilgi seviyesinin Makrolar olduğunu düşünenler için makro gerçeğini anlatmaya çalışacağız. Makroları bir fenomen olmaktan çıkarıp aslında gerçek gücün Excel Makronun arkasındaki Visual Basic te olduğunu özetleyeceğiz. Özellikle doğrular ve yanlış bilinenler kısımlarına göz atmanızı tavsiye ediyoruz. Canlı bir eğitim gibi olmayacak ama yine de makroyu anlatacağız. Bu kitap sayesinde bilmediğiniz bilgiler öğrenirseniz, bilin ki eğitimlerimizde bu bilgilerin çok daha fazlası var. OCAK 2011-2- www.etkinbilgi.com
2003 yılından bu yana Eğitimlerde biz kendilerine EXCEL anlatırken, örnekleri ve uygulamaları ile içeriklerimizi mükemmelleştirmemizi sağlayan Müşterilerimize Teşekkür Ederiz. OCAK 2011-3- www.etkinbilgi.com
Bu kitapta herhangi bir şekilde adı geçen ürün, marka veya şirket isimleri sahiplerine aittir. Kitapta yer alan bilgilerin uygulanmasından kaynaklanan sorumluluk okuyucuya aittir. Yazar bu kitaptaki bilgiler ve uygulamasından doğacak sonuçlar hakkında hiçbir şekilde garanti vermez ve sorumlu tutulamaz. OCAK 2011-4- www.etkinbilgi.com
EXCEL BECERİLERİ OCAK 2011-5- www.etkinbilgi.com
Konu 1: Doğrular ve Yanlışlar 1. Makrolar üzerinde uğraşan herkes EXCEL profesörü müdür? Cevap hayır. Bugüne kadar çalıştığımız işletmelerde üç tip kullanıcı gördük. 1. Standart Kullanıcılar : İşlerini görmek için EXCEL kullanırlar. Gerektiğinde yeni bir şey öğrenirler. Kapsamlı bilgileri olmasa da işlerini görecek bilgiye sahiptirler. Daha ilerisine gerek duymayabilirler. ( Sağlıklı Durum ) 2. İleri Seviye Yararlı Kullanıcılar : Kişisel yetenekleri gereği bir adım ilerdedirler. Diğer kullanıcıların da öğrenmesini teşvik ederler, iç eğitim verirler, yardımcı olurlar. Makrolarla amatör olarak ilgilenirler. (Sağlıklı ve Gelişmeye Açık Durum) 3. İleri Seviye Zararlı Kullanıcılar : EXCEL i diğerlerinden daha iyi bildiklerini her fırsatta herkesin gözüne sokarlar. İnternetten indirdikleri makroları birkaç küçük değişiklikle sanki kendilerinin ürünüymüş gibi sunarlar, bilgi saklarlar, paylaşmazlar. Genellikle dosyaları, makroları şifrelidir. Kendilerinden daha iyi bilene tahammül edemezler. (Sağlıksız Durum) OCAK 2011-6- www.etkinbilgi.com
Konu 2: Makro Nedir? KAYDI BAŞLAT Makro EXCEL ile birlikte ortaya çıkmış bir kavram değil. EXCEL öncesi ( hatta Windows yokken DOS işletim sisteminde bile ) kullanıcıların standart yaptıkları işleri kaydedebilecekleri, yaptıkları kayıtları tekrar edebilecekleri araçlar içeriyorlardı. Buradaki amaç : kullanıcı eğer hep aynı işleri yapıyorsa neden sürekli tekrarlasın.? İŞLEMLERİ YAP KAYDI DURDUR YAP Acaba kullanıcının hareketlerini kaydedip, sonra tekrar tekrarlayabilir miyiz?. Bir ihtiyaçtan yola çıkılarak sorulan bu sorular her uygulamada bize makro tanımlama ve tekrarlama olanağını da yaratmış oldu. Özetle makro içeren tüm uygulamalarda ( EXCEL de de ) mantık kaydet işlem yap kaydı durdur prensibi ile makro kaydetmeye olanak verir. Bu durumda EXCEL de çok sık tekrar ettiğiniz bir eylem grubunu makroya dönüştürmek için Visual Basic kodları bilmenize gerek yoktur. OCAK 2011-7- www.etkinbilgi.com
Konu 3: Neden Makro? İhtiyaçlar Neler? 1. Kimler Makro eğitimi almalı? a) Rutin işlemleri otomatikleştirip zaman kazanmak isteyenler. Soru : Sizin bu türden rutin işleriniz var mı? Örnek : ERP sisteminden hep aynı raporu alan, bazı kolonları silen, bazı süzmeler yapan, bazı satırları silen ve temiz data üzerinde bir pivot table ( özet tablo) yapan bir kullanıcı olsun. Bu raporu her hafta 10 farklı ürün grubu için ayrı ayrı 15 dk sını harcayarak yapıyor olsun. Bu kullanıcı tüm bu rutin işleri tek bir tuşla yapan bir makro hazırlayabilir. Makro birkaç saniyede çalışır, kullanıcı her hafta 10 rapor için 150 dk uğraşmaktan kurtulur. b) EXCEL fonksiyonlarına ek olarak sıra dışı fonksiyonlar yazmak ve kullanmak isteyen kullanıcılar. Örnek : Bir mühendislik hesabını sıkça kullanan bir kullanıcı bunu EXCEL de bir fonksiyona dönüştürebilir. Örneğin ham malzemelerin ebatlarından yola çıkarak ağırlıklarını hesaplayan HAMAĞIRLIK isimli bir fonksiyon yazabilir. EXCEL de böyle bir fonksiyon olmamasına rağmen kullanıcı kendisine ve çevresindekilere sıra dışı ek bir işlevsellik kazandırmış olur. Soru : Sizin ihtiyaç duyduğunuz sıra dışı fonksiyon var mı? OCAK 2011-8- www.etkinbilgi.com
c) Çok sayıda veriyi diğer veri sistemleri (MRP-ERP vs) ile birlikte kullanması, düzeltmesi, düzenlemesi, dönüştürmesi, analiz etmesi, sonuçlandırması gereken kullanıcılar. En geniş ihtiyaç grubu bu gruptur. Örneği kullanıcı ERP sisteminden 40.000 satırlık bir datayı çekiyor olsun. Sonra bu 40.000 satırlık datayı, tedarikçiden gelen başka bir dosyada bulunan 3000 satırlık datayla kıyaslayıp belirli birkaç kritere göre eşleşenleri siliyor olsun. Bu kullanıcı bu işlemleri otomatikleştirecek ve silinenleri ayrı yeni bir dosyada toplayacak ve duruma göre ( ürün grubu vs ) belirli kullanıcı gruplarına mail atacak makroyu hazırlayabilir. Böylelikle ciddi bir iş yükünden kurtulmuş olur. Soru : Sizin bu türden ihtiyaçlarınız var mı? d) Başkaları için uygulama geliştirmesi gereken kullanıcılar. Tüm şirket içinde tanımlı bulunan sarf malzeme kartlarını kullanarak Malzeme İstek Fişlerini elektronik hale getirmek isteyen bir kullanıcı bir EXCEL dosyası oluşturabilir ve tüm kullanıcılara dağıtır. Bu EXCEL dosyası normal bir EXCEL sayfası gibi değil bir sarf fişi gibi açılır. Kesilen her sarf fişi bir veri tabanına kaydolur. Sarf fişlerini raporlamak kolaylaşır. Böylelikle bir süreç standartlaştırılmış ve elle doldurulan bir form EXCEL ve yazılan makro sayesinde dijital hale gelmiş olur. Soru : Sizin bu türden ihtiyaçlarınız var mı? OCAK 2011-9- www.etkinbilgi.com
Konu 4: Makro Nasıl Oluşturulur.? 1. MAKRO KAYDETMEK İÇİN KAYDI BAŞLATMA Makro kaydetme üç aşamalı bir işlemdir. Makro kaydetmeye başlamadan önce makroyu isimlendirmek, gerekirse bir kısa yol tuşuna bağlamak ve makronun kaydedileceği yeri belirtmek gerekir. Makro Adı : Her makronun bir adı vardır. Makro adında boşluk bulunamaz. Kısa Yol Tuşu : Makroyu kaydettikten sonra pratik olarak çalıştırmak için bir kısa yol tuşu belirleyebilirsiniz. Bu tuş genellikle CTRL + SHIFT ile birlikte basılan bir tuştur. Makronun Saklanacağı Yer : Makro istenirse aktif çalışma kitabında yada tüm açılacak EXCEL dosyalarında geçerli olması için Kişisel Makro Çalışma kitabında saklanabilirler. Açıklama : Makronun içeriğini belli eden kısa açıklama yazmak daha sonra makroyu anlamak bakımından önemlidir. OCAK 2011-10- www.etkinbilgi.com
2. TEKRARLANMASINI İSTEDİĞİNİZ İŞLEMLERİ YAPMA 1. Makro Kaydet penceresinde gerekli bilgileri tanımlayıp TAMAM düğmesine tıkladığınızda EXCEL ekranında KAYDI DURDUR araç düğmesini ve durum çubuğunda Kaydediyor mesajını görürsünüz. 2. Bu aşama EXCEL in yapacağınız tüm işlemleri ve vereceğiniz tüm komutları arka planda makro koduna yani Visual Basic programla dili komutlarına dönüştüreceği aşamadır. EXCEL her hareketinizi kaydettiği için hata yaparsanız oluşturulan makro hatalarınızı da tekrarlayacaktır. 3. Makro kaydederken EXCEL ekranından yapabileceğiniz her şeyi yapabilirsiniz. 3. KAYDI DURDURMA ŞİMDİ İLK MAKRONUZU YAZABİLİRSİNİZ. 1. Yapacağınız işleri tamamladıktan sonra ekran gözüken KAYDI DURDUR düğmesine ( yada Makro menüsündeki düğmeye ) basarak kaydınızı tamamlayın. ÖRNEK : Yazdırma alanı belirleyen, sayfayı yatay çeviren, üst bilgi ve alt bilgi tanımlayan, kısacası her zaman yaptığınız sayfa ayarlarını yapan bir makro oluşturun. OCAK 2011-11- www.etkinbilgi.com
Konu 5: Makro Nasıl Çalıştırılır?, Makronuzu Deneyin! 1. Makro çalıştırmanın en pratik yolu kaydederken tanımadığınız kısa yol tuşlarına basmaktır. 2. Makronuzu ayrıca Makro (Araçlar Menüsü yada Geliştirici Sekmesi ) menüsünden çalıştırabilirsiniz. 3. FORMLAR araç çubuğu üzerinde yer alan düğme aracı ile makronuzu bir düğmeye bağlayabilirsiniz. OCAK 2011-12- www.etkinbilgi.com
Konu 6: Farklı Makrolar Geliştirin! 1. Rutin işlerinize odaklanın. 2. Unutmayın, Makro tekrarlanan işlere odaklanır. 3. EXCEL ekranında her seferinde aynı biçimde yaptığınız her şeyin makrosunu oluşturabilirsiniz. İşlediğiniz bir data içinde hep aynı sütunları gizleyen bir makro Çalıştığınız sayfayı kitap olarak kopyalayıp hep aynı isimle kaydeden bir makro Hep aynı yerin grafiğini çizen bir makro Datayı işledikten sonra aynı özet tabloyu otomatik oluşturan bir makro İstediğiniz kayıtları birden çok kritere göre filtreleyen makro OCAK 2011-13- www.etkinbilgi.com
Konu 7: Visual Basic Penceresi ve Makroların Yeri 1. Makrolar aslında Visual Basic diliyle yazılmış küçük program parçalarıdır. 2. Makrolar aynı EXCEL sayfaları gibi düşünebileceğiniz Modül sayfalarında tutulurlar. 3. Modüllere VB penceresi ile ulaşılır. 4. VB penceresini açmak için Alt + F11 tuşu kullanılır. 5. Modülllere ulaşmanızı sağlayan pencereyi ( project explorer) açmak için CTRL + R tuşunu kullanmalısınız. 6. Bir dosyayı kaydettiğinizde içerdiği makroları da kaydetmiş olursunuz. 7. Bir makro oluşturulduğunda modül kendiliğinden eklenmiş olur. 8. Ayrıca VBA penceresinde Insert Module komutu ile modül eklenebilir. 9. İstenirse modüller silinebilir. (Sağ tuş remove module ) OCAK 2011-14- www.etkinbilgi.com
10. Makro yazarken aslında bir alt program yaratmış olursunuz. 11. Alt programlar mutlaka SUB cümlesi ile başlar ve End Sub cümlesi ile biter. Böylece EXCEL makronun ( yani alt programın ) başı ve sonunu diğerlerinden ayırır. 12. Kodla makro yazmak için Modül penceresinde SUB Hesap() Komutlar End Sub OCAK 2011-15- www.etkinbilgi.com
Konu 8: Makro Güvenliği 1. EXCEL virüsleri dosyalara makro kodu gibi bulaşırlar. 2. Bu sebeple bir EXCEL dosyasının içinde bir virüs mü var, yoksa bir makro mu içeriyor bilmek zordur. 3. Bu sebeple EXCEL bir makro güvenliği ayarı içerir. 4. Bu ayar yüksek seçilmişse hiçbir makro kodu çalıştırılmaz. Orta seviye de kodların etkinleştirilip etkinleştirilmeyeceği kullanıcıya sorulur. 5. Tools-Options ile güvenlik seçeneklerine ulaşabilirsiniz. YOL AYRIMI Bu aşamaya kadar bir kullanıcının hiçbir Visual Basic kodunu bilmesine ve kullanmasına gerek olmadan oluşturabileceği makrolar konusunda sizleri bilgilendirmeye çalıştık. Bu aşamadan sonrasında Visual Basic programlama dilinin EXCEL içerisinden kullanımına yönelik bilgilere ihtiyacınız olabilir. Bu aşamadan sonrası artık kullanıcı kimliğinden çıkıp, programcı kimliğine bürünmenizi gerektiren, direk olarak modüller içine EXCEL nesnelerini kullanarak kodları bizzat yazacağınız bir süreç. Gerçekten ihtiyacınız olup olmadığını siz değerlendirmelisiniz. Biz sadece sizleri aydınlatmaya çalıştık. Cevabınız hala evet ise sonraki sayfalarda makro eğitimlerimizin içerikleri var. OCAK 2011-16- www.etkinbilgi.com
EXCEL Makroları ve EXCEL İle Programlama Eğitimi 3 Gün OCAK 2011-17- www.etkinbilgi.com
OCAK 2011-18- www.etkinbilgi.com
Zaman buldukça bilgimizi paylaşmaya devam ediyoruz. Yeni çıkacak yayınlara da ulaşmak, öneri ve düşüncelerinizi belirtmek için şimdi bize yazın. Böyle Yayınlar ve Devamı Bana Ulaşsın Bu kitapta yer alan tekniklerin çok daha fazlasını öğrenmek, EXCEL de gerçek bir uzman olmak istiyorsanız, EXCEL Odaklı Programlarımıza göz atmanızı öneririz. EXCEL Makroları ve Programlama konusunda derinlemesine bilgi edinmek istiyorsanız EXCEL Makroları ve EXCEL İle Programlama Programımız beklentilerinizi karşılayabilir. OCAK 2011-19- www.etkinbilgi.com