Excel 'de çok sayıda yerleşik çalışma sayfası işlevleri bulunmasına rağmen, gerçekleştirdiğiniz her hesaplama türü için bir işlevi yoktur. Excel 'in Tasarımcısı, tüm kullanıcıların hesaplama ihtiyaçlarını önleyemedik. Bunun yerine, Excel bu makalede açıklanan özel işlevler oluşturmanıza olanak sağlar.
Makrolar gibi özel işlevler, Visual Basic for Applications (VBA) programlama dili kullanır. Makrolardan iki önemli yoldan farklıdır. Öncelikle, alt yordamlar yerine işlev yordamlarını kullanırlar. Bu, Sub deyimi yerine bir işlev deyimiyle başlıyor ve End Subyerine End işleviyle biter. İkincisi, eylem yapmak yerine hesaplamalar gerçekleştirir. Aralıkları seçme ve biçimlendirme deyimleri gibi belirli deyimler özel işlevlerden dışlanır. Bu makalede, özel işlevleri oluşturmayı ve kullanmayı öğreneceksiniz. İşlevleri ve makroları oluşturmak için, Excel 'den ayrı yeni bir pencerede açılan Visual Basic Düzenleyicisi (VBE)ile çalışırsınız.
Şirketinizin, bir ürünün satışında yüzde 10 oranında yüzde 10 oranında, siparişin 100 biriminden fazla Aşağıdaki paragraflarda, bu iskontoyu hesaplama işlevini göstereceğiz.
Aşağıdaki örnekte, her öğeyi, miktarı, fiyatı, iskontoyu (varsa) ve sonuçta elde edilen uzatılmış fiyatı listeleyen bir sipariş formu gösterilmektedir.
Bu çalışma kitabında özel INDIRIM işlevi oluşturmak için aşağıdaki adımları izleyin:
-
Alt + F11 tuşlarına basarak Visual Basic Düzenleyicisi 'ni açın (Mac 'Te, FN + Alt + F11tuşlarına basın) ve sonra > modülü Ekle 'ye Moduletıklayın. Visual Basic Düzenleyicisi 'nin sağ tarafında yeni bir modül penceresi görüntülenir.
-
Aşağıdaki kodu kopyalayıp yeni modüle yapıştırın.
Function DISCOUNT(quantity, price) If quantity >=100 Then DISCOUNT = quantity * price * 0.1 Else DISCOUNT = 0 End If DISCOUNT = Application.Round(Discount, 2) End Function
Not: Kodunuzun daha okunaklı olmasını sağlamak için, sekme tuşunu kullanarak satırları girintileyebilirsiniz. Girintileme, yalnızca avantajınıza yöneliktir ve bu kod, kod ile birlikte veya olmadan da çalışır. Girintili bir satır yazdıktan sonra, Visual Basic Düzenleyicisi sonraki hattınızın aynı şekilde girintilendirilecektir. Bir sekme karakterinin dışına taşımak (yani, sola) için Shift + Sekmetuşlarına basın.
Artık yeni INDIRIM işlevini kullanmaya hazırsınız. Visual Basic Düzenleyicisi 'ni kapatın, G7 hücresini seçin ve aşağıdakileri yazın:
= INDIRIM (D7, E7)
Excel, 200 birimlerinde birim başına $47,50 oranında yüzde 10 iskontoyu hesaplar ve $950,00 değerini döndürür.
VBA kodunuzun ilk satırında, Işlev INDIRIMI (miktar, Fiyat), INDIRIM işlevinin iki bağımsız değişken, Miktar ve Fiyatgerektirdiğini belirttiniz. Çalışma sayfası hücresinde işlevi çağırdığınızda, bu iki bağımsız değişkeni eklemeniz gerekir. = INDIRIM (D7, E7), D7, Miktar bağımsız değişkenidir ve E7 de Fiyat bağımsız değişkenidir. Şimdi, aşağıdaki sonuçları elde etmek için INDIRIM formülünü G8: G13 adresine kopyalayabilirsiniz.
Excel 'In bu işlevi nasıl yorumlayacağını da görelim. ENTERtuşuna bastığınızda, Excel geçerli çalışma kitabında ad iskontosunu arar ve bir VBA modülünde özel işlevi olduğunu bulur. Parantez, Miktar ve Fiyat'e eklenen bağımsız değişken adları, iskontonun hesaplanmasında temel alınan değerlerin yer tutuculardır.
Aşağıdaki kod bloğundaki IF deyimi, Miktar bağımsız değişkenini inceler ve satılan madde sayısının 100 değerinden büyük veya eşit olduğunu belirler:
If quantity >= 100 Then DISCOUNT = quantity * price * 0.1 Else DISCOUNT = 0 End If
Satılan öğelerin sayısı 100 ' den büyükse, VBA, Miktar değerini Fiyat değeriyle çarpar ve sonucu 0,1 ile çarpar:
Discount = quantity * price * 0.1
Sonuç, değişken indirimiolarak depolanır. Bir değişkende bir değer saklayan bir VBA deyimi atama deyimi olarak adlandırılır, çünkü bu, eşittir işaretinin sağ tarafındaki ifadeyi değerlendirir ve sonucu soldaki değişken adına atar. Değişken iskontosunun işlev yordamıyla aynı ada sahip olduğu için, değişkende depolanan değer, indirim işlevini çağıran çalışma sayfası formülüne döndürülür.
Miktar 100 değerinden azsa, VBA aşağıdaki ifadeyi yürütür:
Discount = 0
Son olarak, aşağıdaki bildirim indirim değişkenine atanan değeri iki ondalık basamağa yuvarlar:
Discount = Application.Round(Discount, 2)
VBA 'da yuvarlak işlevi yoktur, ancak Excel bunu yapıyor. Bu nedenle, bu ifadede yuvarla kullanmak için, VBA 'nın uygulama nesnesinde (Excel) yuvarla yöntemini (işlev) arayacağını söylersiniz. Bunu sözcüğü yuvarlayarak Word uygulamasının eklenmesiyle yapabilirsiniz. Bir VBA modülünden bir Excel işlevine erişmeniz gerektiğinde bu söz dizimini kullanın.
Özel işlevin bir Işlev deyimiyle başlaması ve End Function deyimiyle bitmesi gerekir. İşlev ifadesi genellikle bir veya daha fazla bağımsız değişkeni belirtir. Ancak, bağımsız değişken içermeyen bir işlev oluşturabilirsiniz. Excel 'de birkaç yerleşik fonksiyon (S_SAYI_ÜRET ve örneğin bağımsız değişken kullanmayan) bulunur.
Işlev deyiminin ardından işlev yordamı, kararlar veren ve işleve geçirilen bağımsız değişkenleri kullanarak hesaplamalar yapan bir veya birden çok VBA deyimi içerir. Son olarak, işlev yordamında bir yerde, işlevle aynı ada sahip bir değişkene değer atayan bir bildirim eklemeniz gerekir. Bu değer, işlevi çağıran formüle döndürülür.
Özel işlevlerde kullanabileceğiniz VBA anahtar sözcüklerinin sayısı, makrolarda kullanabileceğiniz sayıdan daha küçüktür. Özel işlevler, çalışma sayfasındaki formüle değer döndüren herhangi bir şey veya başka bir VBA makrosuna veya işlevinde kullanılan bir ifadeye izin verilmemektedir. Örneğin, özel işlevler Windows 'u yeniden boyutlandıramaz, bir hücredeki formülü düzenleyebilir veya hücredeki metnin yazı tipini, rengini veya desen seçeneklerini değiştiremez. Bir işlev yordamında Bu türden "eylem" kodunu eklerseniz, işlev #VALUE döndürür! hatası oluşur.
İşlev yordamının yapabileceği bir eylem (hesaplamalar yapmaktan ayrı olarak) bir iletişim kutusu görüntüler. Bir özel işlevde, işlevi yürüten kullanıcıdan giriş alma yolu olarak bir ınputbox deyimini kullanabilirsiniz. Bir MsgBox deyimini kullanıcıya bilgileri aktarmak için kullanabilirsiniz. Özel iletişim kutularını veya Kullanıcı formları'nı da kullanabilirsiniz, ancak bu konu bu giriş kapsamının dışında bir konu.
Hatta basit makrolar ve özel işlevler okunması zor olabilir. Açıklama biçiminde açıklayıcı bir metin yazarak daha kolay anlaşılır olmasını sağlayabilirsiniz. Açıklama ekleyin ve açıklama ekleyin. Örneğin, aşağıdaki örnek, açıklama içeren INDIRIM işlevini gösterir. Bu gibi Yorumları eklemek sizin veya diğer kişilerin zaman geçtikçe VBA kodunuzu bakımını kolaylaştırır. Gelecekte koda bir değişiklik yapmanız gerekirse, ilk olarak ne yaptıklarını anlamayı daha kolay hale getirebilirsiniz.
Kesme işareti, Excel 'e aynı satırda bulunan her şeyi yoksaymasını söyler; böylece, satırlar halinde veya VBA kodu içeren satırların sağındaki açıklamaları oluşturabilirsiniz. Genel amacını açıklayan ve ardından tek tek ifadeleri belgelemek için satıriçi açıklamalar kullanan görece uzun bir kod bloğu kullanmaya başlayabilirsiniz.
Makro ve özel işlevlerinizi belgeetmenin başka bir yolu, onlara açıklayıcı adlar vermektir. Örneğin, makro etiketleriadlandırmak yerine, makronun sunduğu amacı daha ayrıntılı bir şekilde açıklamak Için monthLabels adını yazabilirsiniz. Makrolar ve özel işlevler için açıklayıcı adlar kullanmak, özellikle de benzer ancak aynı amaçlara sahip olan yordamlar oluşturursanız özellikle çok sayıda yordam oluşturduğunuzda faydalıdır.
Makro ve özel işlevlerinizi nasıl belgeettiğinize kişisel tercihlerdir. Önemli olan konular, bir belge yöntemini benimsemesi ve bunu tutarlı bir şekilde kullanmaktır.
Özel işlevi kullanmak için, işlevi oluşturduğunuz modülün bulunduğu çalışma kitabının açık olması gerekir. Bu çalışma kitabı açık değilse, bir #NAME alıyorsunuz mu? işlevi kullanmayı denediğinizde hata oluştu. İşleve farklı bir çalışma kitabındaki başvuru yazarsanız, işlev adından önce işlevin bulunduğu çalışma kitabının adını kullanmalısınız. Örneğin, kişisel. xlsb adındaki bir çalışma kitabında INDIRIM adındaki bir işlev oluşturduysanız ve bu işlevi başka bir çalışma kitabından arıyorsanız, yalnızca = indirim ()değil, = kişisel. xlsb! Discount ()yazmanız gerekir.
Işlev Ekle iletişim kutusundan Özel işlevlerinizi seçerek, kendinizi (ve olası yazım hatalarını) kaydedebilirsiniz. Özel işlevlerinizi Kullanıcı tanımlı kategorisinde görünür:
Özel işlevlerinizi her zaman kullanılabilir hale getirmek için daha kolay bir yol, bunları ayrı bir çalışma kitabında depolayın ve bu çalışma kitabını eklenti olarak kaydeder. Ardından, Excel 'i her çalıştırdığınızda eklentiyi kullanılabilir hale getirebilirsiniz. Bunu şöyle yapabilirsiniz:
-
İhtiyacınız olan işlevleri oluşturduktan sonra dosya > farklı kaydet'e tıklayın.
Excel 2007, Microsoft Office düğmesi'ne tıklayın ve farklı kaydet 'e tıklayın
-
Farklı kaydet iletişim kutusunda, kayıt türü açılan listesini açın ve Excel eklentisi'ni seçin. Çalışma kitabını, AddIns klasöründe MyFunctionsgibi tanınabilir bir adla kaydedin. Farklı kaydet iletişim kutusu bu klasörü önerecektir, böylece yapmanız gereken tek şey varsayılan konumu kabul eder.
-
Çalışma kitabını kaydettikten sonra, Excel seçenekleri> 'i tıklatın.
Excel 2007, Microsoft Office düğmesi'ne ve ardından Excel Seçenekleri'ne tıklayın.
-
Excel Seçenekleri iletişim kutusunda, Eklentiler kategorisini tıklatın.
-
Yönet açılan listesinde Excel eklentileri'ni seçin. Ardından Git düğmesini tıklatın.
-
Eklentiler iletişim kutusunda, aşağıda gösterildiği gibi, çalışma kitabınızı kaydederken kullandığınız adın yanındaki kutuyu işaretleyin.
-
İhtiyacınız olan işlevleri oluşturduktan sonra dosya > farklı kaydet'e tıklayın.
-
Farklı kaydet iletişim kutusunda, kayıt türü açılan listesini açın ve Excel eklentisi'ni seçin. Çalışma kitabını MyFunctionsgibi tanınabilir bir adla kaydedin.
-
Çalışma kitabını kaydettikten sonra, Excel eklentileri> Araçlar 'a tıklayın.
-
Eklentiler iletişim kutusunda , eklentilerinizi bulmak için Gözat düğmesini seçin, Aç'a tıklayın ve sonra da Eklentiler iletişim kutusunun yanındaki kutunun yanındaki kutuyu işaretleyin.
Bu adımları izledikten sonra, Özel işlevlerinizi Excel her çalıştırdığınızda kullanılabilir. İşlev kitaplığınıza eklemek istiyorsanız, Visual Basic Düzenleyicisi 'ne dönün. VBAProject başlığı altında Visual Basic Editor Proje Gezgini 'ne bakarsanız, eklenti dosyanızın ardına adlandırılan bir modül görürsünüz. Eklenti. xlam uzantısına sahip olacaktır.
Proje Gezgininde Bu modüle çift tıklamak, Visual Basic Düzenleyicisi 'nin işlev kodunuzu görüntülemesine neden olur. Yeni bir işlev eklemek için, ekleme noktanızı, kod penceresindeki son işlevi sonlandıran End Function ifadesinin sonrasına getirin ve yazmaya başlayın. Bu şekilde gereksinim duyduğunuz kadar çok sayıda işlev oluşturabilir ve bu kullanıcılar Işlev Ekle Iletişim kutusunda Kullanıcı tanımlı kategorisinde kullanılabilir.
Bu içerik, başlangıçta Mark Soldur ve Craig Stinson 'in bir parçası olarak Microsoft Office Excel 2007 içindeyazılmıştır. Excel 'in yeni sürümlerine de uygulanır.
Daha fazla yardım mı gerekiyor?
Not: Bu sayfanın çevirisi otomasyon aracılığıyla yapılmıştır ve bu nedenle hatalı veya yanlış dil bilgisi kullanımları içerebilir. Amacımız, bu içeriğin sizin için faydalı olabilmesini sağlamaktır. Bu bilgileri yararlı bulup bulmadığınızı bizimle paylaşır mısınız? Kolayca başvurabilmek için İngilizce makaleye buradan ulaşabilirsiniz.