• Çalışma kitabına hazır bir makro nasıl eklenir? Makro Kaydedici ile görevleri otomatikleştirin - Excel

    Excel'deki makrolar gibi nesneler, Excel'deki çalışma sürecini yetkin bir şekilde düzenlemeye yardımcı olacaktır.

    MS Office yazılım paketinde bu nesnelerle çalışmanın tüm özelliklerini daha ayrıntılı olarak ele alalım.

    Makroların kullanımıyla belgenizdeki her hücre otomatikleştirilebilir. Bunun nedeni, kullanıcının tüm eylemleri oluşturuldukları sırada kaydetmesidir.

    Makro nedir ve neden gereklidir?

    Herhangi bir MS Office programında makrolarla çalışabilirsiniz. Her şeyden önce, kullanıcının programdaki çalışmalarını yetkin bir şekilde organize etmek için bunlara ihtiyaç vardır.

    Aynı tür görevleri ve eylemleri birkaç düzine kez gerçekleştirmemek için gereklidirler.

    Oluşturulması ve kullanılması, zamandan önemli ölçüde tasarruf etmeye ve programdaki işi mümkün olduğunca otomatikleştirmeye yardımcı olacaktır.

    Önemli! Oluşturulan makro sayesinde işi anında yapabilirsiniz, manuel olarak yapmak ise çok zaman alacaktır.

    Aslında gövdesi, programa, kullanıcılar birini veya diğerini seçtiğinde ne yapacağını söyleyen talimatlardan oluşur.

    Makro kavramına Word programında da rastlanabilir, ancak Excel'de birkaç avantajı vardır:

    • İlk olarak, tüm talimatları tek bir eksiksiz yürütme komut dosyasında birleştirir, bu da program üzerindeki yükü optimize etmenize ve daha hızlı çalışmaya başlamanıza olanak tanır;
    • Araç çubuğundaki tuşu veya özel bir tuş kombinasyonunu kullanarak arayabilirsiniz. Bu, kullanıcının çalışma sırasında klavyeden kopmamasını sağlayacaktır;

    olabilecek iki makaleye daha dikkat çekiyoruz.ihtiyacın olacak:

    Excel 2010, 2007, 2013'te kendi makrolarınızı oluşturma

    Excel 2007, 2013'te oluşturma örneklerini daha ayrıntılı olarak ele alalım:

    • Üzerinde çalıştığınız ve makro oluşturmak istediğiniz belgeyi açın. Bu arada, bir eylemin gerçekleştirildiği her hücre üzerinde çalışılmalıdır;
    • Şeritte geliştirici sekmesini görüntüleyin. Bunun için "Dosya" menü öğesini açın ve şekilde gösterildiği gibi seçenekleri açın;

    • Ardından şerit özelleştirmesini seçin ve geliştirici penceresini aşağıdaki şekilde gösterildiği gibi ana pencereler listesine ekleyin;

    • Artık doğrudan kullanıcı makrosunun kendisini oluşturmaya gidebilirsiniz.
      Oluşturulduktan sonra her hücre otomatikleştirilecektir - bu, kullanıcı belgesindeki herhangi bir hücrenin, kullanıcının belirttiği eylem türünün aynısını gerçekleştireceği anlamına gelir;
    • Geliştirici sekmesinde bul özel anahtar yaratmak için. Konumu aşağıdaki şekilde gösterilmiştir;

    • tuşuna tıklayın. Bir ad, açılacağı bir klavye kısayolu belirtmeniz gereken bir oluşturma penceresi görünecektir. Makronun nasıl çalıştığına dair kısa bir açıklama da ekleyebilirsiniz.
      Bu, kafanızın karışmaması için çok fazla varsa yapılmalıdır;

    • Ardından Tamam'ı tıklayın. Pencere kapanacak ve kayıt işlemi başlayacaktır. Kaydı durdurmak için kontrol panelinde ilgili tuşa basın;

    • Şimdi makroda kaydedilecek eylemleri gerçekleştirmeye başlayın. Her hücre belirli verilerle doldurulabilir.
      Sadece bir hücre ile de çalışabilirsiniz, makroyu kaydettikten ve etkinleştirdikten sonra, aynı hücre belirtilen algoritmaya göre kaydedilecektir;
    • Veri kaydını durdur düğmesine basmayı unutmayın. Yukarıdaki tüm adımları tamamladıktan sonra kaydedilecek ve programa kaydedilecektir.

    Excel'de makroları etkinleştirme ve bunlarla çalışma

    Bunu yapmak için aşağıdaki talimatları izleyin:

    • Geliştirici sekmesinde "Makrolar" adlı bir düğme arayın. Üstüne tıkla;

    • Listeden ihtiyacınız olan makroyu seçin ve "Çalıştır" düğmesine tıklayın;

    • Ayrıca kullanıcı tarafından belirtilen klavye kısayolunu kullanarak gerekli makroyu çalıştırabilirsiniz. İlk aşama yaratılışı;
    • Yürüt düğmesine tıkladıktan sonra, kayıt sırasında gerçekleştirilen tüm işlemler tekrar gerçekleştirilecektir.

    Belirli bir hücrenin birden çok kez kopyalanması gerektiğinde makro en iyi şekilde kullanılır.

    A1 hücresinin etkin çalışma kitabındaki her sayfada vurgulanacak makro. Ayrıca ekranı hareket ettirir.

    Sub A1SelectionEachSheet() Dim i Tamsayı Olarak Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Select ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 Range("a1").Select Next Sheets(1) .Uygulamayı Seçin.ScreenUpdating = True End Sub

    Geçerli sayfayı belirtilen sayıda kopyalamak için makro. Bir tür makroyu test etmek için kullanışlıdır - değişiklikler yaptılar, verilerin bir kopyasında kontrol ettiler. Kopyalar bitti - makroyu yeniden çalıştırın

    Sub SimpleCopy() Dim i Tamsayı Olarak, j Tamsayı Olarak i = Application.InputBox("Geçerli sayfanın kopya sayısını girin") Application.ScreenUpdating = False For j = 1 için ActiveSheet.Copy after:=Sayfalar(Sayfalar) .Count) ActiveSheet .Name = "Kopyala " & j Sonraki j Application.ScreenUpdating = True End Sub

    Bir sayfada belirli bir aralıktan başlıkları olan sayfalar oluşturun

    Sub CreateFromList() Hücreyi Seçim Sayfalarındaki Her Hücre İçin Aralık Olarak Karart.Sonra Ekle:=Sayfalar(Sayfalar.Sayı) ActiveSheet.Name = cell.Value Sonraki hücre

    Markros gecikmeli e-posta gönderiyor. John Walkenbach'ın Profesyonel VBA Programlama kitabından değiştirilmiş makro

    Sub SendMail() Dim OutApp As Object As OutMail As Object Set OutApp = CreateObject("Outlook.Application") OutApp.Session.Logon Hatada GoTo temizleme Set OutMail = OutApp.CreateItem(0) Hatada Devam Devam OutMail .To = " [e-posta korumalı]" .Subject = "Satış Raporu" .Attachments.Add "C:\Test.txt" .Body = "Message Body" .DeferredDeliveryTime = Değiştir(Tarih, ".", "/") & " 11:00:00 " .send ".Postayı oluşturmak ve açmak için görüntüle Son Hatada GoTo 0 Set OutMail = Hiçbir şey temizleme: Set OutApp = Hiçbir Şey End Sub

    Nikolai Pavlov'dan biraz değiştirilmiş içindekiler tablosu makrosu.
    Kitabın zaten bir İçindekiler sayfası varsa, makro onu silmenizi önerir. Değilse, bir "İçindekiler Tablosu" sayfası oluşturur ve sayfa adlarıyla bağlantılar ekler

    Sub TableOfContent() Çalışma Sayfası Olarak Dim sayfası Hücre Aralık Olarak Dim Dim Tamsayı Olarak Yanıt Application.ScreenUpdating = ActiveWorkbook ile Yanlış ActiveWorkbook.Worksheets'teki Her Çalışma Sayfası İçin Worksheet.Name = "İçindekiler" ise Cevap = MsgBox("Bir sayfa var) İçindekiler adlı çalışma kitabında silinsin mi?", vbYesNo) Cevap = vbNo ise Exit Sub If Answer = vbYes Sonra Application.DisplayAlerts = False Worksheet.Delete Application.DisplayAlerts = True End If End If Next End With Sheets(Array) (1)).Select Sheets.Add Sheets(1).Name = ActiveWorkbook ile "İçindekiler" ActiveWorkbook'taki Her Sayfa İçin.Worksheets If Sheet.Name<>"İçindekiler" Ardından Hücre = Çalışma Sayfaları(1). .Ad & """ & "!A1" hücresi.Formula = sayfa.Ad Sonraki sayfa Satırlarla Biterse Sonlandır("1:1").Uygulamayı Sil.ScreenUpdating = True End Sub

    Sayfaları VBA sihirbazlarından sıralama. Dahil olmak üzere makro sıralamaları gizli sayfalar. Kitabın yapı koruması varsa çalışmaz

    Sub SORT_ALL_SHEETS() Application.ScreenUpdating = False: Application.EnableEvents = False Dim iSht As Worksheet, oDict As Object, i%, j% Set oDict = CreateObject("Scripting.Dictionary") " her sayfanın görünürlük durumunu hatırlayın ve yapın ActiveWorkbook.Sheets'teki Her iSht için görünür olan her şey oDict.Item(iSht.Name) = iSht.Visible: iSht.Visible = True Next With ActiveWorkbook " i = 1 için görünür sayfaları sırala - .Sheets.Count için - 1 j = i + için 1 To .Sheets.Count If UCase(.Sheets(i).Name) > UCase(.Sheets(j).Name) Sonra .Sheets(j).Move Before:=.Sheets(i) Sonraki j Sonraki i Şununla Bitir " geri yükle ilk durum her sayfanın görünürlüğü ActiveWorkbook.Sheets'teki Her iSht için iSht.Visible = oDict.Item(iSht.Name) Sonraki Application.EnableEvents = True: Application.ScreenUpdating = True End Sub

    "Sayfa1" sayfasından "Alan1" ve "Alan2" sütunlarını içe aktarın Excel dosyası ADODB bağlantısı aracılığıyla "C:\Manager.xls" ve geçerli sayfanın A1 hücresinden başlayarak içeriği yapıştırın

    Ç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 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, Visual programlama dili ile yapılır. için temel Başlangıçta en ünlü yerleşik olan uygulama elektronik tablo işlemcisi Microsoft'tan.

    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. Bunlar, VBA program kodunun atıfta bulunduğu gerçeğinden kaynaklanmaktadır. işlevsellik, içinde bulunan Yeni sürümürün, ancak eskisinde eksik. Ayrıca, dezavantajlar, kodun değişiklikler için aşırı yüksek açıklığını içerir. bir yabancı tarafından. Yine de Microsoft Office, IBM Lotus Symphony'nin yanı sıra, kullanıcının ilk kodu şifrelemesine ve onu görüntülemek için bir parola belirlemesine olanak tanır.

    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.

    Ana olan, en çok karşılık gelen Uygulamadır. excel programı. 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, makroların oluşturulmasıdır. doğru kod. 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 sonraki seyrinin seçildiği ve başlangıçta önceden belirlenmediği program örnekleri, çoğunlukla If ... Then yapısını kullanır (için zor vakalar) Eğer … O zaman … SON Eğer.

    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 olumlu ise;

    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.

    Bu siteyi Excel'in kullanışlı özellikleri üzerine bir not defteri olarak oluşturmaya başladım. İstediğiniz zaman siteye giderek programın belirli bir özelliği hakkındaki bilginizi tazeleyebilir, ayrıca Excel konusunda yardım isteyen arkadaşlarınıza veya iş arkadaşlarınıza makalenin bağlantısını gönderebilirsiniz. Sitenin kitlesi oldukça hızlı büyüdü ve gördüğüm kadarıyla kaydedilen bilgiler sadece benim ve birkaç kişi için değil, tanımadığım birçok kişi için de yararlı ve arama motorları tarafından yüksek puan alıyor. Excel'in yetenekleri açısından kendimden eminsem, kendime VBA'da çok üst düzey bir uzman diyemem. Bu nedenle sık kullandığım faydalı makroları yazacağım geniş bir yardımcı yazı oluşturmak istiyorum. Böyle bir VBA özellikleri koleksiyonunun sadece benim için yararlı olmayacağından eminim.

    Sitede zaten VBA hakkında birkaç makale var, ancak sık kullanılan birçok kodu tek bir yerde tutmanın yararlı olacağını düşünüyorum.

    Basit bir işlevle ekranda makro eylemlerinin görüntülenmesini kapatın. Bu, yürütmeyi görsel olarak iyileştirmekle kalmayacak, aynı zamanda makronun çok daha hızlı çalışmasını sağlayacaktır.

    Alt Makros1() Application.ScreenUpdating = 0 "Kodunuz Application.ScreenUpdating = 1 End Sub

    Makronun sonuna işlevi eklemeyi unutmayın

    Makro yürütme işleminden sonra kopya seçimi nasıl kaldırılır?

    Makronuzda kopyalama ve yapıştırma için bir aralık ayırırsanız. Makronun sonunda seçimi devre dışı bırakmayı unutmayın.

    Alt Makros1() "Kodunuz Application.CutCopyMode = 0 End Sub

    Kullanışlı makrolar Bir aralığın son satırı veya sütunu nasıl bulunur?

    Bu yapı, doldurulmuş aralığın son satırının veya sütununun numarasını kolayca bulmanıza yardımcı olacaktır. Döngülerde kullanmak özellikle uygundur, döngünün 1000 satırını bir kenar boşluğu ile ayarlamanıza gerek yoktur, Excel bu yapıyı kullanarak aralığın sonunun nerede olduğunu bulacaktır:

    Alt makros1() Dim mLastRow As Long Dim nLastCol As Long mLastRow = Cells(Rows.Count, 1).End(xlUp).Row "Dolu bir aralığın son satırının numarasını bulur nLastCol= Cells(1, Columns.Count) ).End(xlToLeft ).Column "End Sub aralığının son doldurulmuş sütun numarasını bulur

    Ayrıca popüler Integer'ın büyük tablolar için yeterli gelmeyebileceği (32 767) durumuna düşmemek için değişkeni hemen Long (uzunluk 2 147 483 647) olarak bildiriyorum.

    Ayrıca aramanın ilk sütunda veya ilk satırda olmasına dikkat etmeli, doğru tanım için istediğiniz sayıyı seçiniz.

    Döngü ve koşul kontrolü için döngü

    Aralıkların son satır ve sütun numaralarını bulduysanız bunları döngülerde kullanabilirsiniz. Örneğin, ilk sütunu gözden geçirmeniz ve boş hücrelerin sayısını saymanız gerekir.

    Alt makros1() Application.ScreenUpdating = 0 Dim mLastRow As Long Dim Kol As Long "Count Değişkeni Dim i As Long " Döngü Değişkeni mLastRow = Cells(Rows.Count, 1).End(xlUp).Row Kol = 0 For i = 1 mLastRow If Cells(i, 1).Value = "" Sonra Kol = Kol + 1 End If Sonraki i MsgBox Kol Application.ScreenUpdating = 1 End Sub

    Msgbox burada da kullanılmaktadır, bu özellik sayesinde verileri ayrı bir pencerede görüntüleyebilirsiniz. Örneğim için şöyle görünecek:

    Makro Yürütme Süresini Sayma

    Alt makros1() TimeStart = Şimdi TimeFinish = Şimdi MsgBox "Zaman: " & Format(TimeFinish - TimeStart, "s:dd:ss") End Sub

    MsgBox aşağıdaki sonucu verir:

    Sonraki optimizasyon için makroların yürütme süresini izlemek çok uygundur.

    Bunlar benim çok sık kullandığım kullanışlı makrolardır. Yavaş yavaş bu listeyi genişleteceğim. Tüm etkili otomasyon!

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

    Yinelenen görevleri otomatikleştirmek için, makro kaydediciyi kullanarak bir makro kaydedebilirsiniz. Microsoft Excel. Rastgele biçimlerde tarihleriniz olduğunu ve hepsine aynı biçimi uygulamak istediğinizi hayal edin. Bu bir makro ile yapılabilir. İstediğiniz formatta bir makro kaydedebilir ve gerekirse makroyu oynatabilirsiniz.

    Bir makro kaydettiğinizde, gerekli tüm eylemler Visual Basic for Applications (VBA) kodu olarak kaydedilir. Bu eylemler, metin veya sayı girmeyi, şeritte veya menüde hücreleri veya komutları seçmeyi, hücreleri, satırları veya sütunları biçimlendirmeyi ve hatta Microsoft Access gibi harici bir kaynaktan veri almayı içerebilir. Visual Basic for Applications (VBA), Visual Basic programlama dilinin bir parçasıdır. Çoğu Office uygulamasında bulunur. VBA, Office uygulamaları içindeki ve arasındaki işlemleri otomatikleştirmenize izin verirken, makro kaydedici her şeyi halledeceğinden, nasıl programlanacağını veya VBA dilini bilmenize gerek yoktur.

    Bir makro kaydettiğinizde yaptığınız hemen hemen her şeyin kaydedildiğini bilmek önemlidir. Dolayısıyla, yanlış düğmeye basmak gibi bir hata yaparsanız, makro kaydedici bu eylemi günlüğe kaydeder. Böyle bir durumda, tüm diziyi yeniden yazabilir veya VBA kodunu değiştirebilirsiniz. Bu nedenle, süreci kaydetmeden önce iyi çalışmalısınız. Diziyi ne kadar kesin yazarsanız, makro o kadar etkili çalışır.

    Geliştirici, varsayılan olarak gizlidir, bu nedenle önce etkinleştirmeniz gerekir. Daha fazla bilgi için bkz. Geliştirici sekmesini gösterme.

    Makro Kayıt

    sekmesinde Geliştirici tıklamak makrolarçalışma kitabıyla ilişkili makroları görüntülemek için. tuşlarına da basabilirsiniz. ALT+F8. Bu bir iletişim kutusu açacaktır. Makro.


    Dikkat:

    Makro güvenlik ayarları ve anlamları hakkında bilgi edinin.

    Makrolar, klavye kısayolu, grafik nesnesi, panel gibi çeşitli şekillerde çalıştırılabilir. hızlı erişim, düğme veya hatta bir kitabı açarken.

    Bir çalışma kitabına iliştirilmiş makroları düzenlemek için Visual Basic Düzenleyicisi'ni kullanabilirsiniz.

      makro atama.

      sahada Makro ata

    Office dosyalarında makroları nasıl etkinleştireceğinizi ve devre dışı bırakacağınızı öğrenin.

    tuşlara basın ALT+F11.

    Visual Basic Düzenleyicisi'nde (VBE) yazılı kodla çalışma

    Visual Basic Düzenleyicisi (VBE) ile makro kaydedicinin desteklemediği kendi değişkenlerinizi, kontrol yapılarınızı ve diğer öğeleri kaydedilen koda ekleyebilirsiniz. Makro kaydedici, kayıt sırasında meydana gelen hemen hemen her adımı yakaladığından, gereksiz kodu da kaldırmanız gerekebilir. Kayıtlı kodu görüntülemek, VBA programlamayı öğrenmenin veya becerilerinizi geliştirmenin harika bir yoludur.

    Kaydedilen kodu değiştirmenin bir örneğini Excel'de VBA'yı kullanmaya başlayın makalesinde bulabilirsiniz.

    Makro Kayıt

    Makroları kaydetmeden önce aşağıdakileri bilmek faydalıdır:

      Bir Excel aralığında çalışacak şekilde yazılan bir makro, yalnızca o aralıktaki hücrelerde çalışır. Bu nedenle, aralığa yeni bir satır eklerseniz, makro ona uygulanmaz.

      Uzun bir görev dizisini kaydetmeniz gerekiyorsa, bunun yerine birkaç küçük makro kullanmanızı öneririz.

      Bir makro, Excel dışı görevler de içerebilir. Makro işlemi, diğer Office uygulamalarını ve Visual Basic for Applications'ı (VBA) destekleyen diğer programları kapsayabilir. Örneğin, önce Excel'deki bir elektronik tabloyu güncelleyen ve ardından e-postayla göndermek için Outlook'u açan bir makro kaydedebilirsiniz.

    Makrolar ve VBA araçları sekmede Geliştirici, varsayılan olarak gizlidir, bu nedenle önce etkinleştirmeniz gerekir.

      Seçme mükemmel > Seçenekler> Bant ve panel.

    Bir makro kaydetmek için aşağıdaki talimatları izleyin.

    Excel'de kaydedilmiş makrolarla çalışma

    sekmesinde Geliştirici tıklamak makrolarçalışma kitabıyla ilişkili makroları görüntülemek için. Bu bir iletişim kutusu açacaktır. Makro.

    Not: Makrolar geri alınamaz. Kaydedilmiş bir makroyu ilk kez çalıştırmadan önce, istenmeyen değişiklikleri önlemek için çalışma kitabını kaydedin veya bir kopyasını oluşturun. Makro çalıştırmanın sonuçlarından memnun değilseniz, çalışma kitabını kaydetmeden kapatabilirsiniz.

    Aşağıda Ek Bilgiler Excel'de makrolarla çalışma hakkında.

    Mac için Excel'de makroları nasıl etkinleştireceğinizi ve devre dışı bırakacağınızı öğrenin.

    Sık tekrarlanan görevleri gerçekleştirirken zamandan tasarruf etmek için ilgili eylem sırasını bir makro biçiminde kaydedebilirsiniz. Makro oluşturmayı ve çalıştırmayı öğrenin.

    kitap içeriyorsa VBA makrosu başka bir yerde kullanılmak üzere bu modül başka bir çalışma kitabına kopyalanabilir. Microsoft editörü Visual Basic.

    Bir nesneye, şekle veya grafik öğesine makro atama

      Sayfada, mevcut bir makroyu atamak istediğiniz nesneye, resme, şekle veya öğeye sağ tıklayın ve ardından makro atama.

      sahada Makro ata atamak istediğiniz makroyu seçin.

    Bir simgeye makro atayabilir ve bunu Hızlı Erişim Araç Çubuğuna veya Şeride ekleyebilirsiniz.

    Formlara makro atayabilirsiniz ve ActiveX denetimleri sayfada.

    Visual Basic Düzenleyicisini Açma

    sekmesinde Geliştirici tıklamak Visual Basic veya seçin Hizmet > Makro > Visual Basic Editörü.

    Visual Basic öğeleri için nasıl yardım bulacağınızı öğrenin.

    Ek Bilgiler

    Her zaman Excel Teknoloji Topluluğu'na soru sorabilir, Yanıtlar topluluğunda yardım isteyebilir ve ayrıca önerilerde bulunabilirsiniz. yeni özellik veya web sitesinde iyileştirme