hocam arada youtube sayfasını aktifleştirilmesi konusunuda hortlakmakta fayda varmıdır :)
Buradaki bir çok hocamız gibi ben de VBA kodlarını hiç bir destek almadan kendi çabalarımla öğrendim. Bunu neden söylüyorum? Öyle derslere kurslara gitmenize gerek olmadığını tek başınıza da başa çıkabileceğinizi size kanıtlamak için söylüyorum.
Hayatta kendime rehber edindiğim çok güzel bir söz var "kaybettiğinde değil vazgeçtiğinde yenilirsin" VBA öğrenmek de böyle bir şey.
Kaybettiğinizde değil vazgeçtiğinizde yenilirsiniz.
Burada sorularınızı dakikalar içinde çözen bunca insanın eminim çöpe giden binlerce projesi vardır. Benim öyle oldu. Tam olarak öğrendiğimi düşündüğüm her zaman "artık biliyorum, ihtiyaçlarımı karşılayacak projeye başlamalıyım" dediğimde karşıma akılalmaz sorunlar çıkıyor çözmeye çalışırken projeyi çöpe çeviriyor ve en sonunda siliyordum. Bu insanda son derece bıkkınlık veren bir hale geliyor.
Fakat vazgeçmeyip çıkan sorunları aşmaya çalıştığınızda sorunun ne kadar da kolay olduğunu anlıyorsunuz.
Buraya kadarki yazdıklarım öğrenme psikolojinizi nasıl inşa etmeniz gerektiği ile ilgiliydi.
Gelelim öğrenmek için gerekli olanlara:
1.) Öncelikle bu işi öğrenmenin bir süreç meselesi olduğunu aklınızdan çıkarmayın.
2.) İleri düzey olmasa da bir makaleyi kabaca anlayabilecek kadar ingilizce bilmek önemli, süreci hızlandırabilmek için. (Kaynakların çoğu ingilizce)
3.) Algoritma mantığı kurmayı öğrenin. (şahsi önerim günlük hayattaki yaptığınız işlerle ilgili algoritmalar üzerinde çalışma şeklinde olabilir.) Ayrıca; İlk öğrenme açısından en popüler örnek "çay demleme" algoritmasıdır.
Hatta yapabiliyorsanız algoritmaları akış şemaları şeklinde çizin. bkz: çay demleme algoritmasına bir
Algoritma öğrenmek programlamada ne işime yarayacak? derseniz; Bilgisayarlar onlara gönderdiğimiz komutları yukarıdan aşağıya olacak şekilde okurlar. Bazı istisnalar dışında bu kural hemen hemen her programlama dilinde aynıdır. Bilgisayara, şunu yap, şunu yap, eğer şu koşul sağlanıyorsa şunu yap, eğer şu koşul sağlanmıyorsa şunu yapma gibi komutlar veriyoruz sadece.
4.) Daha sonra öğrenmeniz gereken şeyler ise kabaca değişkenler, öperatörler, döngüler, karar yapıları, diziler şeklinde olabilir.
5.) Başlıca şeyleri öğrendikten sonra uygulamanızın hangi koda nereden ve ne şekilde erişip erişemeyeceğini bilmeniz olacaktır. (Public Sub, Private Sub gibi kavramlar nedir bilmekte fayda var.)
6.) Yukarıdaki mesajlarda çözüm ekibimizden
Caylak size kabaca bir örnek vermiş. Workbook, Worksheet gibi kodlar belirli sınıfları oluşturur. Ve bu sınıfların bir hiyerarşisi vardır.
Örnek: ws diye bir değişken tanımlayıp buna Sayfa1'i atadınız diyelim. wb diye bir değişken tanımlayıp buna Kitap1 i atadınız diyelim. ws.wb şeklinde gibi bir kullanım yapamazsınız. wb.ws gibi bir kullanıp yapmalısınız. wb içindeki ws'leri kapsar ama ws bir üstündeki wb'yi kapsamaz.
7.) Bu işin biraz daha ilerisi kendi fonksiyonlarınızı yazmaktır. "Public Sub" ya da "Private Sub" gibi kodlar belirli eylemleri yapmanıza yararken "Public Function" ya da "Private Function" gibi kodlar ise size içerisinde uygulayacağınız hesaplamalara göre size değer döndürecektir. Kabaca bir örnek verirsek:
HTML:
8.) Biraz daha karmaşığa doğru koleksiyon, Sözlük, RegExp gibi konular öğrenilebilir.
9.) Bunun daha ilerisi kendi classlarınızı yani sınıflarınızı yazmaktır. Örnek:Workbook sınıfı gibi Worksheet sınıfı gibi.
Buraya kadar geldiğinzde tekrar yazarsınız bunun üzerine tekrar istişare ederiz. :) Bunu burada kısaca anlatabilmek pek mümkün değil. Çünkü classlar kodlama içindeki özgürlüğünüzdür. Her şekilde manipüle edebilirsiniz.
10.) Daha da ilerisi API'lerdir (Application Programming Interface) daha önce ufak bir iki deneme yaptım üzerinde ama hakkında fazlaca bir bilgiye sahip değilim.
Uzun ve yorucu bir okuma olacak ama başlangıç fikirleri açısından benim tecrübelerim bu şekilde.