Excel Makrolarını VBA ile Programlarken Kaçınılması Gereken 4 Hata

Excel Makrolarını VBA ile Programlarken Kaçınılması Gereken 4 Hata

Microsoft Excel zaten yetenekli bir veri analiz aracıdır, ancak Visual Basic for Applications'ta (VBA) basit kod yazarak makrolarla tekrarlayan görevleri otomatikleştirme yeteneği ile çok daha güçlüdür. Ancak yanlış kullanıldığında VBA sorunlara neden olabilir.





Programcı olmasanız bile VBA, elektronik tablolarınıza etkileyici işlevler eklemenize olanak tanıyan basit işlevler sunar.





Excel'de gösterge tabloları oluşturan bir VBA gurusu veya temel hücre hesaplamaları yapan basit komut dosyaları yazan bir acemi olmanız farketmez. Temiz, hatasız kod yazmayı öğrenmek için bu basit programlama tekniklerini izleyin.





VBA'ya Başlarken

VBA sizin için her türlü güzel şeyi yapabilir. Sayfaları değiştiren makrolar yazmaktan VBA komut dosyalarını kullanarak bir Excel elektronik tablosundan e-posta gönderme üretkenliğinizde çok az sınır vardır.

Daha önce Excel'de VBA'da programlama yapmadıysanız, Excel programınızdaki Geliştirici araçlarını etkinleştirmeniz gerekir. İyi haber şu ki, Geliştirici araçlarını etkinleştirmek aslında oldukça kolay. sadece git Dosya > Seçenekler ve daha sonra Şeridi Özelleştir . sadece hareket ettir geliştirici sekmesini sol bölmeden sağa kaydırın.



Onay kutusunda bu sekmenin etkinleştirildiğinden emin olun ve şimdi Excel menünüzde Geliştirici sekmesi görünecektir.

Buradan kod düzenleyici penceresine girmenin en kolay yolu, sadece Kodu Görüntüle altındaki düğme Kontroller Geliştirici menüsünde.





Artık VBA kodu yazmaya hazırsınız! Bu sekme, VBA'ya erişeceğiniz yerin yanı sıra Excel'de makro kaydetme . Artık Excel çalışmaya hazır olduğuna göre, kaçınılması gereken bazı yaygın hataları ve bunları önlemenin yollarını gözden geçirelim.

1. Korkunç Değişken İsimleri

Artık kod penceresinde olduğunuza göre, VBA kodu yazmaya başlama zamanı. İster VBA'da ister başka bir dilde olsun, çoğu programdaki ilk önemli adım, değişkenlerinizi tanımlamaktır. Değişkenleri doğru şekilde adlandırmamak, yeni geliştiricilerin yaptığı en yaygın programlama hatalarından biridir.





eski facebook düzenine nasıl geçilir 2020

Onlarca yıllık kod yazım boyunca, değişken adlandırma kuralları söz konusu olduğunda birçok düşünce okuluna rastladım ve birkaç kuralı zor yoldan öğrendim. Değişken adları oluşturmak için bazı hızlı ipuçları:

  • Onları mümkün olduğunca kısa yapın.
  • Onları mümkün olduğunca açıklayıcı yapın.
  • Bunlara değişken türüyle (boolean, tamsayı, vb.) önsöz verin.

İşte PC bilgilerini toplamak için Excel'den WMIC Windows çağrıları yapmak için sık kullandığım bir programdan örnek bir ekran görüntüsü.

Modül veya nesne içindeki bir fonksiyonun içindeki değişkenleri kullanmak istediğinizde (bunu aşağıda açıklayacağım), bildirimin önüne şunu ekleyerek onu bir 'genel' değişken olarak bildirmeniz gerekir. Halk . Aksi takdirde, değişkenler önlerine word ile yazılarak bildirilir. Hiçbiri .

Gördüğünüz gibi, değişken bir tamsayıysa, başında int . Bu bir dize ise, o zaman P . Bu, daha sonra programlama yaparken yardımcı olan kişisel bir tercihtir çünkü adına bakarak değişkenin ne tür verileri tuttuğunu her zaman bilirsiniz.

Ayrıca, Excel çalışma kitabınızdaki sayfaları adlandırdığınızdan emin olun.

Bu şekilde, Excel VBA kodunuzdaki sayfa adına başvurduğunuzda, mantıklı bir addan bahsediyorsunuz demektir. Yukarıdaki örnekte, Ağ bilgilerini çektiğim bir sayfam var, bu yüzden sayfaya 'Ağ' adını verdim. Ağ sayfasına ne zaman başvurmak istersem, hangi sayfa numarasına bakmadan hızlı bir şekilde yapabilirim.

2. Döngü Yapmak Yerine Kırmak

Yeni VBA programcılarının kod yazmaya başladıklarında karşılaştıkları en yaygın sorunlardan biri döngülerle düzgün bir şekilde uğraşmaktır.

Döngü, Excel'de çok yaygındır, çünkü çoğu zaman tüm bir satırda veya sütunda veri değerlerini işlersiniz, bu nedenle hepsini işlemek için döngü yapmanız gerekir.

Yeni programcılar genellikle belirli bir koşul doğru olduğunda bir döngüden (VBA For döngüler veya VBA Do While döngüleri) anında çıkmak isterler.

İşte bir VBA döngüsünü kırmak için kullanılan bu yöntemin bir örneği.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Yeni programcılar bu yaklaşımı benimser çünkü kolay. Bir döngüyü açıkça kırmayı deneyin ve kaçının.

Çoğu zaman, bu 'aradan' sonra gelen kodun işlenmesi önemlidir. Bir döngüyü yarıda bırakmak istediğiniz koşulları ele almanın çok daha temiz ve daha profesyonel bir yolu, bu çıkış koşulunu VBA While deyimi gibi bir şeye eklemektir.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Bu, kodunuzun mantıksal bir akışını sağlar. Şimdi kod döngüye girecek ve 6'ya ulaştığında duracak. Döngünün ortasında garip EXIT veya BREAK komutlarını eklemeye gerek yok.

3. Dizileri Kullanmamak

Yeni VBA programcılarının yaptığı bir başka ilginç hata da, hesaplama işlemi sırasında satırlar ve sütunlar arasında filtre uygulayan çok sayıda iç içe döngünün içindeki her şeyi işlemeye çalışmaktır.

Bu da büyük performans sorunlarına yol açabilir. Bir sütunda dolaşmak ve her seferinde değerleri çıkarmak, işlemciniz için bir katildir. Uzun sayı listelerini işlemenin daha etkili bir yolu bir dizi kullanmaktır.

Daha önce hiç dizi kullanmadıysanız, korkmayın. Bir diziyi, içine bilgi koyabileceğiniz belirli sayıda 'küp' içeren bir buz kalıbı olarak hayal edin. Küpler 1'den 12'ye kadar numaralandırılmıştır ve bu şekilde onlara veri 'koyabilirsiniz'.

Sadece yazarak bir diziyi kolayca tanımlayabilirsiniz. Dim arrMyArray(12) tamsayı olarak .

Windows 7 için önyüklenebilir bir dvd nasıl yapılır

Bu, doldurmanız için 12 yuvalı bir 'tepsi' oluşturur.

Dizi içermeyen bir satır döngü kodu şöyle görünebilir:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

Bu örnekte, kod, aralıktaki her bir hücreyi işliyor ve sıcaklık hesaplamasını gerçekleştiriyor.

Bu aynı değerler üzerinde başka bir hesaplama yapmak isterseniz, işlem hantal olacaktır. Bu kodu kopyalamanız, tüm bu hücreleri işlemeniz ve yeni hesaplamanızı yapmanız gerekir. Hepsi bir değişiklik için!

İşte bir dizi kullanarak daha iyi bir örnek. Öncelikle dizimizi oluşturalım.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

NS x-1 dizi öğesini işaret etmek için yalnızca For döngüsü 1'den başladığı için gereklidir. Dizi öğelerinin 0'dan başlaması gerekir.

Artık diziye sahip olduğunuza göre, içeriği işlemek çok basit.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Bu örnek tüm satır dizisinden geçer ( UBound size dizideki veri değerlerinin sayısını verir), sıcaklık hesaplamasını yapar ve ardından onu adı verilen başka bir diziye koyar. arrMyTemps .

4. Çok Fazla Referans Kullanmak

İster tam teşekküllü Visual Basic veya VBA'da programlama yapıyor olun, belirli özelliklere erişmek için 'referanslar' eklemeniz gerekir.

Referanslar, o dosyayı etkinleştirirseniz dokunabileceğiniz işlevselliklerle dolu bir tür 'kütüphaneler' gibidir. Referansları Geliştirici görünümünde şuraya tıklayarak bulabilirsiniz: Aletler menüde ve ardından üzerine tıklayarak Referanslar .

Bu pencerede bulacağınız, mevcut VBA projeniz için halihazırda seçili olan tüm referanslardır.

Gereksiz referanslar sistem kaynaklarını boşa harcayabileceğinden bu listeyi kontrol etmelisiniz. Herhangi bir XML dosyası işleme kullanmıyorsanız, neden Microsoft XML'i seçili tutuyorsunuz? Bir veritabanıyla iletişim kurmuyorsanız, Microsoft DAO'yu vb. kaldırın.

Bu seçilen referansların ne yaptığından emin değilseniz, F2 ve Nesne Gezgini'ni göreceksiniz. Bu pencerenin üst kısmında, göz atılacak referans kitaplığını seçebilirsiniz.

Seçildikten sonra, hakkında daha fazla bilgi edinmek için tıklayabileceğiniz tüm nesneleri ve mevcut işlevleri göreceksiniz.

Örneğin, DAO kitaplığına tıkladığımda, bunun veritabanlarına bağlanmak ve onlarla iletişim kurmakla ilgili olduğu hemen ortaya çıkıyor.

Programlama projenizde kullandığınız referans sayısını azaltmak mantıklıdır ve genel uygulamanızın daha verimli çalışmasına yardımcı olacaktır.

iphone 6s plus hoparlör çalışmıyor

Excel VBA'da Programlama

Aslında Excel'de kod yazma fikri birçok insanı korkutuyor, ancak bu korku gerçekten gerekli değil. Visual Basic for Applications, öğrenmesi çok basit bir dildir ve yukarıda bahsedilen temel ortak uygulamaları izlerseniz, kodunuzun temiz, verimli ve kolay anlaşılır olmasını sağlarsınız.

Yine de orada durma. ile güçlü bir Excel becerileri temeli oluşturun. Yeni başlayanlar için VBA eğitimi . Ardından, elektronik tablolarınızı otomatikleştirmenize yardımcı olacak kaynaklarla VBA ve makrolar hakkında bilgi edinmeye devam edin.

Paylaş Paylaş Cıvıldamak E-posta Windows 11'e Yükseltmeye Değer mi?

Windows yeniden tasarlandı. Ancak bu sizi Windows 10'dan Windows 11'e geçmeye ikna etmek için yeterli mi?

Sonrakini Oku
İlgili konular
  • üretkenlik
  • Programlama
  • Programlama
  • Visual Basic Programlama
  • Microsoft Excel
Yazar hakkında Anthony Grant(40 Makale Yayımlandı)

Anthony Grant, Programlama ve Yazılımı kapsayan serbest çalışan bir yazardır. Programlama, Excel, yazılım ve teknoloji ile uğraşan bir Bilgisayar Bilimi uzmanıdır.

Anthony Grant'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın