Tutorial Pemula Menulis Makro VBA di Excel (Dan Mengapa Anda Perlu Belajar)

Tutorial Pemula Menulis Makro VBA di Excel (Dan Mengapa Anda Perlu Belajar)

Makro Excel dapat menjimatkan banyak masa anda mengautomasikan proses Excel yang sering anda gunakan . Tetapi makro sebenarnya agak terhad. Sangat mudah untuk membuat kesilapan dengan alat rakaman, dan proses rakaman canggung.





Menggunakan VBA untuk membuat makro memberi anda lebih banyak kekuatan. Anda boleh memberitahu Excel dengan tepat apa yang harus dilakukan dan bagaimana melakukannya. Anda juga mendapat akses ke lebih banyak fungsi dan keupayaan. Sekiranya anda menggunakan Excel secara berkala, ada baiknya belajar bagaimana membuat makro VBA.





Kita akan mulakan dengan asasnya.





Apa itu VBA?

VBA adalah Visual Basic untuk Aplikasi , bahasa pengaturcaraan yang boleh anda gunakan di banyak aplikasi Microsoft. Visual Basic adalah bahasa pengaturcaraan, dan VBA adalah versi khusus aplikasi daripadanya. (Microsoft menghentikan Visual Basic pada tahun 2008, tetapi VBA masih kuat).

Nasib baik untuk bukan pengaturcara, VBA sangat mudah, dan antara muka yang anda gunakan untuk mengeditnya menawarkan banyak bantuan. Sebilangan besar arahan yang akan anda gunakan cadangan timbul dan penyelesaian automatik, membantu anda membuat skrip anda berfungsi dengan cepat.



Namun, VBA memerlukan sedikit masa untuk membiasakan diri.

Kelebihan Makro VBA dalam Excel

Sekiranya VBA lebih sukar daripada merakam makro, mengapa anda menggunakannya? Jawapan ringkasnya ialah anda mendapat lebih banyak kekuatan daripada makro VBA.





Daripada mengklik hamparan anda dan merakam klik tersebut, anda boleh mengakses pelbagai fungsi dan keupayaan Excel. Anda hanya perlu tahu cara menggunakannya.

cara memulakan blog tumblr

Dan setelah anda lebih selesa dengan VBA, anda dapat melakukan semua perkara yang mungkin anda lakukan dalam makro biasa dalam masa yang lebih sedikit. Hasilnya juga akan lebih dapat diramalkan, kerana anda memberitahu Excel betul-betul Apa nak buat. Tidak ada kesamaran sama sekali.





Sebaik sahaja anda membuat makro VBA anda, mudah untuk menyimpan dan membaginya supaya orang lain dapat memanfaatkannya. Ini amat berguna semasa anda bekerja dengan banyak orang yang perlu melakukan perkara yang sama di Excel.

Mari lihat makro VBA sederhana untuk melihat bagaimana ia berfungsi.

Contoh Makro VBA di Excel

Mari lihat makro mudah. Spreadsheet kami mengandungi nama pekerja, nombor kedai di mana pekerja bekerja, dan penjualan suku tahunan mereka.

Makro ini akan menambahkan penjualan setiap suku tahun dari setiap kedai dan menulis jumlahnya ke sel dalam hamparan (jika anda tidak pasti cara mengakses dialog VBA, lihat panduan VBA kami di sini ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

Ini mungkin kelihatan panjang dan rumit, tetapi kami akan menguraikannya sehingga anda dapat melihat setiap elemen dan mengetahui sedikit mengenai asas-asas VBA.

Menyatakan Sub

Pada permulaan modul, kami mempunyai 'Sub StoreSales ()'. Ini menentukan sub sub yang baru disebut StoreSales.

Anda juga dapat menentukan fungsi --- perbezaannya ialah fungsi dapat mengembalikan nilai, dan kapal selam tidak dapat (jika anda biasa dengan bahasa pengaturcaraan lain, kapal selam adalah kaedah yang setara). Dalam kes ini, kita tidak perlu mengembalikan nilai, jadi kita menggunakan sub.

Di akhir modul, kami mempunyai 'End Sub,' yang memberitahu Excel bahawa kami sudah selesai dengan makro VBA ini.

Menyatakan Pemboleh ubah

Baris kod pertama dalam skrip kami bermula dengan 'Dim.' Dim adalah perintah VBA untuk menyatakan pemboleh ubah.

Oleh itu 'Dim Sum1' mencipta pemboleh ubah baru yang disebut 'Sum1.' Walau bagaimanapun, kita perlu memberitahu Excel jenis pemboleh ubah ini. Kita perlu memilih jenis data. Terdapat banyak jenis data yang berbeza di VBA --- anda boleh mendapatkannya senarai penuh dalam dokumen bantuan Microsoft .

Oleh kerana makro VBA kami akan berurusan dengan mata wang, kami menggunakan jenis data Mata Wang.

Pernyataan 'Dim Sum1 As Currency' memberitahu Excel untuk membuat pemboleh ubah Mata Wang baru yang disebut Sum1. Setiap pemboleh ubah yang anda nyatakan perlu mempunyai pernyataan 'As' untuk memberitahu jenisnya kepada Excel.

Memulakan Gelung Untuk

Gelung adalah beberapa perkara paling kuat yang boleh anda buat dalam bahasa pengaturcaraan mana pun. Sekiranya anda tidak biasa dengan gelung, lihat penjelasan mengenai gelung Do-While ini. Dalam contoh ini, kami menggunakan gelung For, yang juga dibahas dalam artikel.

Inilah rupa gelung:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Ini memberitahu Excel untuk melakukan iterasi melalui sel dalam julat yang kami tentukan. Kami telah menggunakan a Objek jarak , yang merupakan jenis objek tertentu dalam VBA. Apabila kita menggunakannya dengan cara ini --- Range ('C2: C51') --- ia memberitahu Excel bahawa kita berminat dengan 50 sel tersebut.

'For Every' memberitahu Excel bahawa kita akan melakukan sesuatu dengan setiap sel dalam julat. 'Sel Sel Berikutnya' muncul setelah semua yang ingin kita lakukan, dan memberitahu Excel untuk memulakan gelung dari awal (bermula dengan sel seterusnya).

Kami juga mempunyai pernyataan ini: 'Jika IsEmpty (Sel) Kemudian Keluar Untuk.'

Bolehkah anda meneka apa yang dilakukannya?

Catatan: Tegasnya, menggunakan gelung While mungkin merupakan pilihan yang lebih baik . Namun, demi pengajaran, saya memutuskan untuk menggunakan gelung For dengan Exit.

bolehkah anda melindungi kata laluan dengan kata laluan

Penyataan If-Then-Else

Inti makro khusus ini terdapat dalam pernyataan If-Then-Else. Inilah urutan penyataan bersyarat kami:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

Sebahagian besarnya, anda mungkin dapat meneka apa yang dilakukan oleh pernyataan ini. Anda mungkin tidak biasa dengan ActiveCell.Offset. 'ActiveCell.Offset (0, -1)' memberitahu Excel untuk melihat sel yang satu lajur di sebelah kiri sel aktif.

Dalam kes kami, ini memberitahu Excel untuk melihat ruangan nombor kedai. Sekiranya Excel menemui 1 di lajur ini, maka ia akan mengambil isi sel aktif dan menambahkannya ke Sum1. Sekiranya menjumpai 2, ia akan menambahkan kandungan sel aktif ke Sum2. Dan sebagainya.

Excel menjalani semua penyataan ini dengan teratur. Sekiranya penyataan bersyarat berpuas hati, ia melengkapkan pernyataan Kemudian. Sekiranya tidak, ia bergerak ke ElseIf seterusnya. Sekiranya ia berjaya sampai ke akhir dan tiada syarat yang dipenuhi, ia tidak akan mengambil tindakan.

Gabungan gelung dan bersyarat inilah yang mendorong makro ini. Gelung memberitahu Excel untuk memeriksa setiap sel dalam pilihan, dan syarat memberitahu apa yang harus dilakukan dengan sel itu.

Menulis Nilai Sel

Akhirnya, kita dapat menulis hasil pengiraan kita ke sel. Berikut adalah garis yang kami gunakan untuk melakukannya:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

Dengan '.Value' dan tanda sama, kami menetapkan setiap sel tersebut ke nilai salah satu pemboleh ubah kami.

Dan itu sahaja! Kami memberitahu Excel bahawa kami sudah selesai menulis Sub ini dengan 'End Sub', dan makro VBA selesai.

Apabila kita menjalankan makro dengan Makro butang di Pemaju tab, kami mendapat jumlah wang kami:

Menyatukan Blok Binaan VBA di Excel

Semasa pertama kali melihat makro VBA di atas, ia kelihatan agak rumit. Tetapi setelah memecahnya menjadi bahagian penyusunnya, logiknya menjadi jelas. Seperti mana-mana bahasa skrip, memerlukan masa untuk terbiasa dengan sintaks VBA.

Tetapi dengan latihan, anda akan membina perbendaharaan kata VBA anda dan dapat menulis makro dengan lebih pantas, lebih tepat, dan dengan lebih banyak kekuatan daripada yang anda dapat merakamnya.

Apabila anda buntu, menjalankan carian Google adalah cara cepat untuk menjawab soalan VBA anda. Dan Rujukan Excel VBA Microsoft boleh membantu jika anda bersedia untuk mencarinya untuk mendapatkan jawapan teknikal.

Setelah anda selesa dengan asasnya, anda boleh mula menggunakan VBA untuk perkara seperti menghantar e-mel dari Excel , mengeksport tugas Outlook, dan memaparkan maklumat PC anda.

aksesori ini mungkin tidak disokong pengecas
Berkongsi Berkongsi Tweet E-mel Inilah Sebabnya FBI Mengeluarkan Amaran untuk Hive Ransomware

FBI mengeluarkan amaran mengenai jenis ransomware yang sangat jahat. Inilah sebabnya mengapa anda perlu berhati-hati terhadap Hive ransomware.

Baca Seterusnya
Topik-topik yang berkaitan
  • Produktiviti
  • Hamparan
  • Microsoft Excel
  • Microsoft Office 2016
  • Makro
  • Tutorial Pengekodan
Mengenai Pengarang Kemudian Albright(506 Artikel Diterbitkan)

Dann adalah strategi kandungan dan perunding pemasaran yang membantu syarikat menghasilkan permintaan dan petunjuk. Dia juga menulis blog mengenai strategi dan pemasaran konten di dannalbright.com.

Lagi Dari Dann Albright

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan