Microsoft Excel'de Makro Kaydediciyi Kullanma

İçindekiler:

Anonim

Excel'i ve VBE'yi (Visual Basic Editor) açın. Değiştirilmedikçe, VBE penceresi şunları içerir: Proje Gezgini pencere ve Özellikler penceresi (bunlara şuradan erişilebilir: görüş Menü).

Proje Gezgini: Dosya yöneticisi gibi çalışır. Çalışma kitabınızdaki kodda gezinmenize yardımcı olur.

Özellikler Penceresi: O anda aktif olan nesnenin özelliklerini gösterir (örn. Sayfa1) geçerli çalışma kitabının (örn.1 kitap).

Bu yazımızda Excel'de makro kaydetmenin ne kadar kolay olduğunu öğreneceğiz.

Alıştırma 1: Bir Makro Kaydetme.

Bu alıştırma, bir makro kaydedildiğinde ne olduğunu gösterir ve mutlak ve göreli referansları kaydetme arasındaki farkı gösterir.

1. Yeni bir çalışma kitabındaki boş bir çalışma sayfasında hücreyi seçin. C10

2. Başlat Makro Kaydedici makroyu kaydetme seçeneği ile Bu Çalışma Kitabı. Bu noktada VBE yeni bir Modüller dosya. Gidip bakmak oldukça güvenli - eylemleriniz kaydedilmeyecek. Tıkla [+] klasörün yanında ve VBE'nin klasöre bir modül yerleştirdiğini ve adlandırdığını görün Modül1. Kod penceresini açmak için modül simgesine çift tıklayın. Excel'e geri dönün.

3. Göreceli Referans üzerindeki düğme Kaydetmeyi bırak araç çubuğu BASILI DEĞİL.

4. Hücreyi seçin B5 ve kaydediciyi durdurun.

5. VBE'ye geçin ve koda bakın:

Aralık("B5").Seçin

6. Şimdi tam olarak aynı şekilde başka bir makro kaydedin, ancak bu sefer Göreceli Referans düğmeye basıldı.

7. VBE'ye geçin ve koda bakın:

ActiveCell.Offset(-5, -1).Aralık("A1").Seç

8. Şimdi başka bir makro kaydedin, ancak B5 hücresini seçmek yerine B5'ten başlayarak 3x3 hücre bloğunu seçin (B5:F7 hücrelerini seçin)

9. VBE'ye geçin ve koda bakın:

ActiveCell.Offset(-5, -1).Range("A1:B3").Seç

10. İlk önce C10'dan farklı bir hücre seçerek makroları oynatın (Makro2 ve Makro3 için başlangıç ​​hücresi satır 6 veya altında olmalıdır - aşağıdaki adım 11'e bakın)

makro1 - seçimi her zaman B5'e taşır
makro2 - seçimi, seçili hücrenin 5 satır yukarı ve 1 sütun solundaki bir hücreye taşır.
makro3 - her zaman seçili hücrenin solundan 5 satır yukarı ve 1 sütundan başlayarak altı hücreli bir blok seçer.

11. Macro2'yi çalıştırın, ancak 5. satırdaki veya üstündeki bir hücreyi seçerek bir hatayı zorlayın. Makro, var olmayan bir hücreyi seçmeye çalışır, çünkü kodu, başlangıç ​​noktasının 5 satır yukarısındaki bir hücreyi seçmesini söyler ve bu, sayfanın en üstündedir. basmak hata ayıklama makronun soruna neden olan kısmına götürülecektir.

NOT: VBE Hata Ayıklama modundayken, soruna neden olan kod satırı sarı renkle vurgulanır. Devam etmeden önce makroyu "sıfırlamanız" gerekir. Tıkla Sıfırla VBE araç çubuğundaki düğmesine basın veya Çalıştır > Sıfırla. Sarı vurgu kaybolur ve VBE Hata Ayıklama modundan çıkar.

12. Bunun gibi kullanıcı hatalarını denemek ve tahmin etmek önemlidir. En basit yol, kodu hataları yok sayacak ve bir sonraki göreve geçecek şekilde değiştirmektir. Bunu satırı ekleyerek yapın…

Hatada Devam Et Sonraki

… makronun ilk satırının hemen üstünde (Sub Macro1() satırının altında)

13. Çalıştır makro2 daha önce olduğu gibi, sayfa üzerinde çok yüksekten başlayarak. Bu sefer yazdığınız satır Excel'e yürütemediği kod satırını yoksaymasını söyler. Hata mesajı yok ve makro elinden geleni yaptıktan sonra çıkıyor. Hataları işlemek için bu yöntemi dikkatli kullanın. Bu çok basit bir makro. Hatalar basitçe yoksayılırsa, daha karmaşık bir makro muhtemelen beklendiği gibi çalışmayacaktır. Ayrıca, kullanıcının bir şeylerin yanlış gittiğine dair hiçbir fikri yoktur.

14. Kodu değiştirin makro2 böylece daha karmaşık bir hata işleyici eklemek için:

Alt Makro2()

Hatada ErrorHandler'a Git

ActiveCell.Offset(-5, -1).Aralık("A1").Seç

Alt Çıkış

Hata İşleyicisi:

MsgBox "5. satırın altında başlamalısınız"

Alt Bitiş

15. Bu sefer, bir şeyler ters gittiğinde kullanıcıya bir iletişim kutusu sunulur. Hata yoksa Exit Sub satırı makronun işini yaptıktan sonra bitmesine neden olur - aksi takdirde kullanıcı hata olmasa bile mesajı görür.

Kaydedilmiş Makroları Geliştirme

VBA'nın temellerini öğrenmenin en iyi yolu bir makro kaydetmek ve Excel'in kendi kodunu nasıl yazdığını görmektir. Ancak çoğu zaman, kaydedilen makrolar, gerekenden çok daha fazla kod içerir. Aşağıdaki alıştırmalar, kaydedilmiş bir makro tarafından üretilen kodu nasıl iyileştirebileceğinizi ve düzene sokabileceğinizi gösterir.

Alıştırma 2: Kaydedilmiş Makroları İyileştirme

Bu alıştırma, makrolar kaydedildiğinde, genellikle gereğinden fazla kodun üretildiğini gösterir. Kodun tam olarak belirtilmesi için With ifadesinin kullanımını gösterir.

1. Herhangi bir hücreyi veya hücre bloğunu seçin.

2. Makro kaydediciyi başlatın ve makro FormatCells'i çağırın. Göreceli Referanslar ayarı ilgili olmayacaktır.

3. Git Biçim > Hücreler > Yazı Tipi ve Seç Times New Roman ve kırmızı.
git desenler ve Seç Sarı.
git hizalama ve Seç Yatay, Merkez
git Sayı ve Seç Para birimi.

4. Tıklayın Tamam ve kaydediciyi durdurun.

5. Geri alma düğmesi (veya Ctrl+Z) çalışma sayfasında yaptığınız değişiklikleri geri almak için.

6. Bir hücre bloğu seçin ve BiçimHücreleri makro. Geri alınamayacağını unutmayın! Biçimlendirmenin sonucunu kontrol etmek için hücreleri yazın.

7. Koda bakın:

Alt FormatSeçimi()

Selection.NumberFormat = "$#,##0.00"

Seçim ile

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlBottom

.WrapText = Yanlış

.Oryantasyon = 0

.ShrinkToFit = Yanlış

.MergeCells = Yanlış

İle bitmek

Selection.Font ile

.Name = "Times New Roman"

.FontStyle = "Normal"

.Boyut = 10

.Üzeri çizili = Yanlış

.Üst simge = Yanlış

.Alt simge = Yanlış

.OutlineFont = Yanlış

.Gölge = Yanlış

.Underline = xlUnderlineStyleYok

.ColorIndex = 3

İle bitmek

Select.Interior ile

.ColorIndex = 6

.Desen = xlKatı

.PatternColorIndex = xlOtomatik

İle bitmek

Alt Bitiş

Yazı Tipini Değiştir Times New Roman
Yazı Tipi Rengini şu şekilde değiştirin: kırmızı
Dolgu Rengini şu şekilde değiştirin: Sarı
Tıkla Merkez buton
Tıkla Para birimi buton

13. Koda bakın. Yine de mutlaka istemediğiniz birçok şey elde edersiniz. Excel her şeyi kaydediyor varsayılan ayarlar. Bunların çoğunu silmek güvenlidir.

14. Renkleri, yazı tipini, sayı biçimini vb. değiştirmek için doğrudan kodu düzenlemeyi deneyin.

Alıştırma 3: Kaydedilen Bir Makroyu İzleyin

Bu alıştırma, kaydedilirken makro yapısını izleyerek öğrenebileceğinizi gösterir. Ayrıca, bazen With ifadesinin uygun olmadığı durumlara da bir örnektir.

1. Dosyayı açın VBA01.xls.

Bu çalışma sayfası görsel olarak iyi ve kullanıcı tarafından anlaşılabilir olsa da, boş hücrelerin varlığı sorunlara neden olabilir. Verileri filtrelemeyi deneyin ve ne olduğunu görün. git Veri > Filtre > Otomatik Filtre ve Bölge veya Ay'a göre filtreleyin. Excel'in, kullanıcının yaptığı varsayımların aynısını yapmadığı açıktır. Boş hücreler doldurulmalıdır.

2. Excel ve VBE pencerelerini (dikey olarak) yan yana olacak şekilde döşeyin.

3. Veri içindeki herhangi bir hücreyi seçin. Boş bir hücre ise, veri içeren bir hücreye bitişik olmalıdır.

4. Makro kaydediciyi başlatın ve makroyu çağırın DoldurBoşHücreler. Kayda ayarla Göreli Referanslar.

5. VBE penceresinde, düzenleme bölmesini açmak için mevcut çalışma kitabının modülünü (Modül1) bulun ve çift tıklayın, ardından Proje Gezgini penceresini ve Özellikler penceresini kapatın (yalnızca yer açmak için).

6. Yeni makroyu aşağıdaki gibi kaydedin:

Aşama 1. Ctrl+* (geçerli bölgeyi seçmek için)
Adım 2. Düzenle > Git > Özel > Boşluklar > Tamam (geçerli bölgedeki tüm boş hücreleri seçmek için)
Adım 3. Yazın =[YukarıOk] sonra basın Ctrl+Enter (yazınızı seçili tüm hücrelere yerleştirmek için)
Adım 4. Ctrl+* (geçerli bölgeyi tekrar seçmek için)
Adım 5. Ctrl+C (seçimi kopyalamak için - herhangi bir yöntem yapacaktır)
Adım 6. Düzenle > Özel Yapıştır > Değerler > Tamam (verileri aynı yere yapıştırmak, ancak formülleri atmak için)
Adım 7. ESC (Kopyalama Modundan çıkmak için)
Adım 8. Kaydı Durdurun.

7. Koda bakın:

Alt FillEmptyCells()

Seçim.GeçerliBölge.Seçim

Selection.SpecialCells(xlCellTypeBlanks).Seçim

Selection.FormulaR1C1 = "=R[-1]C"

Seçim.Geçerli Bölge.Seçim

Seçim.Kopyala

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _

Yanlış, Devir:= Yanlış

Application.CutCopyMode = Yanlış

Alt Bitiş

8. Tek bir kod satırının yeni bir satıra bölünmesini belirtmek için boşluk ve alt çizgi “ _” kullanımına dikkat edin. Bu Excel olmadan, kodu iki ayrı ifade olarak ele alırdı.

9. Bu makro iyi düşünülmüş komutlarla kaydedildiğinden, çok az gereksiz kod vardır. İçinde Özel yapıştır “xlValues” kelimesinden sonraki her şey silinebilir.

10. Makroyu deneyin. Ardından Otomatik Filtre aracını kullanın ve farkı not edin.