• VBA Excel: Örnek Programlar. Excel'de makrolar. Excel'de makro örnekleri. İletişim VBA mesajı msgBox

    Çok az kişi, popüler ürünün ilk versiyonunun olduğunu biliyor. Microsoft Excel 1985'te ortaya çıktı. O zamandan beri çeşitli modifikasyonlardan geçti ve dünya çapında milyonlarca kullanıcı tarafından 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 becerisinin 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, avantajlarına karşılaştırmalı bir geliştirme kolaylığı olarak atıfta bulunur. Uygulamada görüldüğü gibi, profesyonel programlama becerisine sahip olmayan kullanıcılar bile VBA'nın temellerinde ustalaşabilir. VBA'nın özellikleri, bir ofis uygulaması ortamında bir betiğin yürütülmesini içerir.

    Programın dezavantajı, uyumlulukla ilgili problemlerdir. çeşitli versiyonlar. Bunlara, VBA program kodunun, ürünün yeni sürümünde bulunan ancak eski sürümde olmayan işlevselliğe atıfta bulunması gerçeği neden olur. Ayrıca, kodun bir yabancı tarafından değiştirilmeye aşırı derecede açık olması da bir dezavantajdır. Bununla birlikte, Microsoft Office ve IBM Lotus Symphony, kullanıcının ilk kodu şifrelemesine ve onu görüntülemek için bir parola belirlemesine izin verir.

    Nesneler, koleksiyonlar, özellikler ve yöntemler

    VBA ortamında çalışacak kişilerin anlaması gereken bu kavramlardır. Her şeyden önce, bir nesnenin ne olduğunu anlamanız gerekir. Excel'de bu, çalışma sayfası, çalışma kitabı, hücre ve aralıktır. Bu nesnelerin özel bir hiyerarşisi vardır, örn. birbirlerine tabidirler.

    Bunlardan en önemlisi, Excel programının kendisine karşılık gelen Uygulama'dır. Sonra Çalışma Kitapları, Çalışma Sayfaları ve ayrıca Aralık gelir. Örneğin, belirli bir çalışma sayfasındaki A1 hücresine erişmek için hiyerarşiyi hesaba katan bir yol belirtmeniz gerekir.

    "Koleksiyon" kavramına gelince, bu, kayıtta ChartObjects biçiminde olan, aynı sınıfa ait bir grup nesnedir. O bireysel elemanlar da nesnelerdir.

    Bir sonraki kavram özelliklerdir. Herhangi bir nesnenin gerekli bir özelliğidir. Örneğin, Aralık için Değer veya Formüldür.

    Yöntemler, yapılması gerekenleri gösteren 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 olarak Cells(1,1).Select komutu kullanılır. Bu, koordinatları olan bir hücre seçmeniz gerektiği anlamına gelir.

    Bununla birlikte, Selection.ClearContents sıklıkla kullanılır. Yürütülmesi, seçilen hücrenin içeriğini temizlemek anlamına gelir.

    nasıl başlanır

    Ardından, "Alt" ve "F11" tuş kombinasyonunu kullanmanın yeterli olduğu VB uygulamasına gitmeniz gerekir. 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;
    • kodun bir taslağını yazalım mı?

    Şuna benziyor:

    alt program()

    "Kodumuz

    "Kodumuz" satırının farklı bir renkle (yeşil) vurgulanacağını unutmayın.Bunun nedeni, satırın başında bir yorumun geldiğini gösteren kesme işaretidir.

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

    Excel'deki makrolar

    Bu ad, Visual Basic for Application dilinde yazılmış programları gizler. Bu nedenle, Excel'de programlama, istenen kodla makroların oluşturulmasıdır. Bu yetenekle Microsoft elektronik tablosu, belirli bir kullanıcının gereksinimlerine göre uyarlanarak kendi kendini geliştirir. Makro yazmak için modüllerin nasıl oluşturulacağını anladıktan sonra, düşünmeye başlayabilirsiniz. somut örnekler VBA programları Excel. En temel kodlarla başlamak en iyisidir.

    örnek 1

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

    Bunun için:

    • "Görünüm" sekmesini açın;
    • "Makrolar" simgesine gidin;
    • "Makro kaydet" üzerine tıklayın;
    • açık formu doldurun.

    Basit olması için, "Makro Adı" alanına "Makro1" bırakın ve örneğin "Klavye Kısayolu" alanına hh yazın (bu, programı "Ctrl + h" blitz komutuyla çalıştırabileceğiniz anlamına gelir). Enter tuşuna basın.

    Artık makro kaydı başladığına göre, bir hücrenin içeriği diğerine kopyalanır. Orijinal simgeye dönün. "Makro kaydet" üzerine tıklayın. Bu eylem, programın sonunu işaretler.

    • tekrar "Makrolar" satırına gidin;
    • listeden "Makro 1"i seçin;
    • "Çalıştır"a tıklayın (aynı eylem "Ctrl + hh" klavye kısayolu başlatılarak tetiklenir).

    Sonuç olarak, makro kaydı sırasında 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 "Düzenle" veya "Giriş" düğmesini tıklayın. Sonuç olarak kendilerini bir VBA ortamında bulurlar. 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ç. Çeviride “Range(“C1”).Select” gibi görünüyor, yani VBA Excel'e, C1 hücresine atlıyor.

    ActiveSheet.Paste komutu, kodun aktif kısmını tamamlar. Seçilen hücrenin içeriğinin kaydedilmesi anlamına gelir ( bu durum A1) vurgulanan C1 hücresine.

    Ö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 bir y=x + x 2 + 3x 3 - cos(x) fonksiyonu var. Programını almak için bir makro oluşturmanız gerekir. Bu sadece VBA döngüleri kullanılarak yapılabilir.

    İşlev bağımsız değişkeninin ilk ve son değerleri için x1=0 ve x2=10 alın. Ek olarak, bir sabit - argüman değiştirme adımı için değer ve sayaç için başlangıç ​​değeri - girmelisiniz.

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

    alt program()

    adım = 0.1

    X1 Sırasında Yap< 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 ((i,2) koordinatlı hücreye y değeri yazılır)

    i = i + 1 (sayaç aktif);

    x1 = x1 + shag (argüman, adım değeri ile değiştirilir);

    son alt.

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

    Daha sonra bunların üzerine Excel'de standart olacak şekilde bir grafik oluşturulur.

    Örnek 3

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

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

    Öncelikle yukarıda açıklandığı gibi bir makro oluşturmanız gerekir. Ardından, kodun kendisini yazıyoruz. 10 hücre için değerlerle ilgilendiğimize inanıyoruz. Kod böyle görünüyor.

    i = 1 - 10 için Sonraki

    Komut, "insan" diline "1'den 10'a kadar bir artışla tekrarla" olarak çevrilir.

    Görev, kareli bir sütun elde etmekse, örneğin, 1'den 11'e kadar olan tüm tek sayılar, o zaman ş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 olmaması, 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'deki adım değeri kadar artışla satır numarası da otomatik olarak artacaktır. Böylece kod optimize edilecektir.

    Genel olarak, kod şöyle görünecektir:

    alt program()

    For i = 1 To 10 Adım 1 (basitçe yazabilirsiniz For i = 1 To 10)

    Hücreler(i, 1).Değer = i ^ 2

    Sonraki (bir anlamda sayaç görevi görür ve döngünün bir kez daha başlaması anlamına gelir)

    son alt.

    Makronun kaydedilmesi ve çalıştırılması dahil her şey doğru yapılırsa (yukarıdaki talimatlara bakın), her çağrıldığında bir sütun elde edilir. verilen boyut(bu durumda 10 hücreden oluşur).

    Örnek 4

    Günlük yaşamda, çoğu zaman bir duruma bağlı olarak şu veya bu kararı verme ihtiyacı vardır. VBA Excel'de onlarsız yapamazsınız. Algoritmanın ilerideki seyrinin seçildiği ve başlangıçta önceden belirlenmediği program örnekleri, çoğunlukla If …Then (karmaşık durumlar için) If …Then …END If yapısını kullanır.

    Dikkate almak özel durum. Koordinatları (1,1) olan hücrenin yazılması için "Excel" için bir makro oluşturmanız gerektiğini varsayalım:

    1 bağımsız değişken olumluysa;

    bağımsız değişken null ise 0;

    -1 bağımsız değişken negatifse.

    Excel için böyle bir makronun oluşturulması başlar standart bir şekilde, "sıcak" kullanımı yoluyla Alt tuşlar ve F11. Ardından 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.

    Makroyu çalıştırmak ve Excel'de bağımsız değişken için istenen değeri elde etmek kalır.

    VBA İşlevleri

    Fark etmiş olabileceğiniz gibi, Microsoft'un en ünlü elektronik tablosunda programlama yapmak o kadar da zor değil. Özellikle VBA işlevlerini kullanmayı öğ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:

    • Matematik fonksiyonları. Bunları argümana uygulayarak kosinüs, doğal logaritma, tamsayı kısmı vb. değerlerini elde ederler.
    • finansal fonksiyonlar. Varlıkları ve Excel'de programlama kullanmaları sayesinde, muhasebe ve finansal hesaplamalar için etkili araçlar elde edebilirsiniz.
    • Dizi işleme işlevleri. Bunlar Array, IsArray; Bağlı; UBound.
    • Satır için VBA Excel işlevleri. Bu oldukça büyük bir gruptur. Örneğin, bir tamsayı bağımsız değişkenine eşit boşluk sayısına sahip bir dize oluşturmak için Space veya karakterleri ANSI koduna dönüştürmek için Asc işlevlerini içerir. Hepsi yaygın olarak kullanılır ve Excel'de satırlarla çalışmanıza izin vererek bu tablolarla çalışmayı çok daha kolaylaştıran uygulamalar oluşturur.
    • Veri türü dönüştürme işlevleri. Örneğin, CVar, bir İfade bağımsız değişkeninin değerini bir Variant veri türüne dönüştürerek döndürür.
    • Tarihlerle çalışmak için işlevler. 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. Zamanlayıcı daha da kullanışlı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, bir sayının sekizlik gösterimini verir.
    • Biçimlendirme işlevleri. Bunlardan en önemlisi Biçimdir. Biçim bildiriminde verilen talimatlara göre biçimlendirilmiş bir ifadeyle Variant türünde bir değer 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 problemleri çözmeye geçelim. Örneğin:

    İşletmenin gerçek maliyet düzeyi raporunun bir kağıt belgesi verilir. Gerekli:

    • şablon bölümünü Excel elektronik tablosunu kullanarak geliştirin;
    • ilk verilerin doldurulmasını isteyecek bir VBA programı oluşturun, gerekli hesaplamaları yapın ve şablonun karşılık gelen hücrelerini bunlarla doldurun.

    Çözümlerden birini ele alalım.

    Bir şablon oluştur

    Tüm eylemler Excel'de standart bir sayfada gerçekleştirilir. Serbest hücreler, tüketici şirketin adı, maliyetlerin miktarı, seviyeleri ve ciroları ile ilgili verilerin girilmesi için ayrılmıştır. Raporun derlendiği şirket (topluluk) sayısı sabit olmadığından, sonuçlara dayalı değerlerin girilmesi için hücreler ve uzmanın tam adı önceden ayrılmamıştır. Çalışma sayfasına yeni bir ad verilir. Örneğin, "Օtchet".

    Değişkenler

    Bir şablonu otomatik olarak dolduracak bir program yazmak için gösterimi seçmelisiniz. Değişkenler için kullanılacaklar:

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

    Aynı harflerle, ancak "önek" ile belirtelim, toplamın verilen sütunda birikmesi. Örneğin ItogTP, "planlanan ciro" başlıklı bir tablo sütununa atıfta bulunur.

    VBA programlama kullanarak bir problem çözme

    Tanıtılan gösterimi kullanarak, sapmalar için formüller elde ederiz. Hesaplamanın % olarak yapılması gerekiyorsa, elimizde (F - P) / P * 100 ve - (F - P) miktarı vardır.

    Bu hesaplamaların sonuçları en iyi şekilde hemen Excel elektronik tablosunun uygun hücrelerine girilebilir.

    Fiili ve tahmini toplamlar için, 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 olması durumunda - (ItogF - ItogP) kullanın.

    Sonuçlar yine hemen ilgili hücrelere yazılır, böylece değişkenlere atamaya gerek kalmaz.

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

    Başlık bilgileri girildikten sonra "Raporlama tablosu oluştur" butonuna sadece 1 kez basılması yeterlidir. Dikkat edilmesi gereken başka kurallar da var. Özellikle tablodaki her aktivite için değer girildikten sonra her defasında “Satır Ekle” butonuna tıklanmalıdır. Tüm verileri girdikten sonra, "Bitir" düğmesini tıklamanız ve ardından "Excel" penceresine geçmeniz gerekir.

    Artık Excel için makroları kullanarak sorunları nasıl çözeceğinizi biliyorsunuz. Şu anda en popüler metin düzenleyicisi olan "Word" ortamında çalışmak için vba excel'i kullanma becerisi (yukarıdaki program örneklerine bakın) da gerekebilir. Özellikle, yazının en başında gösterildiği gibi yazarak veya kod yazarak, görev tuşlarına basarak veya "Görüntüle" sekmesi aracılığıyla metin üzerinde birçok işlemin gerçekleştirilebildiği menü düğmeleri oluşturabilirsiniz. ve "Makrolar" simgesi.

    MZTools - VBA'da program yapanlar için çok kullanışlı bir yardımcı program. Kod yazarken gerçekten zaman kazandırır. Faydalı olması önemlidir Tamamen ücretsiz. İşte özelliklerinden bazıları:

    • Hata işleyicilerin modüllere otomatik olarak eklenmesi
    • Zaman, modül ve prosedür adlarının otomatik olarak eklenmesi, prosedür yazarını belirleme yeteneği ile prosedür başlığına yorumlar ekleyin
    • Otomatik kod satırı numaralandırma
    • Kod satırlarından numaralandırmayı kaldırma
    • Sık Kullanılan Kod Şablonlarını Oluşturma
    • Kod olasılığı ve ardından kopyalanan 9 koddan herhangi birinin eklenmesi ile 9 işlem için kendi panonuz
    • ve daha birçok faydalı

    Program ücretsiz olarak dağıtılmaktadır.

    (37,3 KiB, 3.708 indirme)


    Resmi site: bulunamadı

    VBE Araçları - Birçoğunuz bir form için kod yazmak zorunda kaldınız ve sonra bazı öğelerin istediğiniz gibi adlandırılmadığını veya koddaki bir değişiklik nedeniyle yeniden adlandırmak istediğinizi hatırladınız mı? Ve elbette, bir öğeyi yeniden adlandırırken, koda gitmeniz ve bu öğeye yapılan tüm referansları orada yeni bir adla değiştirmeniz gerektiği sorunuyla karşı karşıya kaldılar. Böylece, bu programın yardımıyla, bir Excel sayfasındaki herhangi bir form öğesinin (Metin Kutusu, Etiket vb.) Adını ve ActiveX denetimlerini yeniden adlandırabilirsiniz ve programın kendisi eski addan tüm bağlantıları yenisine değiştirecektir. kodda. Çok rahat.

    Program ücretsiz olarak dağıtılmaktadır.

    Örnek olarak basit bir VBA Sub prosedürü ile başlayalım. Bir VBA modülünde saklanır ve ilk yüz pozitif tam sayının toplamını hesaplar. Hesaplamanın sonunda prosedür sonucu içeren bir mesaj görüntüler.

    Alt VBA_Demo()
    « Basit VBA Prosedürü Örneği
    Dim Toplam Uzun, i Kadar Uzun
    Toplam = 0
    i = 1 ila 100 için
    Toplam = Toplam + ben
    sonraki ben
    Mesaj Kutusu Toplamı
    son alt

    Notu şu biçimde indir veya

    Bu prosedür bazı popüler dil öğelerini kullanır:

    • yorum (kesme işaretiyle başlayan dize);
    • değişken bildirim bildirimi (Dim anahtar sözcüğü ile başlayan satır);
    • iki değişken (Toplam ve i);
    • iki atama operatörü (Toplam = 0 ve Toplam = Toplam + i);
    • döngüsel yapı (İleri–Sonraki);
    • VBA işlevi (MsgBox).

    Yorumlar

    Yorum için yeni bir satır kullanabilir veya aynı satırda ifadeden sonra bir yorum ekleyebilirsiniz.

    Bazı durumlarda, bir prosedürü, içine bir talimat veya hatta bir dizi talimat eklemeden test etmek istersiniz. Karşılık gelen ifadeyi silmek yerine satır başına kesme işareti ekleyerek yoruma çevirmeniz yeterlidir. Bundan sonra, prosedür yürütülürken VBA ifadeyi (veya ifadeleri) yok sayacaktır. Bir yorumu ifadeye dönüştürmek için kesme işaretini kaldırmanız yeterlidir.

    Değişkenler, Veri Tipleri ve Sabitler

    Değişken bilgisayarın belleğinde veri depolamak için adlandırılmış bir konumdur. Değişkenler farklı türde veriler içerebilir. Adlarda harf, rakam ve bazı noktalama işaretleri kullanabilirsiniz, ancak değişken adında her zaman önce harf girilmelidir. VBA, değişken adlarındaki büyük/küçük harf durumunu tanımıyor. İsimlerde boşluk veya nokta kullanamazsınız, ancak kelimeleri alt çizgi ile ayırabilirsiniz.

    VBA, değişken veya prosedür adı olarak kullanılmasına izin verilmeyen birçok ayrılmış kelime kullanır.

    VBA yorumlayıcısı, her türlü . Ancak bu, olumsuz sonuçlarla doludur - işlemlerin yavaş yürütülmesi ve belleğin daha az verimli kullanılması. Sonuç olarak, VBA'nın veri türlerini kendi başına tanımlamasına izin vermek, büyük veya karmaşık uygulamaları çalıştırırken sorunlara yol açabilir.

    Değerleri depolamak için minimum bayt sayısını kullanan veri türünü seçmeniz önerilir. Excel, çalışma sayfalarında matematiksel hesaplamalar yapmak için Double veri türünü kullanır. Aynı hesaplama doğruluğunu sağlamak için VBA'daki sayıların işlenmesi sürecinde kullanılması önerilir.

    Üç tür değişken kapsam vardır:

    Sabitlerle çalışma

    Bazen adlandırılmış bir değer veya asla değişmeyen bir dize - bir sabit - kullanmak gerekir. Bir prosedür, faiz oranı gibi belirli bir değere birden çok kez atıfta bulunuyorsa, bu değeri bir sabit olarak bildirmeli ve ifadelerde sabitin değerini değil adını kullanmalısınız. Bu teknik, programı daha okunaklı kılmakla kalmaz, aynı zamanda kodu daha sonra değiştirmeyi de kolaylaştırır - birkaç değil, yalnızca bir talimatı değiştirmek yeterlidir.

    Const operatörü, sabitleri bildirmek için kullanılır. Örneğin,

    Tamsayı Olarak Sabit SayıÇeyrekler = 4

    Değişkenler gibi, sabitlerin de bir kapsamı vardır. VBA kodunda bir sabitin değerini değiştirmeye çalışırsanız, bir hata alırsınız (bu beklenebilir). Sabit, sabit bir değerdir, değişken değildir. Excel ve VBA'da bildirilmeden kullanılabilecek önceden tanımlanmış bir dizi sabit vardır. Bu sabitleri kullanmak için anlamlarını bilmenize bile gerek yok. Makro yazarken genellikle değerler değil sabitler kullanılır. Aşağıdaki prosedür, etkin sayfanın sayfa yönünü yatay olarak değiştirmek için yerleşik bir sabit kullanır:

    Alt SetToLandscape()
    ActiveSheet.PageSetup.Orientation = xlLandscape
    son alt

    xlLandscape değişkeninin gerçek değeri 2'dir. Nesne Tarayıcı penceresi, tüm Excel ve VBA sabitlerinin bir listesini içerir. Nesne Tarayıcıyı VBE'de açmak için tuşuna basın .

    VBA'da tarih ve saat, # işaret arasındaki değerler olarak tanımlanır

    Tarih Olarak İlk Gün Sabit = #1/1/2007#
    Sabit Öğlen = #12:00:00#

    Sistem verileri farklı bir biçimde görüntülemek üzere yapılandırılmış olsa bile tarihler her zaman ay/gün/yıl biçiminde tanımlanır.

    Atama işleçleri

    Atama operatörü, matematiksel bir hesaplama gerçekleştiren ve sonucu bir değişkene veya nesneye atayan bir VBA ifadesidir. Excel yardım sisteminde bir ifade, anahtar sözcüklerin, işleçlerin, değişkenlerin ve sabitlerin bir bileşimi olarak tanımlanır. Bu kombinasyon, sonuç olarak bir dizi, sayı veya nesne döndürür. Bir ifade bir hesaplama yapabilir, karakterleri işleyebilir veya verileri test edebilir.

    VBA'da gerçekleştirilen işlemlerin büyük bir kısmı ifadelerin geliştirilmesini (ve hata ayıklamasını) içerir. Excel'de nasıl formül oluşturulacağını biliyorsanız, VBA'da ifade oluşturmakta sorun yaşamazsınız. Bir Excel çalışma sayfası formülünde, sonuç bir hücrede görüntülenir. Öte yandan, bir VBA ifadesi bir değişkene değer atayabilir veya bir özelliğin değeri olarak kullanılabilir. VBA'da atama operatörü eşittir işaretidir (=).

    diziler

    Bir dizi, ortak bir adı paylaşan aynı türdeki öğeler grubudur; belirli bir dizi öğesine, dizi adı ve dizini kullanılarak başvurulur. Örneğin, 12 karakterlik bir dizi tanımlayabilirsiniz, böylece her değişken bir ayın adına karşılık gelir. Diziyi AyAdı olarak adlandırırsanız, dizinin ilk öğesine AyAdı (0), ikinci öğeye AyAdı (1) ve AyAdı'na (11) kadar bu şekilde başvurabilirsiniz.

    Tam olarak 100 tamsayı içeren bir diziyi aşağıdaki gibi bildirebilirsiniz:

    Dim MyArray(1 Sonra 100) Tamsayı Olarak

    Varsayılan olarak, VBA dizileri ilk öğe olarak sıfırı kullanır. Tüm dizilerin ilk indeksinin 1 olmasını istiyorsanız, ilk modül prosedüründen önce aşağıdaki bildirimi bildirmelisiniz: Option Base 1

    Dinamik bir dizinin önceden tanımlanmış sayıda öğesi yoktur. Parantez içinde boş değerler ile bildirilir: Dim MyArray() As Integer. Bununla birlikte, bir programda dinamik bir dizi kullanılmadan önce, dizide kaç öğe olduğunu VBA'ya söylemek için ReDim deyimi kullanılmalıdır. Bu genellikle, prosedür çalıştırılana kadar değeri bilinmeyen bir değişken kullanılarak yapılır. Örneğin, x değişkenine bir sayı atanırsa, dizinin boyutu aşağıdaki ifade kullanılarak belirlenir: ReDim MyArray (1 - x).

    nesne değişkenleri

    nesne değişkeni aralık veya çalışma sayfası gibi tüm bir nesneyi temsil eden bir değişkendir: GirdiAlanını Aralık Olarak Dim. Bir değişkene bir nesne atamak için Set anahtar sözcüğünü kullanın: Set InputArea = Range("C16:E16").

    Yerleşik İşlevler

    VBA, hesaplamaları ve işlemleri basitleştiren bir dizi yerleşik işleve sahiptir. Örneğin, bir dizeyi büyük harfe çeviren VBA UCase işlevi şuna eşdeğerdir: Excel işlevleri BAŞKENT Bir VBA deyiminde bir Excel işlevini kullanmak için, işlev adının önüne aşağıdaki ifadeyi ekleyin:

    Uygulama.Çalışma SayfasıFonksiyonu

    VBA'nın eşdeğer işlevler sağladığı Excel işlevlerini kullanamayacağınızı anlamak önemlidir. Örneğin VBA, Excel ROOT (SQRT) işlevine erişmenize izin vermez çünkü VBA bu işlevin kendi sürümüne sahiptir: Sqr. Bu nedenle, aşağıdaki ifade bir hata verir:

    MsgBox Application.WorksheetFunction.Sqrt(123)

    MsgBox işlevi, VBA'daki en kullanışlı işlevlerden biridir. Diğer şeylerin yanı sıra, programı duraklatmak ve bir hesaplama veya atamanın sonucunu görüntülemek için istediğiniz zaman MsgBox işlevini ekleyebileceğiniz için mükemmel bir hata ayıklama aracıdır. MsgBox işlevi yalnızca bir değer döndürmekle kalmaz, aynı zamanda kullanıcının belirli eylemleri gerçekleştirebileceği bir iletişim kutusu görüntüler. MsgBox işlevi tarafından döndürülen değer, kullanıcının görüntülenen istemine verdiği yanıttır. MsgBox işlevi, bir kullanıcı yanıtı gerekli olmadığında bile kullanılabilir, ancak bir mesajın görüntülenmesi gerekir. MsgBox işlevinin sözdizimi:

    MsgBox(mesaj[, düğmeler] [, başlık] [, yardım_dosyası, içerik])

    • Mesaj (gerekli bağımsız değişken) - iletişim kutusunda görüntülenen mesaj.
    • Düğmeler (isteğe bağlı bağımsız değişken) - İleti kutusunda hangi düğmelerin ve simgelerin (varsa) görüntüleneceğini belirleyen bir değer. Yerleşik sabitleri kullanın (örneğin, vbYesNo).
    • Başlık (isteğe bağlı bağımsız değişken) - mesaj kutusunun başlık çubuğunda görüntülenen metin. Varsayılan olarak, Microsoft Excel metni görüntülenir.
    • help_file (isteğe bağlı bağımsız değişken) - mesaj kutusuna karşılık gelen yardım dosyasının adı.
    • Bağlam (isteğe bağlı bağımsız değişken) - yardım konusunun bağlam tanımlayıcısı. Görüntülenecek belirli bir Yardım konusunu temsil eder. Bağlam bağımsız değişkenini kullanıyorsanız, yardım dosyası bağımsız değişkenini de kullanmanız gerekir.

    Ortaya çıkan değeri bir değişkene atayabilir veya işlevi bir atama operatörü olmadan kullanabilirsiniz. Aşağıdaki örnekte, sonuç Ans değişkenine atanmıştır.

    Cevap = MsgBox("Devam?" , vbYesNo + vbQuestion " Söyleyin ")
    Ans = vbNo ise Sub'dan Çıkın

    button bağımsız değişkeninin değerinin, iki yerleşik sabitin (vbYesNo + vbQuestion) toplamı olduğuna dikkat edin. vbYesNo sabiti, mesaj kutusunun biri Evet, diğeri Hayır olarak etiketlenmiş iki düğme görüntülemesine neden olur. Argümana vbQuestion eklemek ayrıca bir soru işareti görüntüler. İlk ifade çalıştırılır çalıştırılmaz, Ans değişkeni vbYes ve vbNo sabitleri tarafından temsil edilen iki değerden birini alacaktır. Bu örnekte, Hayır düğmesine tıklandığında prosedür sona erer.

    Nesneleri ve koleksiyonları yönetme

    VBA, nesneleri ve koleksiyonları daha kolay yönetmenize yardımcı olacak iki yapı sağlar. With-End With yapısı, tek bir nesne üzerinde birden çok işlem gerçekleştirmenize olanak tanır. Nasıl çalıştığını anlamak için, seçili bir nesnenin altı özelliğini değiştiren (bir Range nesnesinin seçili olduğu varsayılarak) aşağıdaki yordamı göz önünde bulundurun.

    SubChangeFontl()
    Selection.Font.Name = " Cambria "
    Selection.Font.Bold = True Selection.Font.Italic = True
    Seçim.Yazı Tipi.Boyutu = 12
    Selection.Font.Underline = xlUnderlineStyleSingle
    Selection.Font.ThemeColor = xlThemeColorAccentl
    son alt

    Bu prosedür, With - End With yapısı kullanılarak yeniden yazılabilir. Aşağıda gösterilen prosedür, öncekiyle tamamen aynı şekilde çalışır.

    SubChangeFont2()
    Selection.Font ile
    .Ad = "Kambriya"
    .Kalın = Doğru
    .İtalik = Doğru
    .Boyut=12
    .underline = xlUnderlineStyleSingle
    .ThemeColor = xlThemeColorAccentl
    ile bitmek
    son alt

    Bir koleksiyondaki tüm nesneler üzerinde bir eylem gerçekleştirmeye karar verdiğinizi veya bir koleksiyondaki tüm nesneleri değerlendirmeniz ve belirli koşullar sağlandığında bir eylem gerçekleştirmeniz gerektiğini varsayalım. Bu, Her Biri İçin - Sonraki yapısını kullanmak için ideal bir durumdur. İnşaat sözdizimi:

    Her biri için elemanİçinde Toplamak
    [talimatlar]
    [talimatlar]
    Sonraki[ eleman]

    Örneğin:

    Alt Sayfa Sayısı()
    Öğeyi Çalışma Sayfası Olarak Karart
    ActiveWorkbook.Worksheets'teki Her Öğe İçin
    MsgBox Öğe Adı
    Sıradaki eşya
    son alt

    Aşağıdaki örnek, etkin pencere dışındaki tüm pencereleri kapatır:

    Alt KapatAktif Değil()
    Kitabı Çalışma Kitabı Olarak Karart
    Çalışma Kitaplarındaki Her Kitap İçin
    Kitap.Adı ise<>ActiveWorkbook.Name Sonra Ayır.Kapat
    Sıradaki kitap
    son alt

    Kod yürütme kontrolü

    Bazı VBA prosedürleri, kodun ilk satırlarından itibaren yürütülmeye başlar. Bununla birlikte, bazen tek tek ifadeleri atlayarak, belirli komutları yeniden yürüterek ve prosedür tarafından gerçekleştirilecek bir sonraki eylemi belirlemek için koşulları kontrol ederek işlem sırasını kontrol etmek gerekir.

    GoTo deyimi, programın yürütülmesini özel bir şekilde işaretlenmiş yeni bir yönergeye yönlendirir (komuttan önce belirtilen, iki nokta üst üste ile biten bir metin dizesi veya boşlukla biten bir sayı). Aşağıdaki prosedür, kullanıcı adını almak için VBA InputBox işlevini kullanır. Kullanıcı adı Howard'dan farklıysa prosedür, işini sonlandırdığı WrongName etiketine atlar. Aksi takdirde, prosedür ek işlemler gerçekleştirir. Exit Sub deyimi, bir yordamın yürütülmesini sonlandırır.

    Alt GoToDemo()
    KullanıcıAdı = InputBox("Adınızı giriniz: ")
    KullanıcıAdı ise<>"Howard" Sonra Yanlış Ad'a Git
    MsgBox ("Merhaba Howard...")
    " - [Ek kod buraya girilir] -
    çıkış alt
    Yanlış isim:
    MsgBox "Üzgünüm, bu işlemi sadece Howard yapabilir."
    son alt

    Gerçekte, GoTo deyimi yalnızca hataları yakalamak için gereklidir (yukarıdaki kod kullanılmaması gereken kötü bir örnektir).

    Belki de If-Then yapısı en çok VBA deyimlerini gruplandırmak için kullanılır:

    Eğer durum Daha sonra talimatlar_doğru

    Örneğin

    Alt GreetMe()
    eğer zaman< 0.5 Then
    MsgBox "Günaydın"
    Elself Zaman >= 0.5 Ve Zaman< 0.75 Then
    MsgBox "Merhaba"
    Başka
    MsgBox "İyi akşamlar"
    eğer biterse
    son alt

    VBA, Excel'de kullanılana benzer bir tarih ve saat sistemi kullanır. Günün saati kesirli bir sayı olarak ifade edilir, örneğin öğlen 0,5 olarak gösterilir. 0.75 değeri saat 18:00 - günün dörtte üçü ve günün akşama dönüştüğü anı temsil eder. İç içe If-Then yapıları oldukça hantaldır. Bu nedenle, bunların yalnızca basit ikili kararlar vermek için kullanılması önerilir. Üç veya daha fazla seçenek arasından seçim yapmanız gerekiyorsa, Select Case yapısına dönmeniz önerilir.

    Aşağıdaki prosedür, geçerli günün Cumartesi mi yoksa Pazar mı olduğunu belirlemek için VBA WeekDay işlevini kullanır (Hafta içi işlevi 1 veya 7 döndürür). İlgili mesaj daha sonra görüntülenir.

    Alt GreetUserlO
    Vaka Seç Hafta içi(Şimdi)
    Vaka 1, 7
    MsgBox "Hafta sonu"
    Başka Durum
    MsgBox "Bugün hafta sonu değil"
    Son Seçim
    son alt

    VBA yorumlayıcısı, True koşulu bulunur bulunmaz Select Case yapısından çıkar. Bu nedenle, maksimum verimlilik için önce en olası durum test edilmelidir.

    Döngü bir dizi talimatı tekrarlama işlemidir. Belki döngünün kaç kez tekrar etmesi gerektiğini önceden biliyorsunuz veya bu değer programdaki değişkenler tarafından belirleniyor. En basit örnek iyi döngü - Sonraki için:

    İçin tezgah = Başlangıç O son
    [talimatlar]
    [talimatlar]
    Sonraki[ tezgah]

    Aşağıdaki prosedür, ilk 100 tamsayının kareköklerini toplar:

    Alt SumSquareRoots()
    Çift Olarak Dim Sum
    Tamsayı Olarak Kısma Sayısı
    Toplam = 0
    Sayım için = 1'den 100'e
    Toplam = Toplam + Sqr(Sayı)
    Sonraki Sayı
    Mesaj Kutusu Toplamı
    son alt

    For-Next döngüsündeki Step değişkeninin değeri negatif olabilir. Aşağıdaki prosedür, etkin sayfadaki 2, 4, 6, 8 ve 10. satırları siler:

    Alt Satırları Sil()
    SatırNum Uzunluğunda Dim
    RowNum = 10 - 2 için Adım -2
    Satırlar(SatırNum).Sil
    Sonraki SatırSayısı
    son alt

    For-Next döngüleri ayrıca bir veya daha fazla Exit For deyimi içerebilir. Program bu ifadeyle karşılaştığında hemen döngüden çıkar:

    Alt ExitForDemo()
    MaxVal'ı Çift Olarak Kısın
    Satırı Uzun Kadar Loşlaştır
    MaxVal = Application.WorksheetFunction.Max(Range("A:A"))
    Satır için = 1 - 1048576
    Cells(Row, 1).Value = MaxVal ise O zaman
    Çıkış için
    eğer biterse
    sonraki sıra
    MsgBox "Satırdaki maksimum değer" & Satır
    Hücreler(Satır, 1). Etkinleştir
    son alt

    Bir sütundaki maksimum değer, Excel MAX işlevi kullanılarak hesaplanır. Bu değer daha sonra MaxVal değişkenine atanır. For-Next döngüsü, sütundaki her hücreyi kontrol eder. Belirtilen hücre MaxVal'a eşitse, Exit For deyimi prosedürü sonlandırır. Ancak, döngüden çıkmadan önce, prosedür kullanıcıyı istenen hücrenin konumu hakkında bilgilendirir ve onu etkinleştirir.

    Do While döngüsü, verilen koşul sağlandığı sürece yürütülür. Bir Do While döngüsü aşağıdaki iki sözdiziminden birine sahip olabilir.

    Yapmak
    [talimatlar]
    [talimatlar]
    döngü

    Yapmak
    [talimatlar]
    [talimatlar]
    döngü

    EnterDates1 prosedürü, etkin hücreden başlayarak geçerli ayın tarihlerini bir çalışma sayfası sütununa girer:

    SubEnterDatesl()
    " Do While döngüsü, başlangıçta durum kontrol edilir
    Tarihi Tarih Olarak Karart
    TheDate = DateSerial(Yıl(Tarih), Ay(Tarih), 1)
    Ay(Tarih) = Ay(Tarih) iken yapın
    ActiveCell = Tarih
    Tarih = Tarih + 1
    ActiveCell.Offset(1, 0).Etkinleştir
    döngü
    son alt

    Bu prosedür, çalışma sayfasına kaydedilen tarihleri ​​saklayan TheDate değişkenini kullanır. Geçerli ayın ilk günü, değişkeni başlatmak için kullanılır. Döngünün yürütülmesi sırasında, TheDate değişkeninin değeri girildi. aktif hücre, ardından bu değer bir artırıldı ve ardından bir sonraki hücre etkinleştirildi. Döngü, TheDate değişkenine atanan ay değeri, geçerli tarihin ay değeri ile eşleşene kadar devam eder.

    Do While döngüleri ayrıca bir veya daha fazla Exit Do deyimi içerebilir. Exit Do deyimine ulaşıldığında, döngü sona erer ve kontrol, Döngü deyiminden sonraki ifadeye aktarılır.

    Do Until döngüsünün yapısı, Do While yapısıyla pek çok ortak noktaya sahiptir. Tek fark, döngü koşulunun nasıl kontrol edildiğidir. Do While değişkeninde, koşul doğru olduğu sürece döngü çalışır. Do Until döngüsünde, döngü koşul sağlanana kadar çalışır. Do Until yapısı ayrıca iki tür sözdizimi ile temsil edilebilir.

    Kitaba dayalı. - M: Diyalektik, 2013. - S. 211-251.


    Kitap: Excel'de makro kullanma.

    Sayfalar: 507

    Biçim: DJVU
    Boyut: 8.02 MB

    tarafından sağlanan güçlü işlevselliğe rağmen Kullanıcı arayüzü Excel'de, yalnızca programlı olarak gerçekleştirilebilen çok sayıda görev vardır. "Excel'de Makroları Kullanma" kitabı, Excel'de çalışırken ortaya çıkan çeşitli pratik sorunları çözme örnekleri içeren Excel VBA'da programlamaya giriş niteliğindedir.Kitabın materyali, Excel kullanıcılarına ve ayrıca Excel'e aşina olmayan programcılara yöneliktir. nesne modeli Excel. Excel 2002 için makro geliştirmeye yönelik bölümlerin yanı sıra, Excel ortamında makro ve program yazmaya giriş niteliğinde bir derstir.

    Kitap: Yoğun Excel Programlama Hafta Sonu Kursu

    Yayımcı: diyalektik
    Sayfalar: 421
    Biçim: DJVU
    Boyut: 12.6MB
    Kalite: Normal
    Dil: Rusça
    Tür: programlama
    Yayın yılı: 2004
    ISBN: 5-8459-0687-3

    Microsoft Excel'in yetenekleri, veri tablolarıyla çalışmakla sınırlı değildir. Elektronik tablo araçlarının arkasında güçlü bir programlama dili vardır - VBA (Uygulamalar için Visual Basic). Bununla birlikte, hemen hemen her kullanıcı, hesaplamaların mekanik olarak yürütülmesinden kendi ekran formlarıyla ve revizyon olasılığıyla bir veri giriş sistemi oluşturmaya kadar, Excel'deki en çeşitli görevleri çözmek için VBA dilinde program yazmayı öğrenme fırsatına sahiptir. yazılan değerlerin doğruluğu.

    Kitap: VBA 2002'de Programlama

    Kalite: Normal
    Dil: Rusça
    Tür: programlama

    Kitap, Microsoft Office uygulamalarının (Word, Excel, Access, PowerPoint, FrontPage, Visio, vb.) temel dili olan Visual Basic for Applications (VBA) ile programlama üzerine bir ders içermektedir. Kitap, Word-, Excel-, PowerPoint-nesnelerini kullanarak Windows ortamında program yapmaya yeni başlayanlar için tasarlanmıştır.Kitabın bir kısmı, içinde depolanan veritabanlarını kullanan Office uygulamalarının geliştirilmesine ayrılmıştır. ayrı dosyalar ve uzak sunucularda.Kitabın materyali, Visual Basic dilinin temellerini öğrenmek ve belgeler, elektronik tablolar, diyagramlar, sunumlar vb. kullanıcıya en modern arayüz araçlarını sağlayan kutular.Kitaptaki örneklerin çoğu güncel iş konularına ayrılmıştır, bu nedenle kitap, görünüşe göre hem Microsoft Office hem de yerleşik VBA programlama dili için tasarlanmış çeşitli düzeylerdeki yöneticiler için çok yararlı olacaktır.
    Kitabın sonundaki ekler, hem VBA hem de normal VB ile çalışırken kullanışlı bir referans görevi görebilir.

    Kitap: Excel 2003'te Profesyonel VBA Programlama
    John Walkenbach
    Yayımcı: Williams
    Biçim: PDF
    Boyut: 11 MB
    Kalite: Harika
    Dil: Rusça
    Yayın yılı: 2005
    ISBN: 5-8459-0771-3
    Kitap bir disk ile birlikte gelir.

    Excel'de birçok kitap yazılmıştır. Ancak bu kitap özeldir - elektronik tablo uygulaması geliştirmeye daha geniş bir bağlamda bakar. VBA, gerekli olmasına rağmen özel uygulama geliştirme ortamının yalnızca bir bileşenidir. Bu kitap, VBA kullanarak uygulama geliştirmenin inceliklerini anlamanıza yardımcı olacaktır. Çok sayıda tarif eder VBA dili, yetenekleri ve kullanım ortamı İlk olarak, size programın yetenekleri hakkında bir genel bakış sunulacak, ardından VBA programlama kavramlarını tanımlamaya devam edeceksiniz ve ardından dilin kendisiyle tanışacaksınız. Yeni başlayan bir VBA programcısıysanız, bu sürümde hepsini bulacaksınız. gerekli bilgi için gerekli olacak daha fazla iş. Zaten VBA ile imrenilecek bir deneyiminiz varsa, bu kitap bilginizi zenginleştirecek ve artıracak, yeni teknikler ve gerçek hayattan örneklerle yenileyecektir.

    Pdf versiyonu düzenlendi ve .

    Kitap: :
    John Walkenbach
    Yayımcı: wiley
    Biçim: PDF
    Sayfalar: 1308
    Boyut: 11.9MB
    Kalite: Harika
    Dil: İngilizce
    Yayın yılı: 2010
    Bu kitap, Excel'de (ve Microsoft Office'i oluşturan diğer uygulamalarda) yerleşik programlama dili olan Visual Basic for Applications'a (VBA) odaklanmaktadır. Daha spesifik olarak, Excel'de çeşitli görevleri otomatikleştiren programların nasıl yazılacağını gösterecektir. Bu kitap, basit makroları kaydetmekten gelişmiş kullanıcı odaklı uygulamalar ve yardımcı programlar oluşturmaya kadar her şeyi kapsar. Bu kitap Microsoft'u kapsamaz görsel stüdyo Office Araçları (VSTO). VSTO, Visual Basic .NET ve Microsoft Visual C# kullanan nispeten yeni bir teknolojidir. VSTO, Excel ve diğer Microsoft Office uygulamalarını denetlemek için de kullanılabilir.
    Bu, yeni başlayan Excel kullanıcılarına yönelik bir kitap değildir. Excel ile hiç deneyiminiz yoksa, Excel'in tüm özelliklerine kapsamlı bir şekilde yer veren Excel 2010 İncil daha iyi bir seçim olabilir. Bu kitap, her düzeydeki kullanıcı için hazırlanmıştır.

    Kitap: : Excel 2010'da Profesyonel VBA Programlama
    John Walkenbach
    Yayımcı: diyalektik
    Biçim: PDF
    Sayfalar:920
    Boyut: 22.1MB
    Kalite: Harika
    Dil: Rusça
    Yayın yılı: 2010 Bu kitabın konusu, Excel'de ve Microsoft Office'in içerdiği diğer uygulamalarda yerleşik olarak bulunan Visual Basic for Applications (VBA) programlama dilidir. Excel'de çeşitli görevlerin yürütülmesini otomatikleştiren programların oluşturulmasını ayrıntılı olarak açıklar ve ayrıca en basit makroları yazmaktan en karmaşık uygulamaları ve kullanıcı etkileşimi için tasarlanmış yardımcı programları oluşturmaya kadar çok çeşitli diğer konuları kapsar. Bu kitap yazılımı tanımlamıyor Microsoft paketi Office için Visual Studio Araçları (VSTO). Visual Basic .NET ve Microsoft Visual C# kullanan görece yeni bir teknolojinin uygulamasıdır. VSTO teknolojisi, davranışı kontrol etmek için de kullanılabilir Excel programları ve diğerleri Microsoft uygulamaları ofis.

    Bu kitap acemi Excel kullanıcıları için tasarlanmamıştır. Bu uygulamayla ilgili deneyiminiz yoksa, önce Excel'in tüm özelliklerini ayrıntılarıyla anlatan Excel 2010 Kullanıcı İncil kitabını okuyun (her düzeydeki kullanıcıya yöneliktir).


    Kitap:VBA Eğitimi
    Garnayev A.
    Yayımcı: bhv
    Sayfalar: 512
    Biçim: rar'da resimlerle html
    ISBN: 5-8206-0067-3
    Boyut: 2.22 MB

    Harika

    Dil: İngilizce
    Yayın yılı: 2009

    Microsoft Excel, bir elektronik tablodan çok daha fazlasıdır. Excel 97'de Visual Basic Düzenleyicisi'nin kullanıma sunulması ve ardından Excel 2000'in kararlılığının önemli ölçüde iyileştirilmesiyle, Excel kendi başına saygın bir geliştirme platformu haline geldi. Excel uygulamaları artık C++, Java ve .NET geliştirme platformunu temel alan uygulamaların yanı sıra görev açısından kritik kurumsal uygulamaların temel paketinin bir parçası olarak bulunuyor.
    Ne yazık ki, Excel hala çok sık olarak bir hobi platformu olarak düşünülmekte ve insanlar boş zamanlarında yalnızca küçük görevleri otomatikleştirmek için Excel uygulamaları geliştirmektedir. Birçok Excel VBA kitabına kısa bir bakış, bu görüşü doğrular gibi görünüyor. Bu kitaplar, Excel görevlerini VBA kullanarak otomatikleştirmenin temellerine odaklanır. Bu kitap, Excel'in profesyonel kalitede uygulamalar geliştirmek için bir platform olarak nasıl kullanılacağına dair ayrıntılı bir açıklama sağlayan türünün ilk örneğidir.
    Diğer büyük geliştirme platformlarının çoğu, bu platformu kullanarak uygulama tasarlamak, tasarlamak ve geliştirmek için ortak olarak kabul edilen en iyi uygulamaları açıklayan fiili bir standart metne sahip gibi görünse de, şimdiye kadar Excel'de yoktu. Bu kitap bu boşluğu doldurmaya çalışıyor. Yazarlar, bireylerden en büyük çok uluslu şirketlere kadar değişen müşteriler için Excel tabanlı uygulamalar oluşturan profesyonel Excel geliştiricileridir. Bu kitap, müşterilerimiz için yazdığımız uygulamaları tasarlarken, geliştirirken, dağıtırken ve desteklerken kullandığımız yaklaşımları açıklıyor.
    Bu kitap kullanıcı tarafından sağlandı

    Çok az insan popüler olanın ilk versiyonunun olduğunu biliyor. Microsoft ürünü Excel 1985'te ortaya çıktı. O zamandan beri çeşitli modifikasyonlardan geçti ve dünya çapında milyonlarca kullanıcı tarafından talep görüyor. Aynı zamanda, birçok kişi bu elektronik tablo işlemcisinin yeteneklerinin yalnızca küçük bir bölümüyle çalışıyor ve Excel'de programlama yeteneğinin hayatlarını nasıl kolaylaştıracağını bile bilmiyor.

    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, avantajlarına karşılaştırmalı bir geliştirme kolaylığı olarak atıfta bulunur. Uygulamada görüldüğü gibi, profesyonel programlama becerisine sahip olmayan kullanıcılar bile VBA'nın temellerinde ustalaşabilir. VBA'nın özellikleri, bir ofis uygulaması ortamında bir betiğin yürütülmesini içerir.

    • tekrar "Makrolar" satırına gidin;
    • listeden “Makro 1”i seçin;
    • "Çalıştır" ı tıklayın ("Ctrl + hh" tuş kombinasyonu başlatılarak aynı eylem başlatılır).

    Sonuç olarak, makro kaydetme sürecinde 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ş" düğmesine tıklayın. Sonuç olarak, kendilerini bir VBA ortamında bulurlar. 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ç. Çeviride “Range(“C1”).Seç” gibi görünüyor, yani VBA Excel'e, C1 hücresine atlıyor.

    Kodun aktif kısmı ActiveSheet.Paste komutu ile tamamlanır. Seçilen hücrenin (bu durumda A1) içeriğini seçilen C1 hücresine yazmak 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 bir y=x + x2 + 3x3 - cos(x) fonksiyonu var. Programını almak için bir makro oluşturmanız gerekir. Bu sadece VBA döngüleri kullanılarak yapılabilir.

    Fonksiyon argümanının ilk ve son değerleri için x1=0 ve x2=10 alınır. Ek olarak, bir sabit - bağımsız değişkeni değiştirme adımının değeri ve sayacın başlangıç ​​değeri - girmelisiniz.

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

    X1 Sırasında Yap< x2 (цикл будeт выполняться пока вeрно выражeниe 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ç aktif);

    x1 = x1 + adım (argüman, adım boyutuna göre değişir);

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

    Daha sonra bunların üzerine Excel'de standart olacak şekilde bir grafik oluşturulur.

    Örnek 3

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

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

    Öncelikle yukarıda açıklandığı gibi bir makro oluşturmanız gerekir. Ardından, kodun kendisini yazın. 10 hücrenin değerleri ile ilgilendiğimizi düşünüyoruz. Kod böyle görünüyor.

    i = 1 - 10 için Sonraki

    Komut "insan" diline "1'den 10'a kadar birer birer tekrarla" şeklinde çevrilir.

    Görev, kareli bir sütun elde etmekse, örneğin, 1'den 11'e kadar olan tüm tek sayılar, o zaman ş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 olmaması, adımın tek olduğu anlamına gelir.

    Elde edilen sonuçlar (i,1) numaralı hücrelere kaydedilmelidir. Daha sonra döngünün her başlangıcında i'de adım boyutu kadar bir artışla sıra numarası otomatik olarak büyüyecektir. Böylece kod optimizasyonu gerçekleşecektir.

    Genel olarak, kod şöyle görünecektir:

    For i = 1 To 10 Adım 1 (basitçe yazabilirsiniz For i = 1 To 10)

    Hücreler(i, 1).Değer = i ^ 2

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

    Makroyu kaydetmek ve çalıştırmak da dahil olmak üzere her şey doğru yapılırsa (yukarıdaki talimatlara bakın), o zaman her çağrıldığında, belirtilen boyutta bir sütun elde edilir (bu durumda, 10 hücreden oluşur).

    Örnek 4

    Günlük yaşamda, çoğu zaman bir duruma bağlı olarak şu veya bu kararı verme ihtiyacı vardır. VBA Excel'de onlarsız yapamazsınız. Algoritmanın yürütülmesinin ilerideki seyrinin seçildiği ve başlangıçta önceden belirlenmediği program örnekleri, çoğunlukla If …Then yapısını (karmaşık durumlar için) If …Then …END If kullanır.

    Somut bir vakayı ele alalım. Koordinatları (1,1) olan hücrenin yazılması için "Excel" için bir makro oluşturmanız gerektiğini varsayalım:

    1 bağımsız değişken olumluysa;

    bağımsız değişken null ise 0;

    bağımsız değişken negatifse 1.

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

    x= Cells(1, 1).Value (bu komut (1, 1) koordinatlarındaki hücre içeriğinin x 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

    Makroyu çalıştırmak ve Excel'de bağımsız değişken için istenen değeri elde etmek kalır.

    VBA İşlevleri

    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 kullanmayı öğ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, doğal logaritma, tamsayı kısmı vb. değerlerini elde ederler.
    • Mali işlevler. Varlıkları ve Excel'de programlama kullanmaları sayesinde, muhasebe ve finansal hesaplamalar için etkili araçlar elde edebilirsiniz.
    • Dizi işleme işlevleri. Bunlar Array, IsArray; Bağlı; UBound.
    • Satır için VBA Excel işlevleri. Bu oldukça büyük bir gruptur. Örneğin, bir tamsayı bağımsız değişkenine eşit boşluk sayısına sahip bir dize oluşturmak için Space veya karakterleri ANSI koduna dönüştürmek için Asc işlevlerini içerir. Hepsinin geniş bir uygulaması vardır ve bu tablolarla çalışmayı büyük ölçüde kolaylaştıran uygulamalar oluşturarak Excel'de dizelerle çalışmanıza izin verir.
    • Veri türü dönüştürme işlevleri. Örneğin, CVar, bir İfade bağımsız değişkeninin değerini bir Variant veri türüne dönüştürerek döndürür.
    • Tarihlerle çalışmak için işlevler. Excel'in standart yeteneklerini önemli ölçüde genişletirler. Bu nedenle, WeekdayName işlevi, haftanın gününün adını (tam veya kısmi) numarasına göre döndürür. Zamanlayıcı daha da kullanışlıdır. Gece yarısından günün belirli bir saatine 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, Ekim, sekizlik bir sayı döndürür.
    • Biçimlendirme işlevleri. Bunlardan en önemlisi Format'tır. Biçim açıklamasında verilen talimatlara göre biçimlendirilmiş bir ifadeyle Variant türünde bir değer döndürür.
    • vesaire.

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

    Örnek 5

    Daha karmaşık problemleri çözmeye geçelim. Örneğin:

    İşletmenin gerçek maliyet düzeyi raporunun bir kağıt belgesi verilir. Gerekli:

    • şablon bölümünü "Excel" elektronik tablo işlemcisini kullanarak geliştirmek;
    • ilk verilerin doldurulmasını isteyecek bir VBA programı oluşturun, gerekli hesaplamaları yapın ve şablonun karşılık gelen hücrelerini bunlarla doldurun.

    Çözümlerden birini ele alalım.

    Bir şablon oluştur

    Tüm eylemler Excel'de standart bir sayfada gerçekleştirilir. Boş hücreler, ay, yıl, tüketici şirketin adı, maliyet miktarı, düzeyi ve ciro bilgilerinin girilmesi için ayrılmıştır. Raporun derlendiği şirket (şirket) sayısı sabit olmadığından, sonuçlara göre değer girmek için hücreler ve uzmanın tam adı önceden ayrılmamıştır. Çalışma sayfasına yeni bir ad verilir. Örneğin, "Օtchet".

    Değişkenler

    Bir şablonu otomatik olarak dolduracak bir program yazmak için gösterimi seçmeniz gerekir. Değişkenler için kullanılacaklar:

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

    Aynı harflerle, ancak "önek" ile belirtelim, toplamın verilen sütunda birikmesi. Örneğin, ItogTP - tablonun "planlanan ciro" başlıklı sütununu ifade eder.

    VBA programlama kullanarak bir problem çözme

    Tanıtılan gösterimi kullanarak, sapmalar için formüller elde ederiz. Hesaplamayı% olarak yapmak gerekirse, elimizde (F - P) / P * 100 ve toplamda - (F - P) var.

    Bu hesaplamaların sonuçları en iyi şekilde hemen Excel elektronik tablosunun uygun hücrelerine girilebilir.

    Fiili ve tahmini toplamlar için, 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 olması durumunda - (ItogF - ItogP) kullanın.

    Sonuçlar yine hemen ilgili hücrelere yazılır, böylece değişkenlere atamaya gerek kalmaz.

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

    Başlık bilgileri girildikten sonra "Raporlama Tablosu Oluştur" butonuna sadece 1 kez basılması yeterlidir. Dikkat edilmesi gereken başka kurallar da var. Özellikle tablodaki her aktivite türü için değer girildikten sonra her seferinde “Satır Ekle” butonuna basılmalıdır. Tüm verileri girdikten sonra, "Bitir" düğmesini tıklamanız ve ardından "Excel" penceresine geçmeniz gerekir.

    Artık Excel için makroları kullanarak sorunları nasıl çözeceğinizi biliyorsunuz. Şu anda en popüler metin düzenleyicisi olan "Word" ortamında çalışmak için vba excel'i kullanma becerisi (yukarıdaki program örneklerine bakın) da gerekebilir. Özellikle, yazının en başında gösterildiği gibi yazarak veya kod yazarak, görev tuşlarına basarak veya "Görüntüle" sekmesi aracılığıyla metin üzerinde birçok işlemin gerçekleştirilebildiği menü düğmeleri oluşturabilirsiniz. ve "Makrolar" simgesi.