İşlem Tablosu Programlama Dersi 2. Ünite Özet
Makrolara Giriş
- Özet
- Sorularla Öğrenelim
Giriş
İşlem tablosu programlarında işlemler genel olarak bir kez yapılır fakat bazı durumlarda aynı işlemin birden fazla tekrarlanması gerekebilir. Tekrarlanması gereken işlem tek bir işlem olabileceği gibi birbirini takip eden işlemler bütünü de olabilir. Aynı işlemleri sürekli tekrar etmek yerine bu işlemleri bir kez yaptıktan sonra yapılan işlemleri kaydedip her ay bu kaydı çalıştırmak daha kolay olacak ve daha az hata ile işlemlerin bitirilmesini sağlayacaktır. Bahsedilen kaydın alınması ve tekrar tekrar çalıştırılabilmesini makrolar sağlamaktadır. Makrolar bir fonksiyon ya da formül değildir. Önceden kaydedilmiş işlemleri istenildiği zaman tekrar eden komut setleridir. Makrolar, genel olarak işlem tablosu programında klavye hareketleri ve komutları işlem sırasına göre kaydeder. Daha sonra bu sırada aynı klavye hareketlerini yapar ve komutları çalıştırır.
Makrolar hem basit işlemler için hem de karmaşık işlem setleri için pek çok avantaj sağlar. Bu avantajları aşağıdaki şekilde sıralamak mümkündür:
- Makro kullanımı ile her seferinde tekrar tekrar çalıştırılan programlarda kullanıcı kaynaklı hata olmasının önüne geçilir.
- Makrolar zamandan kazanç sağlarlar. Kullanıcının işlem setlerini her seferinde aynı dikkatle yapabilmesi için uzun süreler harcaması gerekir. Makro kullanımında sadece makro ilk oluşturulurken süre harcanır. Harcanan süre işlem süresinden çok az daha fazladır. Sonrasında makro çalıştırılırken işlemlerin yapılma süresinden tasarruf edilmiş olur.
- Makrolar çalıştırıldığında öngörülür sonuçlar verirler, çünkü her makronun hangi işlemleri yapacağı önceden belirlenmiştir ve makro oluşturulurken, makro kaydedilmesi için en az bir kez çalıştırılmıştır.
- Makrolar taşınabilirler, bu nedenle çalışma kitabından bağımsız olarak bir kere yazıldıktan sonra diğer çalışma kitaplarında da kullanılabilirler. Makroların gelişip yaygınlaşmasındaki en önemli etkenlerden biri bu özelliği olmuştur. Bir kez hazırlanan makro farklı çalışma kitaplarında kullanılabildiğinden benzer işleri yapan farklı kurumlarda bile aynı makrolar çalıştırılabilmektedir.
- Makrolar ileri seviye programlama bilgisi gerektirmez. Genellikle makro yazabilmek için giriş seviyesinde programlama bilgisi yeterli olmaktadır. Excel programında yeterli tecrübesi olmayan kullanıcılar bile makro oluşturabilirler. Tabi gelişmiş makro yazımları için ileri seviye programlama bilgisi gerekmektedir.
Makroların sunduğu işlem kolaylığı ve hızlı sonuç üretme, tekrarlanacak işler için zamandan tasarruf gibi avantajlar dikkatli kullanılmazsa ya da makrolar yanlış oluşturulursa tekrarlanacak hatalar da beraberinde gelecektir. Aşağıda makroların dezavantajları listelenmiştir:
- Makroların çalıştırılması kayıtlı işlemlerin tekrar edilmesi demektir. Bu nedenle makrolar oluşturulurken yapılan bir hata makronun her çalıştırılmasında tekrar edecektir. Mantıksal bir tutarsızlık, hatalı seçilmiş bir hücre, göreli referanslarla çalışma gibi basit hatalar bile makrolarda çok büyük olumsuz sonuçlar olarak geri dönebilmektedir. Özellikle makrolar taşınabildiğinden taşındığı ve çalıştığı her çalışma kitabında aynı hata tekrarlanacaktır.
- Makrolar değişen sürümlerde doğru çalışmayabilir. Özellikle VBA makro programlama diliyle oluşturulan makrolar güncellenen sürümlerde hiç çalışmayabilir ya da eksik veya hatalı çalışabilir.
Makrolar Şerit üzerindeki Görünüm menüsünde bulunurlar. Bu menü aracılığıyla makro kaydetme, makro çalıştırma, makrolarda düzenleme yapma gibi işlemler yapılabilir. Excelde Şerit özelleştirilebilmektedir. Makrolar için de hızlı erişim butonları ve kısayol tuşları tanımlanabilir. Kısayollar kullanılarak makro çalıştırmak daha hızlı olacaktır.
Genel Bilgiler
İşlem tablosu programlarında makro kullanımı yaygındır. Makrolar sadece Excel programında değil diğer işlem tablosu programlarında kullanılır fakat her işlem tablosu programı aynı makroları çalıştıramaz. Bunun en önemli sebebi kullanılan makro yazılım dilidir. İlk makro oluşturma işlemi Lotus 1-2-3 programı ile başlamış ve günümüzde kullanılan makrolara kıyasla oldukça basit makrolar oluşturulabilmiştir.
Microsoft firması Excel programında makro kullanımına XLM makrolarıyla başlamıştır. XLM makroları kullanımı zor olmasına rağmen oldukça güçlüdür. Microsoft kullanıcıların makro oluşturma konusunda zorlanması nedeniyle daha kolay makro oluşturabilecek VBA dilini Excel in sonraki sürümlerinde kullanmaya başlamıştır.
Makro oluşturmak için VBA makro dili genellikle programcılar tarafından kullanılırlar. VBA ile makro oluşturmak çoğunlukla karmaşık makrolar için kullanılır ve kimi zaman ileri seviye programlama bilgisi gerektirir. Makro oluşturmak için ikinci yöntem ise Excel programının sunduğu makro kaydedici kullanılarak makro oluşturulmasıdır.
VBA makro diline ihtiyaç duyulmadan makro hazırlanabiliyor oluşu kullanıcılar tarafından makro kaydedicinin daha çok tercih edilmesinin önemli nedenlerindendir. Makro kaydedici başlatıldığı zaman Excel de yapılan işlemler kaydedilmeye başlanır. Makro kaydetme sonlandırıldığı zaman Excel kaydedilmiş işlemleri VBA diline çevirerek makroyu kaydeder. Kaydedilen makro sonradan değiştirilebilir.
Excelde her iki yöntem de kullanılarak hem makro kaydedici hem de VBA dili kullanılarak makrolar hazırlanabilir. Bu birleştirilmiş yöntem ile makrolar daha kısa sürede ve daha kolay bir şekilde hazırlanabilmektedir. Her zaman makro kaydedici yeterli olmayabilir. Örneğin kullanıcı tanımlı diyalog kutularının oluşturulması gibi işlemler VBA diliyle yazılmak zorundadır. Fakat makro kaydedici ile kullanıcı tanımlı diyalog kutusu olmadan makro oluşturulup daha sonra VBA editörü ile makro kodu açılarak içine ekleme yapılabilir. Bu sayede makro kaydedici ile kolaylıkla yapılan işlemler için kodlama yapılmadan kodların otomatik olarak üretilmesi sağlanmış olur. Her iki yöntemle oluşturulan makrolar da Excelde VBA diliyle kaydedildiğinden istenildiği zaman makro koduna müdahale edilerek güncelleme ve ekleme yapılabilmektedir.
Makro İşlemleri
Makrolarla alakalı yapılacak işlemler yeni bir makro oluşturma, oluşturulan makroyu kaydetme, kaydedilmiş makroyu yeniden düzenleme, makrolarla ilgili kısayol tuşları ve hızlı erişim çubuğu ayarlamaları yapma, çalışma kitabının açıldığı anda makroların çalışmasını sağlayacak ayarları yapma gibi işlemlerdir. Sayılan işlemlerin tamamı Excel programı içerisinden yapılabilmektedir. Makro kaydedici kullanıcının yaptığı her hareketi kaydetmez. Sadece işlem içeren hareketler kaydedilir. Örneğin bir hücrenin içeriğinin değiştirilmesi kaydedilirken menüler arası gezinme veya bekleme kaydedilmez. Makro kaydedici ile karmaşık makroların oluşturulması çok zordur ve kullanıcı diyalog kutusu oluşturma gibi işlemlerin yapılması ise mümkün değildir. Makro kaydedici karmaşık makrolarda küçük bölümler için kullanılabilir.
Excelde Görünüm menüsü altında Makrolar alt menüsü bulunmaktadır. Bu menüden Makro Kaydet ’e tıklanarak yeni bir makro kaydı başlatılabilir. Makro kaydetme ara yüzünde oluşturulacak makroya ilişkin bilgiler istenir. Bu bilgiler makro adı, makroya erişim için kısayol tuşu, makronun kaydedileceği yer ve makro hakkında kısa bir açıklama bilgisidir. Makro isimlendirmesi yapılırken boşluk karakteri kullanılamaz. Birden fazla kelime kullanılacaksa bu kelimeler bitişik yazılmalı veya aralarına alt çizgi “_” gibi karakterler konulmalıdır. Makrolar oluşturulurken kısayol tuşu tanımlaması istenmektedir ama kısayol tuşu zorunlu alan değildir. Eğer kısayol tuşu tanımlanırsa Excelde çalışırken ctrl tuşu ile birlikte tanımlanan kısayol tuşuna basıldığında kaydedilen makro çalıştırılır. Makro kaydedilirken sorulan sorulardan biride makronun nereye kaydedileceğidir.
Excel makro saklama yeri olarak kullanıcıya üç seçenek sunmaktadır. Bunlar;
- Bu Çalışma Kitabı
- Yeni Çalışma Kitabı
- Kişisel Makro Çalışma Kitabı
Makrolar oluşturulurken makro hakkında açıklama yazılması için de bir alan tanımlanmıştır. Bu alanı doldurmak zorunlu değildir fakat makro adında yer almayan detay bilgilerin bu alana yazılmasında fayda vardır. Açıklama alanına yazılan bilgiler makro kodunun başlangıcında yorum satırları olarak yer alır. Makro oluşturma penceresindeki istenen bilgiler girilip makro oluşturulduğu andan itibaren kayıt başlar. Kaydın başlaması kullanıcının yaptığı tüm işlem ve hareketlerin kaydedilmeye başlaması anlamına gelir. Kullanıcı kaydı durduruncaya kadar kayıt devam eder. Kaydı durdurmak için Görünüm menüsündeki Makrolar sekmesinden Kaydı Durdur denmesi yeterlidir.
Makrolar çalışmak için kayıtlı oldukları çalışma kitabının açık olmasına ihtiyaç duyarlar. Farklı bir çalışma kitabındaki makro kullanılmak istenirse öncelikle o çalışma kitabının açılması gerekir. Çalıştırılabilecek makrolar Görünüm menüsündeki Makrolar sekmesi altında Makroları Görüntüle tuşuna basılarak listelenebilirler. Açılan diyalog kutusundan çalıştırılacak makro seçildikten sonra Çalıştır tuşuna basıldığında makro çalışmaya başlar. Makro çalışırken içerisine kaydedilmiş komutları sırası ile tekrarlar. Makro çalıştırmak için tanımlı bir kısayol tuşu varsa bu kısayol tuşu kullanılarak da makro çalıştırılabilir. Fakat bu kısayol tuşu sadece makronun çalışabileceği çalışma kitabı açıksa aktif olur, çalışma kitabı dışında bu kısayol tuşu makroyu çalıştıramaz.
Makrolara Görünüm menüsü altındaki Makrolar sekmesinden ulaşılmaktadır. Makrolara daha hızlı ve kolay erişim sağlamak için Şerit özelleştirilerek makrolara Şeritte hızlı erişim butonları tanımlanabilir. Şerit, Excel Seçenekleri menüsündeki Şeridi Özelleştir alanından özelleştirilebilmektedir.
Excel Seçenekler penceresinde özelleştirilecek alanın seçiminin yapılması gerekir. Bu pencerede buradaki komutlardan seçim yap açılır menüsünden makrolar başlığı seçilmesi gerekmektedir. Seçim yapıldığında kullanılabilecek makrolar görüntülenecektir. Bu makroların şeritte yer alabilmesi için bir gruba ekli olması gerekir. Gruba eklemek için ilk olarak Şeridi Özelleştir alanından yeni grup oluşturulur, grup oluşturulduktan sonra makrolar bu gruba eklenebilir.
Makro oluşturmanın birden fazla yolu olmasına rağmen tüm makrolar VBA dili ile kodlanırlar. Makrolar VBA diliyle yazılmış olan kodlarına bakarak incelenebilirler. Kaydedilen tüm makroların VBA kodlarını görüntüleyip bu kodlar arasında hata ayıklaması yapmak, gereksiz kod parçacıklarını silmek ve gerekiyorsa koda ilaveler yapmak mümkündür.
Diyalog kutusundan kod incelenmesi yapılmak istenen makro seçilip Düzenle butonuna basılarak seçilen makronun VBA makro dili ile yazılmış koduna erişmek mümkündür. Düzenle butonuna basıldığında açılan pencere VBA editörüdür. Bu editör kullanılarak kod içerisinde hata ayıklama, düzenleme ve silme işlemleri yapılabilir.
VBA editörü ile hem kod düzenlemesi hem de hata ayıklaması yapılabilir. Makroları görüntüle diyalog kutusunda Düzenle tuşuna basılırsa VBA kodunu yeniden düzenlenebilir, Adımla tuşuna basıldığında ise editör hata ayıklama moduna geçer ve program hata ayıklama modunda adım adım çalıştırılır. Adım adım çalışma seçildiğinde makroda kaydedilen işlem adımları sırasıyla ve kullanıcıya bağlı olarak çalıştırılır.
Excelde makrolar oluşturulurken varsayılan olarak mutlak referans kullanılır. Makro program kodlarının mutlak referanslı olarak kaydediliyor olması makrolar çalıştırılırken aktif hücreye bakılmayacağı anlamına gelir. Bu nedenle makro çalıştırılacağı zaman kullanıcı hangi hücreyi seçerse seçsin sonuç değişmeyecektir.
Excelde makrolar oluşturulurken mutlak referans verme varsayılan olarak tanımlanmıştır. Kullanıcı bu ayarı değiştirerek makroların göreli referans ile oluşmasını da sağlayabilmektedir. Bunun için Görünüm Menüsündeki Makrolar sekmesinden Göreli Başvuruları Kullan seçeneği seçilmelidir.
Excelde yazılan makrolar istenildiği zaman kullanıcı tarafından çalıştırılabilmektedir. Aynı zamanda yazılan makroların çalışma kitabının ilk açılışında çalıştırılması da sağlanabilmektedir. Yeni bir çalışma kitabı açıldığında otomatik olarak çalışıp açılan çalışma kitabında istenilen alanları dolduran bir makro, test senaryoları hazırlama, sunum hazırlama gibi zamanlarda kullanışlı olmaktadır.
Excelde yazılan makroların sayısı arttıkça bazı makroların gizlenmesi istenebilir. Özellikle tek başına kullanılmayan, sadece diğer makrolar tarafından kullanılan makroların diyalog kutusunda görünmesi veya çağrılması istenmeyebilir. Makroların görüntülendiği diyalog kutusundan herhangi bir makro gizlenmek istenirse VBA editörü kullanılarak makronun VBA kodu açılır. Makronun VBA kodunun başında Sub MacroAdı() ifadesi yer alır. Bu satırda Sub kelimesinin önüne Private yazıldığında, Private Sub MacroAdı() şeklinde satır güncellendiğinde makro gizlenmiş olur.
Makrolarda Güvenlik
Makrolar kullanıcıların işlerini kolaylaştırmak amacıyla yazılmış çalıştırılabilir komut setleridir. Bu komut setleri çoğu zaman zararsız komutlardan oluşsa da bazen kötü niyetli yazılımcılar tarafından virüs ya da zararlı kod parçacığı haline getirilebilirler. Zararlı kod parçacıkları sisteme ciddi zararlar verebilirken bazen de bilgi çalmak amacıyla oluşturulurlar. Kötü niyetli olarak hazırlanmış makroların çalıştırılmasının engellenmesi için Excel bazı güvenlik önlemlerini kullanıcılara sunar. Excelin makrolarla alakalı sunduğu güvenlik önlemlerinin yanı sıra güncel antivirüs programları ve zararlı yazılım tarama araçları da güvenliği artırmak için kullanılabilir. Excel zararlı makroların çalıştırılarak sistem ve dosya güvenliğinin bozulmasını önlemek için kullanıcıya bazı alternatifler sunar. Bu alternatifleri ya da başka bir deyişle güvenlik ayarlarını kullanıcının kendisi istediği zaman değiştirebilir. Excelde makro güvenliği ile ilgili ayarlara Dosya menüsündeki Excel Seçenekleri sekmesinden erişilebilmektedir.
Makro ayarlarına erişmek için seçenekler menüsündeki Güven Merkezi arayüzü açılır ve sonrasında makro ayarları sekmesi seçilir. Açılan pencerede aktif makro güvenlik ayarı görüntülenir. Excel varsayılan olarak “Bildirimde bulunarak tüm makroları devre dışı bırak” makro ayarı ile çalışır.
Makro ayarları dört farklı seçenek olarak sunulmaktadır. Bu seçenekleri kullanıcı istediği zaman değiştirebilir. Bu seçenekler sırasıyla:
- Bildirimde bulunmadan tüm makroları devre dışı bırak
- Bildirimde bulunarak tüm makroları devre dışı bırak
- Dijital olarak imzalanmış makroların dışında tüm makroları devre dışı bırak
- Tüm makroları etkinleştir
Excelde makro güvenliği, Excel 2010 sürümünden önce sadece makro güvenlik seçenekleri ile kontrol edilmekteydi. Microsoft firması Excel 2010 sürümünden sonra makro oluşturabilecek ve kaydedebilecek dosya uzantıları tanımlaması yapmıştır. Excelde dosya uzantısına bakılarak makro oluşturup oluşturulamayacağı söylenebilmektedir. Kullanıcılar genelde .xlsx uzantılı excel dosyaları ile çalışırlar. Office programlar grubu içerisinde gelen Excel programı ile yeni bir çalışma kitabı açıldığında dosya uzantısı .xlsx olmaktadır. Bu uzantıya sahip dosyalar bir dizi XML nesnesi şekline getirilerek sıkıştırılır ve kaydedilirler. .xlsx uzantılı dosyalarda makrolar kaydedilemezler. Makrolarla çalışmaya imkan veren standart Excel dosya uzantısı. xlsm’dir. .xlsm uzantılı dosyalar .xlsx uzantılı dosyalara benzerler fakat ilaveten makroları oluşturup kaydedebilecek yapıdadırlar.