"Fungsi" lan "Sub" Prosedur ing VBA

Fungsi VBA built-in

Sadurunge miwiti nggawe fungsi VBA dhewe, iku apik kanggo ngerti sing Excel VBA wis koleksi sugih fungsi dibangun ing prebuilt sing bisa digunakake nalika nulis kode.

Dhaptar fungsi kasebut bisa dideleng ing editor VBA:

  • Bukak buku kerja Excel lan bukak editor VBA (klik kanggo nindakake iki Alt + F11), banjur pencet F2.
  • Pilih perpustakaan saka dhaptar gulung mudhun ing sisih kiwa ndhuwur layar VBA.
  • Dhaptar kelas lan fungsi VBA sing dibangun bakal katon. Klik ing jeneng fungsi kanggo nampilake katrangan singkat ing ngisor jendhela. menet F1 bakal mbukak kaca bantuan online kanggo fitur kasebut.

Kajaba iku, dhaptar lengkap fungsi VBA sing dibangun kanthi conto bisa ditemokake ing Pusat Pangembang Visual Basic.

Prosedur khusus "Fungsi" lan "Sub" ing VBA

Ing Excel Visual Basic, sakumpulan prentah sing nindakake tugas tartamtu diselehake ing prosedur. fungsi (Fungsi) utawa sub (Subrutin). Bentenipun utama antarane tata cara fungsi и sub iku tata cara fungsi ngasilake asil, prosedur sub – ora.

Mulane, yen sampeyan kudu nindakake tumindak lan entuk sawetara asil (contone, jumlah sawetara nomer), banjur prosedur biasane digunakake fungsi, lan supaya mung nindakake sawetara tumindak (contone, ngganti format klompok sel), sampeyan kudu milih prosedur sub.

Alesanipun

Macem-macem data bisa dikirim menyang prosedur VBA nggunakake argumen. Dhaptar argumen kasebut ditemtokake nalika ngumumake prosedur. Contone, prosedur sub ing VBA nambah integer diwenehi (Integer) kanggo saben sel ing sawetara sing dipilih. Sampeyan bisa ngirim nomer iki menyang prosedur nggunakake argumen, kaya iki:

Sub AddToCells(i As Integer) ... End Sub

Elinga yen duwe argumentasi kanggo prosedur fungsi и sub ing VBA opsional. Sawetara prosedur ora mbutuhake bantahan.

Argumen Opsional

Prosedur VBA bisa duwe argumen opsional. Iki minangka bantahan sing bisa ditemtokake pangguna yen pengin, lan yen diilangi, prosedur kasebut nggunakake nilai standar kanggo dheweke.

Bali menyang conto sadurunge, kanggo nggawe argumen integer menyang fungsi opsional, bakal diumumake kaya iki:

Sub AddToCells(Opsional i As Integer = 0)

Ing kasus iki, argumen integer i standar bakal dadi 0.

Bisa uga ana sawetara argumen opsional ing prosedur, kabeh kasebut didaftar ing pungkasan dhaptar argumen.

Maringake argumen kanthi nilai lan referensi

Argumen ing VBA bisa diterusake menyang prosedur kanthi rong cara:

  • ByVal - ngliwati argumen kanthi nilai. Iki tegese mung nilai (yaiku, salinan argumen) sing diterusake menyang prosedur, lan mulane owah-owahan apa wae ing argumentasi ing njero prosedur bakal ilang nalika prosedur metu.
  • MiturutRef - ngliwati argumentasi kanthi referensi. Yaiku, alamat nyata lokasi argumen ing memori diterusake menyang prosedur kasebut. Sembarang owah-owahan sing digawe kanggo argumen ing prosedur bakal disimpen nalika prosedur metu.

Nggunakake tembung kunci ByVal or MiturutRef ing deklarasi prosedur, sampeyan bisa nemtokake cara argumen diterusake menyang prosedur kasebut. Iki dituduhake ing conto ing ngisor iki:

Sub AddToCells(ByVal i As Integer) ... End Sub
Ing kasus iki, argumen integer i liwati dening nilai. Sawise ninggalake prosedur sub kabeh digawe karo i owah-owahan bakal ilang.
Sub AddToCells(ByRef i As Integer) ... End Sub
Ing kasus iki, argumen integer i liwati kanthi referensi. Sawise ninggalake prosedur sub kabeh digawe karo i pangowahan bakal disimpen ing variabel sing diterusake menyang prosedur kasebut sub.

Elinga yen argumen ing VBA diterusake kanthi referensi kanthi standar. Ing tembung liyane, yen tembung kunci ora digunakake ByVal or MiturutRef, banjur argumen bakal diterusake kanthi referensi.

Sadurunge nerusake prosedur fungsi и sub ing liyane rinci, iku bakal migunani kanggo njupuk dipikir liyane ing fitur lan beda antarane rong jinis tata cara iki. Ing ngisor iki minangka diskusi ringkes babagan prosedur VBA fungsi и sub lan conto prasaja ditampilake.

Prosedur VBA "Fungsi"

Editor VBA ngenali prosedur kasebut fungsinalika nemoni klompok prentah sing ana ing antarane pratelan pambuka lan panutup ing ngisor iki:

Fungsi... Fungsi Akhir

Kaya kasebut sadurunge, prosedur kasebut fungsi ing VBA (minangka lawan kanggo sub) ngasilake nilai. Aturan ing ngisor iki ditrapake kanggo ngasilake nilai:

  • Jinis data saka nilai bali kudu diumumake ing header prosedur fungsi.
  • Variabel sing ngemot nilai bali kudu dijenengi padha karo prosedur kasebut fungsi. Variabel iki ora perlu diumumake kanthi kapisah, amarga tansah ana minangka bagéan integral saka prosedur. fungsi.

Iki uga digambarake ing conto ing ngisor iki.

Tuladha Fungsi VBA: Nindakake Operasi Matematika ing 3 Angka

Ing ngisor iki minangka conto kode prosedur VBA fungsi, sing njupuk telung jinis argumen Double (nomer floating-point presisi ganda). Akibaté, prosedur ngasilake nomer jinis liyane Doublepadha karo jumlah saka rong argumen pisanan minus argumen katelu:

Fungsi SumMinus(dNum1 Minangka Double, dNum2 Minangka Double, dNum3 Minangka Double) Minangka Double SumMinus = dNum1 + dNum2 - dNum3 End Function

Iki prosedur VBA banget prasaja fungsi nggambarake carane data diterusake menyang prosedur liwat argumen. Sampeyan bisa ndeleng sing jinis data bali dening prosedur ditetepake minangka Double (tembung kasebut ngandika Minangka Double sawise dhaptar argumen). Conto iki uga nuduhake carane asil saka prosedur fungsi disimpen ing variabel kanthi jeneng sing padha karo jeneng prosedur.

Nelpon prosedur VBA "Fungsi"

Yen prosedur prasaja ndhuwur fungsi dilebokake menyang modul ing editor Visual Basic, bisa disebut saka prosedur VBA liyane utawa digunakake ing lembar kerja ing workbook Excel.

Telpon prosedur VBA "Fungsi" saka prosedur liyane

prosedur fungsi bisa disebut saka prosedur VBA liyane dening mung nemtokake prosedur sing kanggo variabel. Conto ing ngisor iki nuduhake telpon menyang prosedur Summinus, sing ditetepake ing ndhuwur.

Sub utama() Dim total minangka Dobel total = SumMinus(5, 4, 3) End Sub

Nelpon prosedur VBA "Fungsi" saka lembar kerja

prosedur VBA fungsi bisa diarani saka lembar kerja Excel kanthi cara sing padha karo fungsi Excel sing dibangun ing liyane. Mulane, prosedur digawe ing conto sadurunge fungsi - Summinus bisa diarani kanthi ngetik ekspresi ing ngisor iki menyang sel lembar kerja:

=SumMinus(10, 5, 2)

Prosedur VBA "Sub"

Editor VBA ngerti yen ana prosedur ing ngarepe subnalika nemoni klompok prentah sing ana ing antarane pratelan pambuka lan panutup ing ngisor iki:

Sub ... End Sub

Prosedur VBA "Sub": Conto 1. Alignment tengah lan owah-owahan ukuran font ing sawetara sel sing dipilih

Coba conto prosedur VBA sing prasaja sub, sing tugase kanggo ngganti format kisaran sel sing dipilih. Sèl dipusatake (vertikal lan horisontal) lan ukuran font diganti dadi sing ditemtokake pangguna:

Sub Format_Centered_And_Sized(Optional iFontSize As Integer = 10) Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Size = iFontSize End Sub

Prosedur iki sub nindakake tumindak nanging ora ngasilake asil.

Conto iki uga nggunakake argumen Opsional Gedene tulisan. Yen argumentasi Gedene tulisan ora lulus kanggo prosedur sub, banjur Nilai standar iku 10. Nanging, yen pitakonan Gedene tulisan lulus kanggo prosedur sub, banjur sawetara sel sing dipilih bakal disetel menyang ukuran font sing ditemtokake dening pangguna.

VBA Sub Procedure: Conto 2: Align Center lan Font Bold ing Range Sel sing Dipilih

Prosedur ing ngisor iki padha karo sing nembe dibahas, nanging wektu iki, tinimbang ngowahi ukuran, nggunakake gaya font sing kandel kanggo sawetara sel sing dipilih. Iki minangka conto prosedur sub, sing ora njupuk argumen:

Sub Format_Centered_And_Bold() Selection.HorizontalAlignment = xlCenter Selection.VerticalAlignment = xlCenter Selection.Font.Bold = True End Sub

Nelpon Prosedur "Sub" ing Excel VBA

Telpon prosedur VBA "Sub" saka prosedur liyane

Kanggo nelpon prosedur VBA sub saka prosedur VBA liyane, sampeyan kudu nulis tembung kunci Panggil, jeneng prosedur sub lan luwih ing kurung ana argumen saka prosedur. Iki ditampilake ing conto ing ngisor iki:

Sub utama() Format Panggilan_Pusat_Dan_Ukuran(20) End Sub

Yen prosedur Format_Centered_And_Sized nduweni argumen luwih saka siji, kudu dipisahake nganggo koma. Kaya iki:

Sub utama() Format Panggilan_Centered_And_Sized(arg1, arg2, ...) End Sub

Nelpon prosedur VBA "Sub" saka lembar kerja

prosedur sub ora bisa dilebokake langsung menyang sel lembar Excel, kaya sing bisa ditindakake kanthi prosedur fungsiamarga prosedur sub ora ngasilake nilai. Nanging, prosedur sub, sing ora duwe bantahan lan diumumake minangka Public (kaya sing kapacak ing ngisor iki) bakal kasedhiya kanggo pangguna lembar kerja. Mangkono, yen tata cara prasaja rembugan ndhuwur sub dilebokake menyang modul ing Visual Basic Editor, prosedur Format_Centered_And_Bold bakal kasedhiya kanggo digunakake ing lembar kerja Excel, lan prosedure Format_Centered_And_Sized – ora bakal kasedhiya amarga wis bantahan.

Iki minangka cara sing gampang kanggo mbukak (utawa nglakokake) prosedur sub, bisa diakses saka lembar kerja:

  • Pencet Alt + F8 (tekan tombol Alt lan nalika terus, pencet tombol F8).
  • Ing dhaptar macro sing katon, pilih salah siji sing arep kanggo mbukak.
  • Pencet Run (mlayu)

Kanggo nindakake prosedur sub cepet lan gampang, sampeyan bisa nemtokake trabasan keyboard. Kanggo iki:

  • Pencet Alt + F8.
  • Ing dhaptar makro sing katon, pilih salah siji sing pengin diwenehi trabasan keyboard.
  • Pencet paramèter (Pilihan) lan ing kothak dialog sing katon, ketik trabasan keyboard.
  • Pencet OK lan nutup dialog Macro (Makro).

waé: Nalika nemtokake trabasan keyboard menyang makro, priksa manawa ora digunakake minangka standar ing Excel (contone, Ctrl + C). Yen sampeyan milih trabasan keyboard sing wis ana, bakal ditugasake maneh menyang makro, lan minangka asil, pangguna bisa miwiti makro kanthi ora sengaja.

Lingkup Prosedur VBA

Bagian 2 saka tutorial iki mbahas ruang lingkup variabel lan konstanta lan peran tembung kunci. Public и Private. Tembung kunci iki uga bisa digunakake karo prosedur VBA:

Public Sub AddToCells(i As Integer) ... End Sub
Yen deklarasi prosedur didhisiki tembung kunci Public, banjur prosedur kasebut bakal kasedhiya kanggo kabeh modul ing proyek VBA kasebut.
Private Sub AddToCells(i As Integer) ... End Sub
Yen deklarasi prosedur didhisiki tembung kunci Private, banjur prosedur iki mung kasedhiya kanggo modul saiki. Ora bisa diarani nalika ana ing modul liyane utawa saka buku kerja Excel.

Elinga yen sadurunge ngumumake prosedur VBA fungsi or sub tembung kunci ora dilebokake, properti standar disetel kanggo prosedur kasebut Public (yaiku, bakal kasedhiya ing endi wae ing proyek VBA iki). Iki beda karo deklarasi variabel, sing minangka standar Private.

Exit awal saka prosedur VBA "Fungsi" lan "Sub"

Yen sampeyan kudu mungkasi eksekusi prosedur VBA fungsi or sub, tanpa ngenteni pungkasan alam, banjur ana operator Fungsi metu и Metu Sub. Panggunaan operator iki kapacak ing ngisor iki nggunakake prosedur prasaja minangka conto. fungsiA sing ngarepake nampa bantahan positif kanggo nindakake operasi luwih. Yen nilai non-positif diterusake menyang prosedur kasebut, mula ora ana operasi maneh sing bisa ditindakake, mula pangguna kudu ditampilake pesen kesalahan lan prosedur kasebut kudu langsung metu:

Fungsi VAT_Amount(sVAT_Rate As Single) As Single VAT_Amount = 0 Yen sVAT_Rate <= 0 Banjur MsgBox "Ngarepake Nilai Positif sVAT_Rate nanging Ditampa " & sVAT_Rate Exit Function End If ... End Function

Wigati dimangerteni manawa sadurunge ngrampungake prosedur kasebut fungsi - VAT_Jumlah, fungsi VBA dibangun ing dilebokake menyang kode MsgBox, sing nampilake popup bebaya kanggo pangguna.

Ninggalake a Reply