Excel'de özel işlevleri oluşturma

Not:  En güncel yardım içeriklerini, mümkün olduğunca hızlı biçimde kendi dilinizde size sunmak için çalışıyoruz. 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. Buradaki bilgilerin faydalı olup olmadığını bu sayfanın sonunda bize bildirebilir misiniz? Kolayca başvurabilmek için İngilizce makaleye buradan ulaşabilirsiniz .

Çok sayıda yerleşik çalışma sayfası işlevleri Excel içerir, ancak yapmanız hesaplama gerçekleştirdiğiniz her türü için bir işlev olmayan değiştirmektir. Excel tasarımcıları, büyük olasılıkla her kullanıcının hesaplama gereksinimlerini tahmin edemedik. Bunun yerine, Excel, bu makalede açıklanan özel işlevleri oluşturmanıza olanak sağlar.

Özel işlevler, makrolar gibi programlama dili Visual Basic for Applications (VBA) kullanın. Bunlar gelen makroları iki önemli farklar vardır. İlk olarak, bunlar işlevi yordamları yerine Sub yordamları kullanın. Başka bir deyişle, Bitiş işlevi yerine End SubSub bildirimi ve bitiş yerine işlevi ifadesiyle başlatın. İkinci olarak, Eylemler kaplamak yerine hesaplamalar gerçekleştirme. Belirli türde deyimleri, seçin ve aralıkları, biçimlendirme deyimleri gibi özel işlevlerden bırakılır. Bu makalede, oluşturma ve özel işlevleri kullanma öğreneceksiniz. İşlevler ve makro oluşturmak için Excel'den ayrı yeni pencerede açılan Visual Basic Düzenleyicisi'ni (VBE), çalışırsınız.

100'den fazla miktar indirim sırayı sağlanan bir ürün satışını yüzde 10 birimidir Şirketinizin sunduğu varsayalım. Aşağıdaki paragrafta, biz Bu indirim hesaplamak için bir işlev göstereceğiz.

Aşağıdaki örnek, her öğe, miktar, fiyat, indirim (varsa) listeleyen bir sipariş formu ve sonuçta elde edilen Genişletilmiş Fiyat gösterir.

Özel bir işlev olmadan örnek sipariş formu

Bu çalışma kitabında bir özel indirim işlevi oluşturmak için şu adımları izleyin:

  1. Visual Basic Düzenleyicisi'ni açmak için Alt + F11 tuşlarına basın (Mac bilgisayarda, FN + ALT + F11tuşlarına basın) ve sonra Ekle > Modül. Sağ tarafta Visual Basic Düzenleyicisi'nin yeni modül penceresi görünür.

  2. Kopyalayın ve yeni modüle aşağıdaki kodu 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: Kodunuzu daha kolay okunur hale getirmek için satırları girintilendirmek için sekme tuşunu kullanabilirsiniz. Girinti yalnızca sizin yararı ve kodu içeren veya içermeyen bunu çalışacak şekilde isteğe bağlıdır. Girintili bir satır yazdıktan sonra Visual Basic Düzenleyicisi, sonraki satıra benzer şekilde girintili varsayar. Dışarı taşı için (yani, sola) bir sekme karakter, ÜST KRKT + SEKMEtuşlarına basın.

Şimdi yeni indirim işlevinin kullanmaya hazırsınız. Visual Basic Düzenleyicisi'ni kapatın, G7 hücreyi seçin ve aşağıdakileri yazın:

=DISCOUNT(D7,E7)

Excel yüzde 10 200 birimler birim başına 47.50 en hesaplar ve $950.00 döndürür.

VBA kodunuzu işlevi DISCOUNT(quantity, price), ilk satırda indirim işlevi iki bağımsız değişken, Miktar ve Fiyatgerektirir gösterilir. Çalışma sayfası hücresindeki işlevi araması aldığınızda, bu iki bağımsız değişken eklemeniz gerekir. Formülde DISCOUNT(D7,E7), = D7 hücresini Miktar bağımsız değişkeni ve E7 Fiyat bağımsız değişkeni'dür. Şimdi, aşağıda gösterilen sonuçlar elde etmek için G8:G13 indirim formülü kopyalayabilirsiniz.

Bu işlev yordamı Excel nasıl yorumlar duralım. Entertuşuna bastığınızda, Excel'in geçerli çalışma kitabında İndirim adı arar ve VBA modülünde özel bir işlev olduğunu bulur. Miktar ve Fiyat, parantez içinde bağımsız değişkeni, indirim hesaplamasının temel aldığı değerleri yer tutucular adlarıdır.

Özel bir işlevi içeren örnek sipariş formu

Aşağıdaki kod bloğunu deyiminde Miktar bağımsız değişkeni inceler ve satılan öğe sayısı 100 eşit veya büyük olup olmadığını belirler:

If quantity >= 100 Then
DISCOUNT = quantity * price * 0.1
Else
DISCOUNT = 0
End If

Satılan öğe sayısı 100 eşit veya büyük değilse, VBA Fiyat değeri Miktar değerle çarpar ve sonucu tarafından 0.1 çarpan aşağıdaki ifadeyi yürütür:

Discount = quantity * price * 0.1

Sonuç İndirimdeğişkeni depolanır. Sağ tarafta, eşittir işaretinden expression öğesini değerlendirir ve sonucu sol taraftaki değişken adı atar için bir değerini bir değişkende depolamak bir VBA deyimi bir atama deyimi denir. İndirim değişkeni işlev yordamı aynı ada sahip olduğundan, indirim işlevinin adlı çalışma sayfasında formül değişkende depolanan değeri döndürülür.

VBA miktarı 100'den küçük olursa, aşağıdaki ifadeyi yürütür:

Discount = 0

Son olarak, aşağıdaki ifadeyi iki ondalık basamaklı İndirim değişkenine atanan değeri yuvarlar:

Discount = Application.Round(Discount, 2)

VBA hiçbir YUVARLA işlevi vardır, ancak Excel yapar. Bu nedenle, bu tabloda YUVARLA kullanmak için uygulama nesnesi (Excel) YUVARLA yönteminde (işlevi) aramak için VBA bildirin. Word'ün önceki word uygulaması ekleyerek bunu YUVARLA. Bir Excel işlevi VBA modülünden erişmek gereksinim duyduğunuzda bu söz dizimini kullanın.

Özel bir işlevi bir işlev ifadesi ile başlayın ve End Function deyimi ile sona gerekir. İşlev adı yanı sıra, işlev deyimi genellikle bir veya daha fazla bağımsız değişkeni belirtir. Bununla birlikte, bir işlevin bağımsız değişken olmadan oluşturabilirsiniz. Excel birkaç yerleşik işlevler de içerir; S_SAYI_ÜRET ve şimdi, örneğin — bağımsız değişkenleri kullanmayın.

İşlev deyimi, bir işlev yordamı kararlar ve hesaplamalar işleve bağımsız değişkenler kullanılarak bir veya daha fazla VBA ifadeleri içerir. Son olarak, bir yerde işlevi yordamda, işlevi aynı ada sahip bir değişken bir değer atayan bir ifade eklemelisiniz. Bu değer işlevini çağıran formüle döndürülür.

Özel işlevler kullanabileceğiniz VBA anahtar sözcükler sayısını sayıdan daha küçüktür makroları kullanabilirsiniz. Özel işlevler return dışında bir formülü çalışma sayfasındaki veya başka bir VBA makro veya işlev ile kullanılan bir ifade için bir değer her şeyi izin verilmez. Örneğin, özel işlevleri yapamazsınız windows yeniden boyutlandırma, bir hücredeki formülü düzenleme veya yazı tipi, renk veya desen seçeneklerini bir hücredeki metni değiştirme. "Eylem" kodu bu tür bir işlev yordamı eklerseniz, işlevi #VALUE verir! bir hata oluştu.

Bir işlev yordamı (hesaplamalar gerçekleştirme dışında) yapabileceğiniz bir eylemi iletişim kutusunu görüntüleme. Özel bir işlevde InputBox deyimi, işlevini çalıştırmadan kullanıcıdan girdi almak için bir araç olarak kullanabilirsiniz. Bir aracı bilgi sağlamak için kullanıcı olarak MsgBox deyimi kullanabilirsiniz. Özel iletişim kutuları veya Kullanıcı formlarıde kullanabilirsiniz, ancak bu giriş kapsamı dışında kalan bir konu olmasıdır.

Hatta basit makro ve özel işlevler okunması zor olabilir. Bunları daha kolay anlaşılır açıklamalar formda açıklayıcı metin yazarak yapabilirsiniz. Açıklamalar, açıklayıcı metin içeren bir kesme işareti koyarak ekleyin. Örneğin, aşağıdaki örnek indirim işlevinin açıklamalarla göstermektedir. Bu gibi açıklama eklemek için sizin veya diğer VBA kodunuzu zaman geçişleri korumak kolaylaştırır. Gelecekte kod değişiklik yapmak gereksinim duyarsanız, başlangıçta yaptığınız anlama daha kolay bir zaman gerekir.

Açıklamalar VBA işleviyle örneği

Kesme işareti açıklamaları satırlarındaki ya da kendi kendilerine oluşturabilir veya VBA içeren satırların sağ tarafında kod şekilde aynı satırda, sağa her şeyi yoksaymak için Excel bildirir. Genel amacını açıklayan bir açıklama koduyla oldukça uzun bloğu başlayın ve sonra belgeyi tek tek ifadeleri için satır içi açıklamaları kullanma isteyebilirsiniz.

Makrolar ve özel işlevler belge başka bir tanımlayıcı adlar vermek yoludur. Örneğin, ad etiketlerinimakro yerine Özelde makro işlevi gören amacını tanımlamak için MonthLabels adlandırabilirsiniz. Birçok yordam, oluşturduğunuz, özellikle benzer, ancak aynı amacıyla sahip yordamlar oluşturursanız, makrolar ve özel işlevler için açıklayıcı adları kullanarak özellikle yararlıdır.

Makrolar ve özel işlevler belge nasıl kişisel tercih konudur. Bazı yöntemi belgelerinin benimsemesini ve tutarlı bir şekilde kullanmak için önemli olan olur.

Özel bir işlevi kullanmak için işlev oluşturduğunuz modülü içeren çalışma kitabı açık olması gerekir. Bu çalışma kitabı açık değilse, #NAME mı? işlevini kullanmayı denediğinizde bir hata oluştu. Farklı bir çalışma kitabındaki işlevi başvuruyorsa, işlev adı işlevinin bulunduğu çalışma kitabının adıyla getirmeniz gerekir. Örneğin, indirim Personal.xlsb adındaki bir çalışma kitabında adlı bir işlev oluşturun ve bu işlevi başka bir çalışma kitabından arama =personal.xlsb!discount(), basitçe =discount()yazmanız gerekir.

Siz kendiniz bazı tuşa dokunarak (ve olası yazım hatalarını) işlev Ekle iletişim kutusundan, özel işlevleri seçerek kaydedebilirsiniz. Sizin özel işlevler kullanıcı tanımlı kategorisinden içinde görünür:

işlev ekle iletişim kutusu

Daha kolay bir yolu, özel işlevleri kullanılabilmesini bunları ayrı bir çalışma kitabında depolamak için her zaman olduğu ve bu çalışma kitabı bir eklenti kaydedin. Her Excel çalıştırdığınızda, ardından eklenti, kullanılabilir hale getirebilirsiniz. Bunun nasıl yapılacağına aşağıdadır:

  1. Size gereken işlevleri oluşturduktan sonra Dosya ' yı > Farklı Kaydet.

    Excel 2007, Microsoft Office düğmesi' ni tıklatın ve Farklı Kaydet'i tıklatın

  2. Farklı Kaydet iletişim kutusunda, Kayıt türü açılan listesini açın ve Excel eklentisiniseçin. Çalışma kitabını MyFunctionsgibi tanınabilir bir ad altında Eklentiler klasörüne kaydedin. Farklı Kaydet iletişim kutusunda, yapmanız gereken tek şey böylece varsayılan konumu kabul o klasöre önerir.

  3. Çalışma kitabını kaydettikten sonra Dosya ' yı > Excel Seçenekleri.

    Excel 2007, Microsoft Office düğmesi' ı tıklatın ve Excel Seçenekleri' ni tıklatın.

  4. Excel Seçenekleri iletişim kutusunda Eklentiler kategorisini tıklatın.

  5. Yönet açılan listesinde, Excel Eklentileri'niseçin. Ardından Git düğmesini tıklatın.

  6. Eklentiler iletişim kutusunda, aşağıda gösterildiği gibi çalışma kitabınızı kaydetmek için kullanılan adının yanındaki onay kutusunu seçin.

    eklentiler iletişim kutusu

  1. Size gereken işlevleri oluşturduktan sonra Dosya ' yı > Farklı Kaydet.

  2. Farklı Kaydet iletişim kutusunda, Kayıt türü açılan listesini açın ve Excel eklentisiniseçin. Çalışma kitabını MyFunctionsgibi tanınabilir bir adla kaydedin.

  3. Çalışma kitabını kaydettikten sonra Araçlar ' ı > Excel eklentileri.

  4. Eklentiler iletişim kutusunda, eklentiniz bulma, ' ı tıklatın ve sonra Kullanılabilir eklentiler kutusunda, eklentiniz yanındaki kutuyu işaretleyin için Gözat düğmesini seçin.

Bu adımları uyguladıktan sonra Excel her çalıştırdığınızda, özel işlevleri kullanılabilir. İşlev kitaplığınıza eklemek isterseniz, Visual Basic Düzenleyicisi dönün. VBA proje başlığı altında Visual Basic Düzenleyicisi proje Gezgini'nde bakarsanız, eklenti dosyanızı sonra adlı bir modül görürsünüz. Eklentiniz uzantısı .xlam olmayacaktır.

vbe’de adlandırılmış modül

Bu Tasarı Araştırmacısı modülünde çift işlevinin kodunuzu görüntülemek için Visual Basic Düzenleyicisi neden olur. Yeni bir işlev eklemek için son işlevinin kod penceresinde sonlandırır bitiş işlevi deyiminden sonraki noktanızı yerleştirmek ve yazmaya başlayın. Her zaman olur ve bu şekilde ihtiyacınız gibi birçok fonksiyona İşlev Ekle iletişim kutusundaki kullanıcı tanımlı kategorisinden gibi oluşturabilirsiniz.

Bu içerik başlangıçta işareti soluklaştırma ve bunların Microsoft Office Excel 2007 Inside Outkitap parçası olarak Craig Stinson tarafından oluşturuldu. Excel'in yeni sürümlerinin için de uygulamak için beri güncelleştirildi.

Daha fazla yardım mı gerekiyor?

Sorularınızı Excel Teknoloji Topluluğu’ndaki uzmanlara sorabilir, Yanıt topluluğu’ndan destek alabilir ya da Excel için UserVoice platformuna yeni bir özellik veya iyileştirme önerisi sunabilirsiniz.

Office yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×