Excel için makrolar nasıl yazılır? Excel'deki Makrolar - Kullanım talimatları. Sekmelere makro düğmeleri ekleme

Konu 2.3. Sunum yazılımı ve ofis programlamanın temelleri

Konu 2.4. Veritabanı yönetim sistemleri ve uzman sistemler

2.4.11. "Training_students" ana düğme formuna sahip eğitim veritabanı - İndir

VBA Programlama ve Makrolar

2.3. Sunum yazılımı ve ofis programlamanın temelleri

2.3.7. Ofis Programlama Temelleri

Uygulamalar için BASIC görsel programlama dili: Visual Basic for Applications (VBA)

VBA, VB uygulamaları oluşturmaya yönelik neredeyse tüm araçları içeren görsel programlama dili Visual Basic'in (VB) bir alt kümesidir.

VBA, VBA'nın doğrudan Office nesneleriyle çalışacak şekilde tasarlanmış olması ve Office uygulamalarından bağımsız bir proje oluşturmak için kullanılamaması açısından VB programlama dilinden farklıdır. Böylece VBA'da programlama dili VB'dir ve programlama ortamı herhangi bir MS Office uygulamasından etkinleştirilebilen bir VB editörü biçiminde uygulanır.

Örneğin PowerPoint'ten VBA düzenleyicisini açmak için Araçlar / Makro / VBA Düzenleyici komutunu çalıştırmanız gerekir. Görünüm menüsünde Microsoft PowerPoint komutunu seçerek veya Alt + F11 tuş kombinasyonuna basarak düzenleyiciden uygulamaya dönebilirsiniz.

Yerleşik VBA düzenleyici kontrol kümesini ve form düzenleyiciyi kullanarak kullanıcı, Kullanıcı arayüzü ile geliştirilen proje için ekran formu. Kontroller nesnelerdir ve her nesnenin tanımlanmış bir dizi olası olayı vardır (örneğin, fareye tıklamak veya çift tıklamak, bir tuşa basmak, bir nesneyi sürüklemek vb.).

Her olay belirli program eylemlerinde (yanıtlar, tepkiler) kendini gösterir. Kullanıcı formu, uygulama iletişim pencereleri oluşturmanıza olanak tanır. VBA programlama dili, Excel'de kullanıcı işlevleri oluşturmak gibi program kodunu yazmak için kullanılır.

VBA programlama sisteminin Office nesneleri ile çalışacak şekilde tasarlanmış olması, geliştirme faaliyetlerinin otomatikleştirilmesinde etkin bir şekilde kullanılmasına olanak tanır. çeşitli türler belgeler.

VBA'da kullanıcı işlevleri oluşturmaya yönelik algoritmaya bakalım:

1. Araçlar / Makro / Visual Basic Düzenleyici komutunu çalıştırarak veya Alt+F11 tuşlarına basarak VBA kod düzenleyici penceresini açın.

2. Editör menü öğesi Ekle / Modül'ü seçin.

3. Daha sonra Ekleme / Prosedür işlemini gerçekleştirin. Açılan Prosedür Ekle iletişim kutusunda, işlevin adını girin (örneğin, SUM5) ve anahtarları ayarlayın: Tür – İşlev konumuna; Kapsam (Kapsam) - Genel (Genel) konumuna gelin ve Tamam'a tıklayın.


Pirinç. 1.

4. VBA programlamanın düzenleyici penceresinde bir işlev şablonu görünecektir: başlık - Genel İşlev SUM5() ve bitiş - Son İşlev, bunların arasına işlev gövde kodunu yerleştirmeniz gerekir.


Pirinç. 2.

5. Daha sonra, fonksiyon parametrelerinin bir listesini giriyoruz, örneğin parantez içinde (x, y, z, i, j), veri tipini (doğru hesaplamalar için) ve fonksiyon tarafından döndürülen değerin tipini belirtiyoruz (biz bu örnekte girmeyeceğim). Ek olarak fonksiyonun gövdesini de tanıtıyoruz, örneğin SUM5 = x + y + z + i + j. Sonuç olarak aşağıdaki program metnini elde ederiz:

Genel İşlev SUM5(x, y, z, i, j)
TOPLA5 = x + y + z + i + j
Son İşlev

6. Pencereye dönüş Excel uygulamalarıörneğin beş değeri toplamamız gerekiyor.

7. “Ekle/Fonksiyon”u çalıştırın ve açılan fonksiyon sihirbazı penceresinde “Kullanıcı tanımlı” kategorisini seçin ve “Bir fonksiyon seçin” penceresinde SUM5'i seçin ve Tamam'a tıklayın.



Pirinç. 3.



Pirinç. 4.

Makrolar

Makro Oluşturma

A1, B1 hücrelerindeki iki sayıyı otomatik olarak toplayacak bir makro oluşturalım ve sonucu C1 hücresine yerleştirelim, ayrıca C1 hücresini turkuaz renkle dolduralım.

Görev için makro oluşturma algoritması:

1. Araçlar/Makro'yu seçin, Kaydı Başlat.

2. Makro adı alanına makro için bir ad girin. Makro adının ilk karakteri bir harf olmalıdır. Makro adında boşluklara izin verilmez; Alt çizgileri sözcük ayırıcı olarak kullanabilirsiniz.

3. Klavye kısayolunu kullanarak makro çalıştırmak için Klavye kısayolu alanına bir harf girin. CTRL+ harf (küçük harfler için) veya CTRL+SHIFT+ harf (büyük harfler için) kombinasyonlarını kullanabilirsiniz; burada harf, klavyedeki herhangi bir harf tuşudur. Seçilen klavye kısayolu standart klavye kısayollarını geçersiz kıldığından standart bir klavye kısayolu seçmeyin Microsoft Excel o zamanlar bu kitapla.

4. "Kaydet" alanında makroyu kaydetmek istediğiniz çalışma kitabını seçin. Makroyu "Bu Çalışma Kitabı"na kaydedin. Oluşturmak için kısa açıklama Makroyu açmak için Açıklama alanına gerekli metni girin. Ekran görüntüsünde “Makro Kaydet” iletişim kutusunun doldurulmasına ilişkin bir örnek gösterilmektedir


Pirinç. 5.

5. Tamam'a tıklayın.

6. Kaydetmek istediğiniz makro komutlarını yürütün.


Pirinç. 6.

7. Kayan işletim sistemi araç çubuğundaki Kaydı Durdur düğmesini (Kaydı Durdur) veya Araçlar / Makro / Makroyu Durdur'u tıklayın.

Bir makronun kaydı tamamlandığında, makrolar listesinde kendi adının altında görünür.

VBA editörü, gerçekleştirilen eylemlere göre bir dizi makro komutu veya programı otomatik olarak kaydetti (Şekil 7.).



Pirinç. 7.

Bir makroyu çağırmak için Araçlar / Makro / Makrolar komutunu çalıştırmanız gerekir. Bundan sonra, makro listesinin bulunduğu iletişim kutusunda onu ada göre bulabilir ve Çalıştır düğmesini tıklayabilirsiniz.

Makroyu çalıştırmak için araç çubuğu düğmesi atama

Makro, yerleşik araç çubuğundaki düğme kullanılarak başlatılabilir; bunu yapmak için yapmanız gerekenler:

  1. Araçlar menüsünden Ayarlar'ı seçin.
  2. Ayarlar iletişim kutusunda, Komutlar sekmesini seçin ve Kategoriler listesinden Makrolar seçeneğini seçin ve Komutlar listesinden “Özel Düğme”yi seçin.
  3. Komutlar listesinden özel düğmeyi araç çubuğuna sürüklemek için farenizi kullanın.
  4. Bu düğmeye sağ tıklayın ve Makro Ata'yı seçin. içerik menüsü.
  5. Makro adı alanına makro için bir ad girin.

Bir makroyu çalıştırmak için grafik nesnesinin bir alanını atama:

  1. Bir grafik nesnesi oluşturun.
  2. Bağlam menüsünü seçilen grafik nesnesine uygulayın.
  3. Bağlam menüsünden Makro ata komutunu seçin.
  4. Görüntülenen Nesneye Makro Ata iletişim kutusunda, Makro adı alanına makronun adını girin ve ardından Tamam'ı tıklayın.

Bir makroyu düzenlemek VBA düzenleyicisi kullanılarak gerçekleştirilir, bunu yapmak için aşağıdakileri yapmanız gerekir:

  1. Araçlar / Makrolar / Makrolar komutunu seçin.
  2. Değiştirmek istediğiniz makronun adını Ad listesinden seçin.
  3. Düzenle düğmesine tıklayın, seçilen makronun Visual Basic'te yazılmış komutlarını düzenleyebileceğiniz bir Visual Basic penceresi açılacaktır.


Bir makroyu kaldırmak:

  1. Araçlar menüsünden Makrolar'ı ve ardından Makrolar'ı seçin.
  2. Geçerli çalışma kitabındaki makrolar listesinde silmek istediğiniz makroyu seçip Sil düğmesini tıklatmalısınız.

Makroyu Yeniden Adlandırma

Bir makroyu yeniden adlandırmak için makro düzenleme moduna girmeli ve program metnindeki başlığı değiştirmelisiniz. Yeni ad, makro listelerinde otomatik olarak eskisinin yerini alacak ve kısayol tuşları, makroyu yeni adla çağıracaktır.

İlk olarak, terminoloji hakkında biraz.

Makro- bu Excel'in yerleşik dilinde yazılmış koddur VBA(Uygulama için Visual Basic). Makrolar manuel olarak oluşturulabileceği gibi, makro kaydedici adı verilen bir cihaz kullanılarak otomatik olarak kaydedilebilir.

Makro kaydedici Excel'de yaptığınız her şeyi adım adım kaydeden ve bunları VBA koduna dönüştüren bir Excel aracıdır. Makro kaydedici, gerektiğinde daha sonra düzenleyebileceğiniz çok ayrıntılı kodlar üretir (daha sonra göreceğimiz gibi).

Kaydedilen makro sınırsız sayıda çalıştırılabilir ve Excel kaydedilen tüm adımları tekrarlayacaktır. Bu, VBA hakkında hiçbir şey bilmiyor olsanız bile, adımlarınızı kaydedip daha sonra yeniden kullanarak bazı görevleri otomatikleştirebileceğiniz anlamına gelir.

Şimdi konuya dalalım ve Excel'de bir makronun nasıl kaydedileceğini görelim.

Menü şeridinde Geliştirici sekmesini göster

Bir makroyu kaydetmeden önce Excel menü şeridine bir Geliştirici sekmesi eklemeniz gerekir. Bunu yapmak için şu adımları izleyin:

Sonuç olarak menü şeridinde “Geliştirici” sekmesi görünecektir.

Excel'de Makro Kaydetmek

Şimdi bir hücreyi seçip içine metin giren "Excel" gibi çok basit bir makro yazalım.

Böyle bir makroyu kaydetme adımları şunlardır:

Tebrikler! Az önce Excel'de ilk makronuzu kaydettiniz. Makro yararlı bir şey yapmasa da, makro kaydedicinin Excel'de nasıl çalıştığını anlamamıza yardımcı olacaktır.

Şimdi makro kaydedicinin kaydettiği koda bakalım. Kod düzenleyiciyi açmak için şu adımları izleyin:


Çalıştır butonuna tıkladığınızda A2 hücresine "Excel" yazısının ekleneceği ve A3 hücresinin seçileceğini göreceksiniz. Bu milisaniyeler içinde gerçekleşir. Ancak aslında makro, kaydedilen eylemleri sırayla gerçekleştirdi.

Not. Ayrıca Ctrl + Shift + N klavye kısayolunu kullanarak da bir makro çalıştırabilirsiniz (Ctrl ve Shift tuşlarını basılı tutun ve ardından N tuşuna basın). Bu, makroyu kaydederken ona atadığımız etiketin aynısıdır.

Makro kaydı ne işe yarar?

Şimdi kod düzenleyiciye gidelim ve elimizde ne olduğunu görelim.

Excel'de VB düzenleyiciyi açma adımları şunlardır:

  1. Kod grubunda Visual Basic düğmesini tıklayın.

Ayrıca Alt + F11 tuş kombinasyonunu kullanarak VBA kod düzenleyicisine gidebilirsiniz.

  • Menü çubuğu: VB editörüyle çalışırken kullanabileceğiniz komutları içerir.
  • Araç Çubuğu- bir panele benziyor hızlı erişim Excel'de. Sık kullandığınız ek araçları ekleyebilirsiniz.
  • Proje Gezgini- Burada Excel tüm çalışma kitaplarını ve her çalışma kitabındaki tüm nesneleri listeler. Örneğin 3 çalışma sayfası olan bir çalışma kitabımız varsa Project Explorer'da görünecektir. Burada modüller, kullanıcı formları ve sınıf modülleri gibi birkaç ek nesne vardır.
  • Kod Penceresi- VBA kodunun kendisi bu pencerede bulunur. Proje gezgininde listelenen her nesne için çalışma sayfaları, çalışma kitapları, modüller vb. gibi bir kod penceresi vardır. Bu dersimizde kaydedilen makronun modül kod penceresinde olduğunu göreceğiz.
  • Özellikler penceresi- bu pencerede her nesnenin özelliklerini görebilirsiniz. Bu pencereyi sıklıkla nesneleri etiketlemek veya özelliklerini değiştirmek için kullanırım.
  • Acil Pencere(önizleme penceresi) - İlk aşamada buna ihtiyacınız olmayacak. Adımları test etmek istediğinizde veya hata ayıklama sırasında kullanışlıdır. Varsayılan olarak görüntülenmez ve Görünüm sekmesine tıklayıp Anlık Pencere seçeneğini seçerek görüntüleyebilirsiniz.

"EnterText" makrosunu kaydettiğimizde VB editöründe aşağıdakiler gerçekleşti:

  • Yeni bir modül eklendi.
  • Makro belirttiğimiz adla kaydedildi - "InputText"
  • Kod penceresine yeni bir prosedür eklendi.

Yani bir modüle çift tıklarsanız (bizim durumumuzda modül 1), aşağıda gösterildiği gibi bir kod penceresi görünecektir.

Makro kaydedici tarafından kaydedilen kod:

SubTextEnter() " "TextEnter Makro " " Range("A2").Select ActiveCell.FormulaR1C1 = "Excel" Range("A3").Select End Sub

VBA'da " (kesme işareti) sonrasında gelen satırlar çalıştırılmaz. Bu yalnızca bilgilendirme amaçlı bir yorumdur. Bu kodun ilk beş satırını kaldırırsanız makro çalışmaya devam eder.

Şimdi her kod satırını inceleyelim ve neyi ve nedenini açıklayalım.

Kod şununla başlar: Alt ardından makro adı ve boş parantez gelir. Sub, altprogramın kısaltmasıdır. VBA'daki her alt rutin (aynı zamanda prosedür olarak da adlandırılır) şununla başlar: Alt Ve biter Son Alt.

  • Range("A2").Select - Bu satır A2 hücresini seçer.
  • ActiveCell.FormulaR1C1 = "Excel" - Bu satır, etkin hücreye "Excel" metnini girer. İlk adım olarak A2 hücresini seçtiğimiz için aktif hücremiz oluyor.
  • Aralık("A3").Seç - A3 hücresini seçin. Bu, A3 hücresinin seçilmesiyle sonuçlanan metni girdikten sonra Enter tuşuna bastığımızda olur.

Umarım Excel'de bir makronun nasıl kaydedileceği konusunda temel bir anlayışa sahipsiniz.

Bir makro kaydedici aracılığıyla kaydedilen kodun genellikle verimli veya optimize edilmiş kod olmadığını lütfen unutmayın. Makro kaydedici sıklıkla ekstra gereksiz adımlar ekler. Ancak bu, makro kaydedici kullanmanıza gerek olmadığı anlamına gelmez. VBA'yı yeni öğrenenler için makro kaydedici, VBA'da her şeyin nasıl çalıştığını analiz etmenin ve anlamanın harika bir yolu olabilir.

Mutlak ve bağıl makro kaydı

Excel'deki mutlak ve göreli bağlantıları zaten biliyor musunuz? Bir makroyu kaydetmek için mutlak bir başvuru kullanırsanız VBA kodu her zaman kullandığınız hücrelerin aynısına başvurur. Örneğin, A2 hücresini seçip "Excel" metnini girerseniz, her seferinde - çalışma sayfasının neresinde olursanız olun ve hangi hücre seçilirse seçilsin, kodunuz "Excel" metnini A2 hücresine girecektir.

Bir makroyu kaydetmek için göreli başvuru seçeneğini kullanırsanız VBA belirli bir hücre adresine bağlanmaz. Bu durumda program aktif hücreye göre “hareket edecektir”. Örneğin, zaten A1 hücresini seçtiğinizi ve makronuzu göreceli bağlantı modunda kaydetmeye başladığınızı varsayalım. Şimdi A2 hücresini seçip girin Excel metni ve Enter'a basın. Şimdi bu makroyu çalıştırırsanız A2 hücresine dönmeyecek, bunun yerine aktif hücreye göre hareket edecektir. Örneğin B3 hücresi seçilirse B4 hücresine geçecek, "Excel" metnini yazacak ve ardından K5 hücresine geçecektir.

Şimdi makroyu göreceli bağlantı modunda kaydedelim:

Göreceli bağlantı modundaki makro kaydedilecektir.

Şimdi aşağıdakileri yapın.

  1. Herhangi bir hücreyi seçin (A1 hariç).
  2. "Geliştirici" sekmesine gidin.
  3. Kod grubunda Makrolar düğmesini tıklayın.
  4. Makro iletişim kutusunda, kaydedilen Göreli Referanslar makrosuna tıklayın.
  5. "Çalıştır" düğmesine tıklayın.

Dikkat edeceğiniz gibi makro "Excel" metnini A2 hücrelerine yazmıyordu. Bunun nedeni, makroyu göreceli referans modunda kaydetmiş olmanızdır. Böylece imleç aktif hücreye göre hareket eder. Örneğin, bunu B3 hücresi seçiliyken yaparsanız, Excel metni olan B4 hücresine gidecek ve sonunda B5 hücresini seçecektir.

Makro kaydedicinin kaydettiği kod:

Kodun B3 veya B4 hücrelerine referans vermediğini unutmayın. Makro, geçerli hücreye ve bu hücreye göre uzaklığa referans vermek için Activecell'i kullanır.

Kodun Range("A1") kısmını dikkate almayın. Bu, makro kaydedicinin hiçbir amaca hizmet etmeyen ve kaldırılabilen gereksiz kodu eklediği durumlardan biridir. Bu olmadan kod iyi çalışacaktır.

Bir makro kaydediciyle ne yapamazsınız?

Makro kaydedici Excel'de sizin için harikadır ve adımlarınızı tam olarak kaydeder, ancak bundan daha fazlasını yapmanız gerektiğinde sizin için doğru seçim olmayabilir.

  • Bir nesne seçmeden kodu çalıştıramazsınız. Örneğin, makronun bir sonraki çalışma sayfasına gitmesini ve mevcut çalışma sayfasından ayrılmadan A sütunundaki tüm dolu hücreleri vurgulamasını istiyorsanız, makro kaydedici bunu yapamayacaktır. Bu gibi durumlarda kodu manuel olarak düzenlemeniz gerekir.
  • Makro kaydedici kullanarak özel bir işlev oluşturamazsınız. VBA ile bir çalışma sayfasında normal işlevler olarak kullanılabilecek özel işlevler oluşturabilirsiniz.
  • Makro kaydediciyi kullanarak döngüler oluşturamazsınız. Ancak kod düzenleyicide bir eylemi kaydedebilir ve manuel olarak bir döngü ekleyebilirsiniz.
  • Koşulları analiz edemezsiniz: Bir makro kaydedici kullanarak koddaki koşulları kontrol edebilirsiniz. VBA kodunu elle yazarsanız, koşulu değerlendirmek ve doğruysa kodu (veya yanlışsa başka bir kodu) çalıştırmak için IF Then Else ifadelerini kullanabilirsiniz.

Makro içeren Excel dosyalarının uzantısı

Bir makro kaydettiğinizde veya VBA kodunu Excel'de manuel olarak yazdığınızda, dosyayı makro özellikli bir dosya uzantısıyla (.xlsm) kaydetmeniz gerekir.

Excel 2007'den önce tek bir dosya biçimi yeterliydi: .xls. Ancak 2007'den beri .xlsx standart bir dosya uzantısı olarak tanıtıldı. .xlsx olarak kaydedilen dosyalar makro içeremez. Yani .xlsx uzantılı bir dosyanız varsa ve bir makro yazıp/kaydedip kaydederseniz, makro etkin bir formatta kaydetmeniz konusunda sizi uyaracak ve aşağıdaki iletişim kutusunu gösterecektir:

Hayır'ı seçerseniz Excel dosyayı makronun etkin olduğu bir biçimde kaydeder. Ancak Evet'i tıklatırsanız Excel, çalışma kitabınızdaki tüm kodları otomatik olarak kaldıracak ve dosyayı .xlsx biçiminde bir çalışma kitabı olarak kaydedecektir. Yani çalışma kitabınızda bir makro varsa, o makroyu kaydedebilmek için onu .xlsm formatında kaydetmeniz gerekir.

Makro nedir? Makro kaydedilmiş bir eylem dizisi veya VBA'da (Visual Basic for Application) oluşturulan bir programdır. Sıkça sorulan soru Excel'de makro nasıl yazılır? Sadece.

Onlar. Eğer aynı eylemleri birkaç kez yapmamız gerekiyorsa bu eylemleri hatırlayıp tek tuşla çalıştırabiliyoruz. Bu makalede sizi VBA öğrenmeye zorlamayacağım, hatta birçok standart makro önermeyeceğim. Gerçekte herkes Excel'de makro oluşturabilir/yazabilir. Bu amaçla Excel'in en ilginç ve sıra dışı özelliği var: Makro kaydedici(eylemlerinizin kod biçiminde kaydedilmesi). Onlar. eylemlerinizi video gibi kaydedebilir ve bunları koda (sıraya) çevirebilirsiniz.

Kısacası, her gün aynı eylemleri gerçekleştiriyorsanız bu süreci nasıl otomatikleştireceğinizi bulmaya değer. Excel'de makro yazmayı öğrenmek için okumaya devam edin.

1. Makrolara izin ver

Menü (sol üstteki yuvarlak düğme) - Excel Seçenekleri— Güven Merkezi — Güven Merkezi Ayarları — Makro Ayarları. "Tüm makroları etkinleştir" onay kutusunu işaretleyin.

Veya aynısını Geliştirici sekmesinde de yapın

2. Geliştirici menüsünü etkinleştirin hızlı çalışma makrolarla

Menü (sol üstteki yuvarlak düğme) - Excel Seçenekleri - Genel - Geliştirici sekmesini göster.

Oluşturulan makronun çalışma kitabına kaydedilmesi için dosyayı .xlsm veya .xlsb. Farklı Kaydet - Makro Etkinleştirilmiş Excel Çalışma Kitabı veya İkili Çalışma Kitabı'nı tıklayın.

Peki Excel'de makro nasıl yazılır?

Basit. Hadi Excel'e geçelim. Sayfanın alt kısmında sayfa etiketlerinin altında “Makro kaydet” butonu bulunmaktadır.

Düğmeye tıkladığınızda “Makro Kaydet” penceresi açılır. Makro adı: alanında makroya istediğimiz ismi veriyoruz. Daha sonra onu çağırmak için kullanacağımız tuş kombinasyonunu ayarladık (isteğe bağlı).

Tamam'ı tıklayın. Makro Kaydedici kaydetmeye başladı.

Tüm. Artık makro olarak hatırlamamız gereken işlemleri yapıyoruz. Örneğin bir satırı silip A1 hücresini sarıya renklendirmemiz gerekiyor.

Bu manipülasyonlar sırasında, sayfaların altındaki "Makro Kaydet" butonu yerine, makronun yürütülmesini durduracak tıklandığında bir kare yanacaktır.

Olanlar nasıl başlatılır? Düğmeye tıklayın, Makro Seç penceresi görünecektir, istediğiniz makroyu seçin ve ardından Çalıştır düğmesine tıklayın.

Ne olduğunu nasıl görebilirim? Düğmeye bas. İstediğiniz makroyu seçin ve Düzenle'ye tıklayın. Makro Kaydet penceresi (VBA penceresi) açılacaktır.

Makro kodu buna benzer bir şeye benzemelidir.

Alt Örnek1() " Örnek1 Makro Satırlar("2:2").Seçimi Seçin.Delete Shift:=xlUp Range("A1").Seçimle Seçin.Interior .Pattern = xlSolid .PatternColorIndex = xlOtomatik.Renk = 65535 .TintAndShade = 0 .DesenTintAndShade = 0 End With End Sub

' bir yorum sembolüdür, yani bu satır koda dahil değildir. Bir makronun bir adı (Sub Örnek1()) ve bir sonu (End Sub) olmalıdır.

Bir makro için nasıl düğme oluşturulacağını okuyabilirsiniz.

Yani, herhangi bir işleminizi kaydedebilir ve böylece bunları istediğiniz kadar tekrarlayabilirsiniz!

Bilgisayarınızdaki tüm kitaplar için makronun nasıl kaydedileceğini okuyabilirsiniz.

Bunu yapmak için Kişisel'i kullanın.

Bir makronun koşula göre nasıl çalıştırılacağını okuyabilirsiniz

İyi şanslar, eminim bunu çok faydalı bulacaksınız!

Makalemizi sosyal ağlarınızda paylaşın:

Tablolarda veya diğer Office nesnelerinde, genellikle aynı eylemleri yapmanızın gerektiği durumlar ortaya çıkar. Bu sadece ekstra zaman almakla kalmıyor, aynı zamanda çok sinir bozucu. Neyse ki bu sorunu çözecek makrolar var.

VBA ortamı makro oluşturmak için tasarlanmıştır, ancak bunların nasıl yazılacağını öğrenmek için programcı olmanıza veya Visual Basic for Application üzerinde çalışmanıza gerek yoktur. Bu amaçla sizden ek bilgi gerektirmeden, sizin emrinizde VBA kodu oluşturan özel geliştirilmiş araçlar bulunmaktadır. Ancak bu dile hakim olmak o kadar da zor değil.

Makrolar uygulamalarda kayıt araçları kullanılarak oluşturulur. Bu durumda, istenen eylem dizisi belirli bir tuş kombinasyonuna atanır. Bir Office uygulaması açın. Biçimlendireceğiniz parçayı seçin.

“Araçlar” -> “Makro” -> “Kaydı Başlat” menü öğesini seçin (Office 2007'de – “Görünüm” -> “Makrolar” -> “Makro Kaydet”). Görüntülenen "Makro Kaydet" penceresinde yeni makronun adını ayarlayın; varsayılan olarak "Makro1"dir, ancak özellikle birkaç makro olacaksa ona bir ad vermek daha iyidir. En büyük boy ad alanları – 255 karakter, nokta ve boşluk karakterlerine izin verilmez.

Makronuzun gelecekte kullanacağı düğme veya tuş kombinasyonu seçimine karar verin. Özellikle sık kullanıma yönelikse en uygun seçeneği seçmeye çalışın. "Makro ata" alanında uygun öğeyi seçin: "düğme" veya "tuşlar".

"Düğme"yi seçerseniz "Hızlı Ayarlar" penceresi açılacaktır. “Tuşları” seçtiğinizde, klavyedeki kombinasyonu girmeniz yeterlidir. Tekrardan kaçınmak için "Mevcut Kombinasyonlar"ı gözden geçirin. "Ata"ya tıklayın.

Word ve PowerPoint'te oluşturulan makro, gelecekte tüm belgeler için geçerli olacaktır. Bir Excel makrosunun tüm belgelerde kullanılabilmesini sağlamak için, onu, uygulamayı açtığınızda otomatik olarak çalışan kişisel.xls dosyasına kaydedin. “Pencere” -> “Görüntüle” komutunu çalıştırın ve beliren pencerede kişisel.xls dosyasının adını taşıyan satırı seçin.

Açıklama alanına makronun açıklamasını girin. Tamam'ı tıkladığınızda belgenize geri dönersiniz, ancak artık fare imlecinizde bir kayıt simgesi görebilirsiniz. Metni, otomatikleştirmek istediğiniz eylem sırasına göre biçimlendirin. Çok dikkatli olun ve gereksiz eylemler yapmayın, çünkü makro bunların hepsini kaydedecektir ve bu, gelecekte yürütme süresini etkileyecektir.

“Araçlar” -> “Makro” -> “Kaydı durdur” komutunu uygulayın. Kendiniz tek bir kod satırı yazmadan bir VBA nesnesi oluşturdunuz. Ancak yine de manuel olarak değişiklik yapmanız gerekiyorsa, “Makrolar” bölümünden, “Değiştir” komutundan veya Alt+F8 tuş kombinasyonunu kullanarak nesneyi girin.

Çok az kişi, popüler Microsoft Excel ürününün ilk sürümünün 1985'te ortaya çıktığını biliyor. O zamandan bu yana çeşitli modifikasyonlardan geçti ve dünya çapında milyonlarca kullanıcı arasında talep görüyor. Aynı zamanda, birçok kişi bu elektronik tablo işlemcisinin yeteneklerinin yalnızca küçük bir kısmıyla çalışıyor ve Excel'de programlama yeteneğinin hayatlarını nasıl kolaylaştırabileceğinin farkında bile değil.

VBA nedir

Excel'de programlama, başlangıçta Microsoft'un en ünlü elektronik tablo işlemcisinde yerleşik olan Visual Basic for Application programlama dili kullanılarak gerçekleştirilir.

Uzmanlar öğrenmenin göreceli kolaylığını avantajlarına bağlıyor. Uygulamada görüldüğü gibi, profesyonel programlama becerisine sahip olmayan kullanıcılar bile VBA'nın temellerine hakim olabilirler. VBA'nın özellikleri arasında bir ofis uygulama ortamında komut dosyası yürütme yer alır.

Programın dezavantajı, farklı sürümlerin uyumluluğuyla ilgili sorunlardır. Bunlar, VBA program kodunun eriştiği gerçeğinden kaynaklanmaktadır. işlevsellik, içinde mevcut olan Yeni sürümÜrün, ancak eskisinde eksik. Ayrıca dezavantajlar arasında kodun dışarıdan biri tarafından yapılan değişikliklere aşırı derecede açık olması yer alır. Yine de Microsoft Office IBM Lotus Symphony'nin yanı sıra, kullanıcının başlangıç ​​kodunu şifrelemesine ve onu görüntülemek için bir parola belirlemesine olanak tanır.

Nesneler, koleksiyonlar, özellikler ve yöntemler

Bunlar VBA ortamında çalışacak kişilerin anlaması gereken kavramlardır. Öncelikle nesnenin ne olduğunu anlamalısınız. Excel'de bu işlevler sayfa, çalışma kitabı, hücre ve aralıktır. Bu nesnelerin özel bir hiyerarşisi vardır; birbirinize itaat edin.

Bunlardan en önemlisi, aşağıdakilere karşılık gelen Uygulamadır: Excel programı. Daha sonra Çalışma Kitapları, Çalışma Sayfaları ve Aralık gelir. Örneğin, belirli bir çalışma sayfasında A1 hücresine erişmek için hiyerarşiyi dikkate alan bir yol belirtmeniz gerekir.

"Koleksiyon" kavramına gelince, bu, girişte ChartObjects biçiminde olan aynı sınıftan bir nesne grubudur. Bireysel unsurları da nesnelerdir.

Bir sonraki kavram özelliklerdir. Bunlar herhangi bir nesnenin gerekli bir özelliğidir. Örneğin Aralık için Değer veya Formül'dür.

Yöntemler ne yapılması gerektiğini belirten komutlardır. VBA'da kod yazarken nesneden bir nokta ile ayrılmaları gerekir. Örneğin, daha sonra gösterileceği gibi, Excel'de programlama yaparken çok sık Hücreler(1,1).Seç komutu kullanılır. Bu, koordinatları olan bir hücre seçmeniz gerektiği anlamına gelir

Selection.ClearContents genellikle onunla birlikte kullanılır. Bunun yürütülmesi, seçilen hücrenin içeriğinin temizlenmesi anlamına gelir.

Nasıl başlanır

Daha sonra “Alt” ve “F11” tuş kombinasyonunu kullanmanız gereken VB uygulamasına gitmeniz gerekiyor. Daha öte:

  • pencerenin üst kısmında bulunan menü çubuğunda Excel simgesinin yanındaki simgeye tıklayın;
  • Mudule komutunu seçin;
  • resimli simgeye tıklayarak kaydedin;
  • diyelim ki kodun bir taslağını yazıyorlar.

Şuna benziyor:

Alt program()

"Bizim kodumuz

Lütfen "Kodumuz" satırının farklı bir renkle (yeşil) vurgulanacağını unutmayın. Bunun nedeni, satırın başına yerleştirilen ve bir yorumun takip ettiğini belirten kesme işaretidir.

Artık dilediğiniz kodu yazabilir ve kendiniz için yeni bir araç oluşturabilirsiniz. VBA Excel'i(aşağıdaki program örneklerine bakın). Elbette Visual Basic'in temellerine aşina olanlar için çok daha kolay olacaktır. Ancak bunlara sahip olmayanlar bile isterlerse çabuk alışabilirler.

Excel'deki Makrolar

Bu ad, Visual Basic for Application'da yazılan programları gizler. Böylece, Excel'de programlama, makrolar oluşturmaktır. gerekli kod. Bu özellik sayesinde Microsoft elektronik tablo işlemcisi, belirli bir kullanıcının gereksinimlerine uyum sağlayarak kendini geliştirir. Makro yazmak için modüllerin nasıl oluşturulacağını anladıktan sonra düşünmeye başlayabilirsiniz. spesifik örnekler VBA Excel programları. En temel kodlarla başlamak en iyisidir.

örnek 1

Görev: Bir hücrenin içeriğinin değerini kopyalayıp sonra diğerine yazacak bir program yazın.

Bunun için:

  • “Görünüm” sekmesini açın;
  • “Makrolar” simgesine gidin;
  • “Makro kaydet”e tıklayın;
  • Açılan formu doldurun.

Kolaylık sağlamak için, "Makro adı" alanında "Makro1"i bırakın ve "Klavye kısayolu" alanına örneğin hh ekleyin (bu, programı "Ctrl+h" hızlı komutuyla başlatabileceğiniz anlamına gelir). Enter tuşuna basın.

Artık makro kaydı başlamış olduğundan, bir hücrenin içeriği diğerine kopyalanır. Orijinal simgeye dönün. “Makro Kaydet”e tıklayın. Bu eylem programın sonu anlamına gelir.

  • “Makrolar” satırına geri dönün;
  • listeden “Makro 1”i seçin;
  • “Çalıştır”a tıklayın (aynı işlem “Ctrl+hh” tuş kombinasyonunu başlatarak da başlatılır).

Sonuç olarak makro kaydedilirken gerçekleştirilen eylem gerçekleşir.

Kodun neye benzediğini görmek mantıklı. Bunu yapmak için “Makrolar” satırına geri dönün ve “Değiştir” veya “Giriş” seçeneğine tıklayın. Bunun sonucunda kendilerini VBA ortamında buluyorlar. Aslında makro kodunun kendisi Sub Macro1() ve End Sub satırları arasında bulunur.

Örneğin A1 hücresinden C1 hücresine kopyalama yapıldıysa, kod satırlarından biri Aralık(“C1”) gibi görünecektir.Seçin. Çeviride “Aralık(“C1”) gibi görünür. Seç” yani VBA Excel'e, C1 hücresine gider.

Kodun aktif kısmı ActiveSheet.Paste komutuyla tamamlanır. Seçilen hücrenin (bu durumda A1) içeriğinin seçilen C1 hücresine yazılması anlamına gelir.

Örnek 2

VBA döngüleri, Excel'de çeşitli makrolar oluşturmanıza yardımcı olur.

VBA döngüleri çeşitli makrolar oluşturmanıza yardımcı olur. Diyelim ki y=x + x 2 + 3x 3 - cos(x) fonksiyonumuz var. Grafiğini elde etmek için bir makro oluşturmanız gerekir. Bu yalnızca VBA döngüleri kullanılarak yapılabilir.

Fonksiyon argümanının başlangıç ​​ve son değerleri x1=0 ve x2=10'dur. Ayrıca bir sabit (bağımsız değişken değiştirme adımının değeri ve sayacın başlangıç ​​değeri) girmelisiniz.

Tüm VBA Excel makro örnekleri, yukarıda sunulanla aynı prosedür kullanılarak oluşturulur. Bu özel durumda kod şöyle görünür:

Alt program()

adım = 0,1

x1 yaparken yapın< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Hücreler(i, 1).Değer = x1 (x1 değeri (i,1) koordinatlı hücreye yazılır)

Cells(i, 2).Value = y (y değeri (i,2) koordinatlı hücreye yazılır)

i = i + 1 (sayaç etkindir);

x1 = x1 + sevişme (bağımsız değişken adım değerine göre değişir);

Son Alt.

Bu makroyu Excel'de çalıştırmanın bir sonucu olarak, birincisi x, ikincisi y değerlerini içeren iki sütun elde ediyoruz.

Daha sonra onlardan Excel için standart bir şekilde bir grafik oluşturulur.

Örnek 3

VBA Excel 2010'da döngüleri uygulamak için, diğer sürümlerde olduğu gibi, önceden verilen Do While yapısıyla birlikte For kullanılır.

Sütun oluşturacak bir program düşünün. Hücrelerinin her birine karşılık gelen satır numarasının kareleri yazılacaktır. For yapısını kullanmak, sayaç kullanmadan çok kısa bir şekilde yazmanıza olanak tanır.

Öncelikle yukarıda anlatıldığı gibi bir makro oluşturmanız gerekiyor. Daha sonra kodun kendisini yazıyoruz. 10 hücrenin değerleri ile ilgilendiğimizi varsayıyoruz. Kod şuna benziyor.

i = 1 ila 10 için Sonraki

Komut “insan” diline “1'den 10'a kadar birer adımlarla tekrarla” şeklinde çevrilmiştir.

Görev, örneğin 1'den 11'e kadar olan tüm tek sayıların karelerini içeren bir sütun elde etmekse, şunu yazarız:

i = 1 ila 10 için adım 1 Sonraki.

Burada adım bir adımdır. Bu durumda ikiye eşittir. Varsayılan olarak döngüde bu kelimenin bulunmaması adımın tek olduğu anlamına gelir.

Elde edilen sonuçlar (i,1) numaralı hücrelere kaydedilmelidir. Daha sonra döngü her başlatıldığında i'nin bir adım boyutu artmasıyla satır numarası da otomatik olarak artacaktır. Bu şekilde kod optimize edilecektir.

Genel olarak kod şöyle görünecek:

Alt program()

i = 1'den 10'a kadar Adım 1 (i = 1'den 10'a kadar basitçe yazabilirsiniz)

Hücreler(i, 1).Değer = i ^ 2 (yani i karesinin değeri (i,1) hücresine yazılır)

Sonraki (bir anlamda sayaç rolünü oynar ve döngünün başka bir başlangıcı anlamına gelir)

Son Alt.

Makroyu kaydetmek ve çalıştırmak dahil her şey doğru yapılırsa (yukarıdaki talimatlara bakın), o zaman onu çağırdığınızda, her seferinde belirtilen boyutta bir sütun alırsınız (bu durumda, 10 hücreden oluşur).

Örnek 4

İÇİNDE Gündelik YaşamÇoğu zaman, bazı koşullara bağlı olarak şu veya bu kararı verme ihtiyacı ortaya çıkar. VBA Excel'de onlarsız yapamazsınız. Algoritmanın ileriki yürütme sürecinin seçildiği ve başlangıçta önceden belirlenmediği program örnekleri çoğunlukla If ...Then yapısını kullanır (karmaşık durumlar için) If ...Then ...END If.

Belirli bir durumu ele alalım. Excel için bir makro oluşturmanız gerektiğini varsayalım, böylece aşağıdakiler hücreye koordinatlarla (1,1) yazılır:

1 eğer argüman olumlu ise;

Bağımsız değişken boşsa 0;

-1 eğer argüman olumsuzsa.

Excel için böyle bir makronun oluşturulması başlıyor standart bir şekilde Alt ve F11 kısayol tuşlarını kullanarak. Daha sonra aşağıdaki kod yazılır:

Alt program()

x= Cells(1, 1).Value (bu komut x'e (1, 1) koordinatlarındaki hücre içeriğinin değerini atar)

Eğer x>0 ise Hücreler(1, 1).Değer = 1

Eğer x=0 ise Hücreler(1, 1).Değer = 0

eğer x<0 Then Cells(1, 1).Value = -1

Son Alt.

Geriye kalan tek şey makroyu çalıştırmak ve Excel'deki argüman için gerekli değeri elde etmektir.

VBA İşlevleri

Zaten fark etmiş olabileceğiniz gibi, Microsoft'un en ünlü elektronik tablo işlemcisinde programlama yapmak o kadar da zor değil. Özellikle VBA işlevlerini nasıl kullanacağınızı öğrenirseniz. Toplamda, Excel ve Word'de uygulama yazmak için özel olarak oluşturulan bu programlama dilinin yaklaşık 160 işlevi vardır. Birkaç büyük gruba ayrılabilirler. Bu:

  • Matematiksel fonksiyonlar. Bunları argümana uygulayarak kosinüs değerini, doğal logaritmayı, tamsayı kısmını vb. elde ederler.
  • Mali işlevler. Kullanılabilirlikleri ve Excel programlamayı kullanmaları sayesinde, muhasebe ve finansal hesaplamalar için etkili araçlar elde edebilirsiniz.
  • Dizi işleme fonksiyonları. Bunlar arasında Array, IsArray; Bağlı; Bağlı.
  • Dize için Excel VBA işlevleri. Bu oldukça büyük bir grup. Bu, örneğin, tamsayı bağımsız değişkenine eşit boşluk sayısına sahip bir dize oluşturmak için Space işlevlerini veya karakterleri ANSI koduna dönüştürmek için Asc işlevlerini içerir. Hepsi yaygın olarak kullanılmaktadır ve Excel'deki satırlarla çalışmanıza, bu tablolarla çalışmayı büyük ölçüde kolaylaştıran uygulamalar oluşturmanıza olanak tanır.
  • Veri türü dönüştürme işlevleri. Örneğin CVar, İfade bağımsız değişkeninin değerini Variant veri türüne dönüştürerek döndürür.
  • Tarihlerle çalışma işlevleri. Standart olanları önemli ölçüde genişletirler.Böylece WeekdayName işlevi, haftanın gününün adını (tam veya kısmi) numarasına göre döndürür. Daha da kullanışlı olanı Timer'dır. Gece yarısından günün belirli bir noktasına kadar geçen saniye sayısını verir.
  • Sayısal bir bağımsız değişkeni farklı sayı sistemlerine dönüştürme işlevleri. Örneğin Oct, sayıları sekizlik olarak verir.
  • Biçimlendirme işlevleri. Bunlardan en önemlisi Formattır. Biçim bildiriminde belirtilen talimatlara göre biçimlendirilmiş bir ifadeyle bir Variant değeri döndürür.
  • vesaire.

Bu işlevlerin özelliklerini ve uygulamalarını incelemek, Excel'in kapsamını önemli ölçüde genişletecektir.

Örnek 5

Daha karmaşık sorunları çözmeye devam etmeye çalışalım. Örneğin:

İşletmenin gerçek maliyet seviyesini bildiren bir kağıt belge verilir. Gerekli:

  • Excel elektronik tablosunu kullanarak şablon bölümünü geliştirin;
  • Doldurulması için ilk verileri isteyecek, gerekli hesaplamaları gerçekleştirecek ve ilgili şablon hücrelerini bunlarla dolduracak bir VBA programı oluşturun.

Çözüm seçeneklerinden birini ele alalım.

Şablon oluştur

Tüm eylemler Excel'deki standart bir sayfada gerçekleştirilir. Ücretsiz hücreler, tüketici şirketinin adı, maliyetlerin miktarı, seviyeleri ve cirolarına ilişkin verileri girmek için ayrılmıştır. Raporun derlendiği şirket (dernek) sayısı sabit olmadığından, sonuçlara göre değerlerin girileceği hücreler ve uzmanın adı önceden ayrılmamıştır. Çalışma sayfasına yeni bir ad verilir. Örneğin "raporlar".

Değişkenler

Bir şablonu otomatik olarak dolduracak bir program yazmak için notasyonları seçmeniz gerekir. Bunlar değişkenler için kullanılacaktır:

  • NN - geçerli tablo satırının numarası;
  • TP ve TF - planlanan ve fiili ticaret cirosu;
  • SF ve SP - fiili ve planlanan maliyet miktarı;
  • IP ve IF - planlanan ve fiili maliyet düzeyi.

Bu sütundaki toplamın birikimini belirtmek için aynı harfleri, ancak "Itog" ön ekini kullanarak kullanalım. Örneğin, ItogTP - "planlanan ciro" başlıklı tablo sütununu ifade eder.

VBA programlamayı kullanarak bir sorunu çözme

Sunulan gösterimleri kullanarak sapmalar için formüller elde ederiz. % olarak hesaplamanız gerekiyorsa, elimizde (F - P) / P * 100 ve toplamda - (F - P) bulunur.

Bu hesaplamaların sonuçları en iyi şekilde doğrudan bir Excel elektronik tablosundaki uygun hücrelere girilebilir.

Gerçekleşen ve tahmin edilen toplamlar için bunlar ItogP=ItogP + P ve ItogF=ItogF+ F formülleri kullanılarak elde edilir.

Sapmalar için, hesaplama yüzde olarak yapılıyorsa = (ItogF - ItogP) / ItogP * 100'ü ve toplam değer durumunda - (ItogF - ItogP) kullanın.

Sonuçlar yine anında uygun hücrelere yazılır, dolayısıyla bunları değişkenlere atamaya gerek kalmaz.

Oluşturulan programı çalıştırmadan önce çalışma kitabını örneğin "Rapor1.xls" adı altında kaydetmeniz gerekir.

Başlık bilgileri girildikten sonra “Raporlama tablosu oluştur” butonuna bir kez basılması yeterlidir. Bilmeniz gereken başka kurallar da var. Özellikle her aktivite türüne ait değerler tabloya girildikten sonra her defasında “Satır Ekle” butonuna basılmalıdır. Tüm verileri girdikten sonra “Son” butonuna basmanız ve ardından Excel penceresine geçmeniz gerekmektedir.

Artık makroları kullanarak Excel sorunlarını nasıl çözeceğinizi biliyorsunuz. Şu anda en popüler metin düzenleyici olan Word'de çalışmak için vba excel kullanma becerisine (yukarıdaki program örneklerine bakın) da ihtiyaç duyulabilir. Özellikle yazının en başında gösterildiği gibi yazarak veya kod yazarak menü butonları oluşturabilirsiniz, bu sayede görev tuşlarına basılarak veya “Görünüm” sekmesi üzerinden metin üzerinde birçok işlem gerçekleştirilebilir ve “Makrolar” simgesi.




Tepe