VBA İşlevleri - VBA kullanarak Özel İşlev Oluşturma Kılavuzu

İçindekiler

Excel VBA İşlevleri

VBA'daki çalışma sayfası fonksiyonlarını, yani application.worksheet yöntemini kullanarak VBA kodlamada excel çalışma sayfasının fonksiyonlarını kullanabildiğimizi gördük, ancak VBA'nın bir fonksiyonunu excel'de nasıl kullanırız, bu fonksiyonlara kullanıcı tanımlı fonksiyonlar denir, bir kullanıcı VBA'da bir işlev yarattığında, excel çalışma sayfasında da kullanılabilir.

Verileri işlemek için excel'de birçok fonksiyonumuz olmasına rağmen, bazen bazı görevleri tekrar tekrar yaparken zamandan tasarruf edebilmemiz için araçlarda bazı özelleştirmeler yapmamız gerekir. Excel'de SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH gibi excel'de önceden tanımlanmış işlevlerimiz var, ancak Excel'de tek bir komut veya işlevin bulunmadığı bazı görevleri günlük olarak yapıyoruz, ardından VBA, Kullanıcı Tanımlı İşlevler (UDF) adı verilen özel işlevi oluşturabiliriz.

VBA İşlevleri ne işe yarar?

  • Bazı hesaplamalar yaparlar; ve
  • Bir değer döndür

VBA'da fonksiyonu tanımlarken parametreleri ve veri tiplerini belirtmek için aşağıdaki sözdizimini kullanıyoruz.

Buradaki veri türü, değişkenin tutacağı veri türüdür. Herhangi bir değeri (herhangi bir veri türü veya herhangi bir sınıfın nesnesi) tutabilir.

Nokta veya nokta (.) Sembolünü kullanarak nesneyi özelliği veya yöntemi ile birleştirebiliriz.

VBA kullanarak Özel İşlevler Nasıl Oluşturulur?

Misal

Öğrenci, sonuç ve not tarafından alınan toplam notları bulmamız gereken bir okuldan aşağıdaki verilere sahip olduğumuzu varsayalım.

Bir öğrencinin tüm konularda aldığı notları özetlemek gerekirse, dahili bir işlevimiz var, yani TOPLA, ancak okul tarafından belirlenen kriterlere göre notu ve sonucu bulmak varsayılan olarak Excel'de mevcut değildir. .

Kullanıcı tanımlı işlevler oluşturmamızın nedeni budur.

Adım 1: Toplam Puanı Bulun

İlk olarak, SUM işlevini kullanarak toplam puanları excel'de bulacağız.

Sonucu almak için Enter tuşuna basın.

Formülü hücrelerin geri kalanına sürükleyin.

Şimdi Sonucu (Geçti, Başarısız veya Temel Tekrar) bulmak için, okul tarafından belirlenen kriterler budur.

  • Öğrenci, 500 üzerinden toplam puan olarak 200'den fazla veya buna eşit puan almışsa ve öğrenci de herhangi bir konuda başarısız değilse (her konuda 32'den fazla puan almışsa), öğrenci geçer,
  • Öğrenci 200'den fazla veya eşit puan almış ancak öğrenci 1 veya 2 konuda başarısız olmuşsa, öğrenci bu konularda "Temel Tekrar" almışsa,
  • Öğrenci 200'den az puan almışsa veya 3 veya daha fazla konuda başarısız olursa, öğrenci başarısız olur.
Adım 2: ResultOfStudent Fonksiyonu Oluşturun

'ResultOfStudent' adlı bir işlev oluşturmak için aşağıdaki yöntemlerden herhangi birini kullanarak "Visual Basic Düzenleyicisi" ni açmamız gerekir:

  • Geliştirici sekmesini kullanarak excel.

Geliştirici sekmesi MS Excel'de mevcut değilse, aşağıdaki adımları kullanarak bunu alabiliriz:

  • Şeritte herhangi bir yere sağ tıklayın ve ardından Şeridi Excel'de Özelleştir'i seçin ' .

Bu komutu seçtiğimizde “Excel Seçenekleri” diyalog kutusu açılıyor.

  • Sekmeyi almak için "Geliştirici" kutusunu işaretlememiz gerekiyor.
  • Kısayol tuşunu kullanarak, yani Alt + F11.
  • VBA editörünü açtığımızda, Ekle menüsüne gidip bir modül seçerek modülü eklememiz gerekiyor.
  • Aşağıdaki kodu modüle yapıştırmamız gerekiyor.
Fonksiyon ResultOfStudents (Aralık Olarak İşaretler) Dize Olarak Dim mycell Aralık Olarak Dim Toplam Tam Sayı Olarak Dim CountOfFailedSubject As Tam Sayı İşaretler Toplam = Total + mycell.Value If mycell.Value = 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Toplam> = 200 ve CountOfFailedSubject = 0 Sonra ResultOfStudents = "Geçti" Else ResultOfStudents = "Başarısız" İşlemi Bitirse Bitir

Yukarıdaki işlev bir öğrenci için sonucu döndürür.

Bu kodun nasıl çalıştığını anlamamız gerekiyor.

İlk ifade olan 'Function ResultOfStudents (Marks As Range) As String' , bir aralığı işaretler için girdi olarak kabul edecek ve sonucu bir dize olarak döndürecek 'ResultOfStudents' adlı bir işlevi bildirir .

Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject As Integer

These three statements declare variables, i.e.,

  • ‘myCell’ as a Range,
  • ‘Total’ as Integer (to store total marks scored by a student),
  • ‘CountOfFailedSubject’ as integer (to store the number of subjects in which a student has failed).
For Each mycell In Marks Total = Total + mycell.Value If mycell.Value < 33 Then CountOfFailedSubject = CountOfFailedSubject + 1 End If Next mycell

This code checks for every cell in the ‘Marks’ range and adds the value of every cell in the ‘Total’ variable, and if the value of the cell is less than 33, then adds 1 to the ‘CountOfFailedSubject’ variable.

If Total>= 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Total>= 200 And CountOfFailedSubject = 0 Then ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If

This code checks the value of ‘Total’ and ‘CountOfFailedSubject’ and passes the Essential Report,’ ‘Passed,’ or ‘Failed’ accordingly to the ‘ResultOfStudents.’

Step 3: Apply ResultOfStudents Function to Get Result

ResultOfStudents function takes marks, i.e., selection of 5 marks scored by the student.

Now Select the Range of cells, i.e., B2: F2.

Drag the Formula to the rest of the Cells.

Step 4: Create ‘GradeForStudent’ Function to get Grades

Now to find out the grade for the student, we will create one more function named ‘GradeForStudent.’

The code would be:

Function GradeForStudent(TotalMarks As Integer, Result As String) As String If TotalMarks> 440 And TotalMarks 380 And TotalMarks 320 And TotalMarks 260 And TotalMarks = 200 And TotalMarks <= 260 And (Result = "Passed" Or Result = "Essential Repeat") Then GradeForStudent = "E" ElseIf TotalMarks < 200 Or Result = "Failed" Then GradeForStudent = "F" End If End Function

This function assigns a ‘Grade’ to the student based on the ‘Total Marks’ and ‘Result.’

We just need to write the formula and open the brackets in Cell H2 and pressing Ctrl+Shift+A to find out about the arguments.

GradeForStudent işlevi, notu hesaplamak için Toplam notları (toplam notları) ve öğrencinin sonucunu bağımsız değişken olarak alır.

Şimdi ilgili hücreleri seçin, yani G2, H2.

Şimdi , formülleri kopyalamak için hücreleri seçtikten sonra Ctrl + D tuşlarına basmamız gerekiyor .

Kırmızı arka plan rengiyle 33'ten küçük değerleri vurgulayabiliriz, böylece öğrencinin başarısız olduğu konuları bulabiliriz.

Ilginç makaleler...