Contoh Vbs. VBA Excel: contoh program. Makro dalam Excel

Matlamat kerja - Kajian operator asas dan pelaksanaan binaan pengaturcaraan asas dalam bahasa VBA.

4.1 Peringkat utama bekerja dengan program vba dalam Excel

Untuk menyediakan dan menjalankan program dalam VBA, anda perlu melakukan perkara berikut:

    dalam Excel, pilih arahan daripada menu Alat – Makro – EditorVisualasas;

    dalam tetingkap yang muncul, pilih arahan daripada menu SisipkanModul. Satu modul dicipta, iaitu, secara ringkasnya, tetingkap terbuka di mana anda boleh memasukkan teks program.

Arahan boleh ditunjukkan pada permulaan modul Pilihaneksplisit. Jika ia dinyatakan, maka semua pembolehubah yang digunakan dalam program perlu diisytiharkan dalam penyata Malap(Untuk maklumat lanjut tentang ini, lihat subseksyen 4.3).

Dalam sesetengah kes, bergantung pada cara persekitaran VBA dikonfigurasikan, arahan Pilihaneksplisit ditunjukkan pada permulaan modul secara automatik. Jika pengaturcara ingin menggunakan pembolehubah tanpa mengisytiharkannya dalam pernyataan Malap, kemudian arahan Pilihaneksplisit perlu dikeluarkan.

Untuk menjalankan program, anda mesti memilih arahan dari menu Jalankan – Jalankan Sub/Borang Pengguna.

4.2 Contoh paling mudah program dalam VBA

Contoh 4.1– Program yang menaikkan nombor tertentu a kepada tahap yang ditetapkan b.

Malapkan a Sebagai Bujang, b Sebagai Bujang

a = InputBox("Masukkan pangkalan:")

b = InputBox("Masukkan eksponen:")

x = a^b ‘Eksponensiasi

MsgBox(“Hasilnya ialah ” & x)

Inilah perkataannya Sub menunjukkan permulaan prosedur; nama dia masuk dalam kes inibuku asas4_1 . Program VBA sentiasa terdiri daripada satu atau lebih prosedur (dalam kes ini, satu).

Aksara ' (tanda petikan tunggal) menunjukkan permulaan ulasan. Teks komen boleh jadi apa sahaja.

Malap– pengendali pengisytiharan berubah-ubah. Dalam kes ini ditunjukkan bahawa pembolehubah a Dan b mempunyai jenis Bujang. mereka. boleh sama ada keseluruhan atau nombor pecahan. Jenis data dan pengisytiharan berubah akan dibincangkan dengan lebih terperinci dalam subseksyen 4.3.

InputBox– fungsi untuk memasukkan nilai pembolehubah. Talian a = InputBox(“Masukkan pangkalan:”) bermakna bahawa nilai pembolehubah sedang dimasukkan a; mesej dipaparkan pada skrin “Masukkan pangkalan:”. Talian x = a^ b– pengendali tugasan: nilai sebelah kanan dikira (dalam kes ini, pembolehubah a diangkat menjadi kuasa b), dan hasilnya diberikan kepada pembolehubah yang ditentukan di sebelah kiri (dalam kes ini, pembolehubah x). Talian MsgBox(“Hasilnya ialah ” &x) bermakna mesej dipaparkan pada skrin "Hasilnya sama dengan" dan nilai pembolehubah x.

Nota - Tanda & dalam fungsi MsgBox direka untuk menggabungkan beberapa elemen data yang perlu dipaparkan, dalam contoh ini - rentetan "Hasilnya sama" dan berubah-ubah x. Tanda yang serupa & boleh digunakan dalam fungsi InputBox(contoh penggunaan sedemikian akan diberikan di bawah). Di hadapan papan tanda & dan mesti ada ruang selepas itu.

Anda boleh meletakkan berbilang kenyataan VBA pada satu baris. Untuk melakukan ini, mereka dipisahkan oleh aksara kolon. Jadi, atur cara daripada Contoh 4.1 boleh ditulis, sebagai contoh, seperti berikut:

'Contoh pertama program VBA

Malapkan a Sebagai Bujang, b Sebagai Bujang

a = InputBox(“Masukkan pangkalan: ”): b = InputBox(“Masukkan eksponen: ”)

x = a^b: MsgBox("Hasilnya ialah " & x) 'Eksponenisasi dan output hasil

Contoh ini menggunakan prosedur yang dipanggil subrutin. Prosedur ini bermula dengan perkataan Sub. Program VBA sentiasa mempunyai sekurang-kurangnya satu prosedur subrutin. Di samping itu, bahasa VBA mempunyai satu lagi jenis prosedur - fungsi. Prosedur fungsi bermula dengan perkataan Fungsi. Penggunaan prosedur tersebut akan dibincangkan dalam subseksyen 4.9.

(Visual Basic untuk Permohonan)

Asas - bahasa pengaturcaraan peringkat tinggi (jurubahasa)

Visual - mengandungi alat visual untuk membangunkan program (kod) yang memudahkan kerja pengguna, membolehkan anda merakam kod menggunakan perakam makro.

Aplikasi - aplikasi kepada sistem perisian MSOffice, bersama-sama dengan aplikasi Word, Access dan PowerPoint.

Mengapa ia diperlukan?VBA?

    Menggabungkan (menyepadukan) aplikasi, membolehkan anda mengurus kerja aplikasi lain tanpa meninggalkan Excel, dan membenamkan objek daripada aplikasi lain;

    Tindakan tersedia kepada pengguna pada lembaran kerja membentuk 10% daripada semua keupayaan aplikasi Excel, VBA membolehkan anda mengautomasikan kerja projek anda.

VBA ialah bahasa berorientasikan objek, yang bermaksud bahawa objek digunakan semasa membangunkan projek. Definisi: menggabungkan data dan kod menjadi satu keseluruhan Contohnya, elemen "Butang" dan kod yang sepadan yang dikaitkan dengan butang ini akan memberikan peralihan kepada helaian lain buku kerja.

Objek utamaVBA:

Aplikasi (aplikasi Excel itu sendiri)

Buku Kerja (buku kerja ialah fail anda)

WorkSheetFunction (Wizard Fungsi)

Lembaran Kerja

Julat

Carta

Gaya

Sempadan

Dalaman (warna latar belakang)

Fon (font)

Satu set beberapa objek membentuk keluarga–Buku Kerja, Helaian Kerja, Carta.

Objek mempunyai sifat (tindakan pada objek) dan kaedah (tindakan pada objek itu sendiri).

Mari kita mula berkenalan dengan alat visualisasi untuk pembangunan projek dalam VBA. Ini ialah Persekitaran Pembangunan Aplikasi Bersepadu. Untuk masuk ke persekitaran ini, anda perlu memilih ToolsMacroVBA Editor daripada item menu atau tekan kekunci ALT dan F11 secara serentak.

Komponen editor VBA akan muncul pada skrin:

Tetingkap Projek – Projek VBA

Tetingkap Properties

Tetingkap Kod

tetingkap UserForm

Bar alat

Tetingkap Project–VBAProject (Gamb. 1) menunjukkan struktur projek anda (fail). Tetingkap ini diaktifkan dalam editor VBA dengan memilih arahan View  Project Explorer atau butang "Project Explorer" atau dengan menekan Ctrl + R

nasi. 1 Tetingkap projek.

Rajah.2 Persekitaran pembangunan aplikasi bersepadu

Tetingkap kod direka untuk menyimpan kod yang dikaitkan dengan objek. Setiap objek mempunyai tetingkapnya sendiri, jadi setiap Lembaran Kerja mempunyai tetingkap kodnya sendiri dan Buku Kerja mempunyai tetingkapnya sendiri.

Ciptaan fungsi tersuai

Ciri tersuai ditambah pada senarai standard wizard fungsi (WorkSheetFunction). Fungsi ini dicipta dalam modul khas yang mengiringi objek WorkSheetFunction. Modul ini ditambahkan pada projek menggunakan perintah InsertModule, dan ia akan muncul dalam tetingkap projek pada tahap aplikasi anda. Semua kod yang ditulis dalam modul ini akan muncul dalam kategori Fungsi Ditentukan Pengguna bagi Wizard Fungsi.

Jadi, kami menambah modul pada projek kami (InsertModule) dan dalam tetingkap kod modul ini kami menulis teks program:

y = Cos((x + 2) / 2) ^ 2 + Exp(-2 * x) / (x ^ 2 + 1) ^ 0.5

Kemudian pergi ke lembaran kerja "1 carta", dalam sel c2 kami akan mengakses ciri baharu, ditambah pada wizard fungsi - y(x). Bekerja dengan fungsi ini tidak berbeza dengan bekerja dengan mana-mana fungsi lain. Dalam langkah pertama, anda perlu memilih y(x) dalam kategori "Fungsi yang ditentukan pengguna", dalam langkah kedua, tentukan sel A2 sebagai hujah x. Hasilnya, formula =y(A2) akan ditulis dalam sel C2. Seret formula ini ke seluruh julat A2:A17 seperti yang ditunjukkan dalam Rajah. 3. Sudah tentu, hasilnya harus sepadan dengan apa yang anda perolehi dengan mengira fungsi ini menggunakan alat lembaran kerja biasa.

Rajah 3. Fungsi y(x), dikira dengan cara biasa dan menggunakan fungsi yang ditentukan pengguna.

Pernyataan asas vba - Pernyataan bersyarat

Operator bersyarat mempunyai 2 bentuk penulisan:

1) Satu baris

JIKA< условие>KEMUDIAN<оператор 1>

IF,THN,ELSE – servis perkataan yang tidak boleh ditukar, dalam kurungan sudut< >teks pengguna ialah apa yang anda tulis mengikut tugasan, bahagian dalam kurungan persegi adalah pilihan, teks mungkin hilang. Borang ini biasanya digunakan dalam kes tindakan mudah, contohnya, apabila mengira modulus nombor y=x=abs(s), anda boleh menggunakan operator berikut:

JIKA x > 0 MAKA y = x LAIN y = -x

2) Dalam beberapa baris. Dalam kes ini, pernyataan bersyarat mesti berakhir dengan pernyataan "ENDIF".

JIKA<условие>KEMUDIAN

<оператор 1>

<оператор 2>

<оператор 3>

<оператор 4>

Borang ini digunakan untuk pengiraan yang kompleks, contohnya, semasa mengira punca persamaan kuadratik. Katakan kita perlu mencari punca-punca persamaan a*x 2 +b*x+c= 0. Seperti yang diketahui, jika b 2 -4*a*c≥ 0, maka punca-punca dikira menggunakan formula
, jikab 2 -4*a*c≤ 0, maka tiada punca dalam kawasan nombor nyata. Operator bersyarat, yang melaksanakan algoritma ini, kelihatan seperti ini:

JIKA b^2 -4*a*c>= 0 MAKA

X1 = (-b + (b^2 - 4*a*c)^(1/2)) / (2*a)

X2 = (-b + (b^2 + 4*a*c)^(1/2)) / (2*a)

X1 = "TIADA PENYELESAIAN"

X2 = "TIADA PENYELESAIAN"

Contoh menulis fungsi tersuai dalam vba

Contoh 1.

F
fungsi y(x)

y = Cos((x + 2) / 2) ^ 2 + Exp(-2 * x) / (x ^ 2 + 1) ^ 0.5

Fungsi Tamat

Contoh 2

Fungsi z(x)

Jika x< 0 Then

z = (1 + x + x^2) / (1 + x^2)

Jika x< 1 Then

z = (1 + 2 * x / (1 + x^2)) ^ (1 / 2)

z = 2 * Abs(0.5 + Sin(x))

Fungsi Tamat

Kuliah 2

    Sifat, kaedah dan peristiwa objek VBA. Contoh prosedur menggunakan sifat individu objectApplication.

    Kawalan

    Jenis Pembolehubah dalam VBA

    Kenyataan gelung

    Contoh program penjadualan fungsi

Sifat, kaedah dan peristiwa objek VBA. Contoh prosedur menggunakan sifat individu bagi objek Aplikasi.

Mari kita teruskan perkenalan kita dengan model objek VBA. Semua objek disusun dalam struktur hierarki, bawahan kepada objek tingkat atas"Permohonan".

Permohonan . Buku Kerja("Carta") .

Jika buku kerja (fail) "Carta" aktif, maka ia sudah cukup untuk ditentukan

Lembaran Kerja("Kandungan").Julat("A1").

Jika anda sedang mengerjakan helaian "Kandungan", maka pautan akan kelihatan seperti Julat("A1").

Semua objek mempunyai sifat, kaedah dan peristiwa.

Harta benda ini ialah beberapa ciri objek (warna, bentuk, nama, lokasi, keterlihatan, dll.) Nilai objek ditetapkan seperti berikut:

Objek.Harta = nilai harta

Kaedah ini adalah tindakan yang dilakukan pada objek (buka, tutup, padam). Peraturan penulisan kaedah:

Sebuah objek. Kaedah

Peristiwa ini adalah tindakan yang diiktiraf oleh objek (klik tetikus, klik dua kali, tekan kekunci).

Intipati pengaturcaraan dalam VBA terdiri daripada dua konsep - peristiwa dan tindak balas terhadapnya. Jika pengguna memberi kesan pada sistem (menekan butang), yang merupakan peristiwa, maka menggunakan VBA adalah mungkin untuk memprogramkan tindak balas - tindakan tindak balas.

Berikut ialah beberapa sifat, kaedah dan peristiwa objek utama.

Harta benda

Objek aplikasi

Kapsyen (tajuk objek)

Berhenti (keluar dari Excel

NewWorkBook(membuat buku kerja baharu)

AutoREcover (autosimpan)

Jimat

SheetActivate(pergi ke lembaran kerja)

ReferenceStyle(gaya pautan)

Jalankan (laksanakan makro)

WorkBookOpen(membuka buku kerja)

MemoryFree(maklumat tentang percuma memori capaian rawak)

Meruap (pengiraan semula apabila perubahan dalam sel lembaran kerja)

WorkBookBeforeClose(menutup buku kerja)

MemoryTotal (maklumat tentang jumlah RAM)

Kira(pengiraan dalam semua buka buku)

SheetBeforeDubleClick(klik dua kali)

MemoryUsed (maklumat tentang RAM terpakai)

IpputBox(input data)

SheetBeforeRightClick(klik Klik kanan)

CellDragAndDrop (kawalan menyeret formula dalam sel)

Msgbox(output mesej)

ActiveCell, ActiveSheet ( sel aktif, helaian)

Sel (julat sel)

DisplayFormulaBar (paparan bar formula)

DisplayScrollBar(paparkan bar skrol)

DisplayStatusBar (memaparkan bar status)

Sifat kaedah Aplikasi membolehkan anda menetapkan nilai banyak pilihan secara pemrograman dalam tetingkap Alat/Pilihan. Contohnya, menggunakan prosedur yang ditunjukkan di bawah, anda boleh menukar penampilan standard tetingkap Excel, menukar tajuk dan melumpuhkan tindakan seret dan lepas formula.

Prosedur ini direkodkan dalam modul "Buku Kerja Ini" dan dilaksanakan apabila buku kerja dibuka dan ditutup, iaitu, apabila acara Buka dan BeforeClose dilaksanakan:

Sub buku kerja peribadi_open()

"Tajuk buku kerja

Application.Caption = "Kisa dan Osya ada di sini"

" Warna latar belakang julat A1:D1 - Merah

"Had julat A1:D1 adalah bertitik

"seretan sel dibatalkan. CellDragAndDrops

Application.CellDragAndDrop = Palsu

' bar formula dikeluarkan

Application.DisplayFormulaBar = Palsu

‘scroll bar dikeluarkan

Application.DisplayScrollBars = Palsu

“menetapkan gaya pautan R1C1

Aplikasi.Gaya Rujukan = xlR1C1

"Sub Buku Kerja Peribadi_SebelumTutup(Batalkan Sebagai Boolean)

"Seretan sel CellDragAndDrops dipulihkan

Application.CellDragAndDrop = Benar

'Bar formula dipulihkan

Application.DisplayFormulaBar = Benar

'Bar skrol dipulihkan

Application.DisplayScrollBars = Benar

'Gaya pautan A1 dipulihkan

Aplikasi.Gaya Rujukan = xlA1

Beberapa orang tahu bahawa versi pertama yang popular produk Microsoft Excel keluar pada tahun 1985. Sejak itu, ia telah melalui beberapa pengubahsuaian dan mendapat permintaan di kalangan berjuta-juta pengguna di seluruh dunia. Pada masa yang sama, ramai orang bekerja hanya dengan sebahagian kecil daripada keupayaan pemproses hamparan ini dan tidak menyedari bagaimana keupayaan untuk memprogram dalam Excel boleh menjadikan hidup mereka lebih mudah.

Apa itu VBA

Pengaturcaraan dalam Excel dijalankan menggunakan bahasa pengaturcaraan Visual Basic for Application, yang pada asalnya dibina dalam bahasa yang paling terkenal pemproses meja daripada Microsoft.

Pakar mengaitkan kemudahan relatif pembelajarannya dengan kelebihannya. Seperti yang ditunjukkan oleh amalan, walaupun pengguna yang tidak mempunyai kemahiran pengaturcaraan profesional boleh menguasai asas VBA. Ciri-ciri VBA termasuk pelaksanaan skrip dalam persekitaran aplikasi pejabat.

Kelemahan program ini ialah masalah keserasian versi berbeza. Ia disebabkan oleh fakta bahawa kod program VBA mengakses kefungsian, yang terdapat dalam versi baru produk, tetapi hilang dalam yang lama. Selain itu, kelemahan termasuk keterbukaan kod yang terlalu tinggi untuk perubahan oleh orang luar. Namun begitu Microsoft Office, serta IBM Lotus Symphony, membenarkan pengguna menyulitkan kod awal dan menetapkan kata laluan untuk melihatnya.

Objek, koleksi, sifat dan kaedah

Ini adalah konsep yang perlu difahami oleh mereka yang akan bekerja dalam persekitaran VBA. Pertama sekali, anda perlu memahami apa itu objek. Dalam Excel, fungsi ini ialah helaian, buku kerja, sel dan julat. Objek ini mempunyai hierarki khas, i.e. patuh antara satu sama lain.

Yang utama ialah Aplikasi, yang sepadan dengan program Excel. Kemudian datang Buku Kerja, Lembaran Kerja dan Julat. Sebagai contoh, untuk mengakses sel A1 pada lembaran kerja tertentu, anda mesti menentukan laluan yang mengambil kira hierarki.

Bagi konsep "koleksi", ini adalah sekumpulan objek dari kelas yang sama, yang dalam entri mempunyai bentuk ChartObjects. dia elemen individu juga merupakan objek.

Konsep seterusnya ialah sifat. Mereka adalah ciri yang diperlukan sebarang objek. Sebagai contoh, untuk Julat ia adalah Nilai atau Formula.

Kaedah adalah arahan yang menunjukkan apa yang perlu dilakukan. Apabila menulis kod dalam VBA, mereka mesti dipisahkan daripada objek dengan noktah. Sebagai contoh, seperti yang akan ditunjukkan kemudian, selalunya apabila pengaturcaraan dalam Excel, arahan Cells(1,1).Select digunakan. Ini bermakna anda perlu memilih sel dengan koordinat

Selection.ClearContents sering digunakan bersama-sama dengannya. Melaksanakan ini bermakna mengosongkan kandungan sel yang dipilih.

Bagaimana untuk memulakan

Kemudian anda perlu pergi ke aplikasi VB, yang mana anda hanya perlu menggunakan kombinasi kekunci "Alt" dan "F11". Selanjutnya:

  • dalam bar menu yang terletak di bahagian atas tetingkap, klik pada ikon di sebelah ikon Excel;
  • pilih arahan Mudule;
  • simpan dengan mengklik pada ikon dengan imej;
  • mereka menulis, katakan, draf kod.

Ia kelihatan seperti ini:

Sub program()

"Kod kami

Sila ambil perhatian bahawa baris "Kod kami" akan diserlahkan dalam warna yang berbeza (hijau). Sebabnya ialah tanda kutip diletakkan pada permulaan baris, yang menunjukkan bahawa ulasan akan menyusul.

Kini anda boleh menulis sebarang kod dan mencipta untuk diri sendiri alat baru V VBA Excel(lihat contoh program di bawah). Sudah tentu, ia akan menjadi lebih mudah bagi mereka yang biasa dengan asas Visual Basic. Walau bagaimanapun, walaupun mereka yang tidak memilikinya boleh membiasakannya dengan cukup cepat jika mereka mahu.

Makro dalam Excel

Nama ini menyembunyikan program yang ditulis Bahasa visual Asas untuk Permohonan. Oleh itu, pengaturcaraan dalam Excel mencipta makro dengan kod yang diperlukan. Terima kasih kepada ciri ini, jadual pemproses Microsoft berkembang sendiri, menyesuaikan diri dengan keperluan pengguna tertentu. Setelah mengetahui cara membuat modul untuk menulis makro, anda boleh mula mempertimbangkan contoh khusus program VBA Excel. Sebaiknya mulakan dengan kod yang paling asas.

Contoh 1

Tugasan: tulis program yang akan menyalin nilai kandungan satu sel dan kemudian menulisnya kepada yang lain.

Untuk ini:

  • buka tab "Lihat";
  • pergi ke ikon "Macros";
  • klik pada "Rekod makro";
  • isi borang yang dibuka.

Untuk memudahkan, tinggalkan "Macro1" dalam medan "Nama makro", dan masukkan, sebagai contoh, hh ke dalam medan "Pintasan papan kekunci" (ini bermakna anda boleh melancarkan program dengan arahan pantas "Ctrl+h"). Tekan enter.

Memandangkan rakaman makro telah pun bermula, kandungan sel disalin ke yang lain. Kembali ke ikon asal. Klik pada "Rekod Makro". Tindakan ini bermakna tamatnya program.

  • kembali ke baris "Makros";
  • pilih "Makro 1" daripada senarai;
  • klik "Jalankan" (tindakan yang sama dilancarkan dengan memulakan kombinasi kekunci "Ctrl+hh").

Akibatnya, tindakan yang dilakukan semasa merakam makro berlaku.

Masuk akal untuk melihat rupa kod tersebut. Untuk melakukan ini, kembali ke baris "Macros" dan klik "Tukar" atau "Log Masuk". Akibatnya, mereka mendapati diri mereka berada dalam persekitaran VBA. Sebenarnya, kod makro itu sendiri terletak di antara baris Sub Macro1() dan End Sub.

Jika penyalinan telah dilakukan, contohnya, dari sel A1 ke sel C1, maka salah satu baris kod akan kelihatan seperti Julat("C1").Pilih. Diterjemah, ia kelihatan seperti "Julat("C1").Pilih", dengan kata lain, ia pergi ke VBA Excel, ke sel C1.

Bahagian aktif kod dilengkapkan dengan arahan ActiveSheet.Paste. Ini bermakna menulis kandungan sel yang dipilih (dalam kes ini A1) ke sel C1 yang dipilih.

Contoh 2

Gelung VBA membantu anda mencipta pelbagai makro dalam Excel.

Gelung VBA membantu anda mencipta pelbagai makro. Katakan kita mempunyai fungsi y=x + x 2 + 3x 3 - cos(x). Anda perlu mencipta makro untuk mendapatkan grafnya. Ini hanya boleh dilakukan menggunakan gelung VBA.

Nilai awal dan akhir hujah fungsi ialah x1=0 dan x2=10. Di samping itu, anda mesti memasukkan pemalar - nilai untuk langkah perubahan argumen dan nilai awal untuk pembilang.

Semua contoh Makro VBA Excel dicipta menggunakan prosedur yang sama seperti yang dibentangkan di atas. Dalam kes khusus ini, kod tersebut kelihatan seperti:

Sub program()

langkah = 0.1

Lakukan Semasa x1< x2 (цикл будет выполняться пока верно выражение x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Sel(i, 1).Nilai = x1 (nilai x1 ditulis pada sel dengan koordinat (i,1))

Sel(i, 2).Nilai = y (nilai y ditulis pada sel dengan koordinat (i,2))

i = i + 1 (kaunter berkuat kuasa);

x1 = x1 + shag (hujah berubah mengikut nilai langkah);

Tamat Sub.

Hasil daripada pelancaran tersebut makro ini dalam Excel kita mendapat dua lajur, yang pertama mengandungi nilai untuk x, dan yang kedua untuk y.

Kemudian graf dibina daripadanya dengan cara standard untuk Excel.

Contoh 3

Untuk melaksanakan gelung dalam VBA Excel 2010, seperti dalam versi lain, bersama-sama dengan pembinaan Do While yang telah diberikan, For digunakan.

Pertimbangkan program yang akan membuat lajur. Dalam setiap selnya petak nombor baris yang sepadan akan ditulis. Menggunakan binaan Untuk membolehkan anda menulisnya dengan sangat ringkas, tanpa menggunakan pembilang.

Mula-mula anda perlu membuat makro seperti yang diterangkan di atas. Seterusnya kita menulis kod itu sendiri. Kami menganggap bahawa kami berminat dengan nilai untuk 10 sel. Kodnya kelihatan seperti ini.

Untuk i = 1 hingga 10 Seterusnya

Perintah itu diterjemahkan ke dalam bahasa "manusia" sebagai "Ulang dari 1 hingga 10 dalam langkah satu."

Jika tugasnya adalah untuk mendapatkan lajur dengan petak, sebagai contoh, semua nombor ganjil dari julat 1 hingga 11, maka kami menulis:

Untuk i = 1 hingga 10 langkah 1 Seterusnya.

Di sini langkah adalah langkah. Dalam kes ini ia sama dengan dua. Secara lalai, ketiadaan perkataan ini dalam kitaran bermakna langkah itu adalah tunggal.

Keputusan yang diperoleh mesti disimpan dalam sel bernombor (i,1). Kemudian, setiap kali gelung dimulakan, dengan i meningkat dengan saiz langkah, nombor baris akan meningkat secara automatik. Dengan cara ini kod akan dioptimumkan.

Secara keseluruhan kod akan kelihatan seperti:

Sub program()

Untuk i = 1 Hingga 10 Langkah 1 (anda boleh menulis Untuk i = 1 Hingga 10)

Sel(i, 1).Nilai = i ^ 2 (iaitu nilai segi empat sama i ditulis ke sel (i,1)

Seterusnya (dalam erti kata lain memainkan peranan sebagai pembilang dan bermaksud satu lagi permulaan gelung)

Tamat Sub.

Jika semuanya dilakukan dengan betul, termasuk merakam dan menjalankan makro (lihat arahan di atas), maka apabila anda memanggilnya, anda akan mendapat lajur setiap kali saiz yang diberi(dalam kes ini terdiri daripada 10 sel).

Contoh 4

DALAM Kehidupan seharian Selalunya keperluan timbul untuk membuat satu keputusan atau yang lain bergantung pada beberapa syarat. Anda tidak boleh melakukannya tanpa mereka dalam VBA Excel. Contoh-contoh program di mana kursus pelaksanaan selanjutnya algoritma dipilih dan tidak ditetapkan pada mulanya, paling kerap menggunakan pembinaan Jika ...Kemudian (untuk kes kompleks) Jika ...Kemudian ...TAMAT Jika.

Mari kita pertimbangkan kes tertentu. Katakan anda perlu mencipta makro untuk Excel supaya perkara berikut ditulis dalam sel dengan koordinat (1,1):

1 jika hujah adalah positif;

0 jika hujah adalah batal;

-1 jika hujahnya negatif.

Penciptaan makro sedemikian untuk Excel bermula dengan cara yang standard, melalui penggunaan "panas" Kekunci Alt dan F11. Seterusnya kod berikut ditulis:

Sub program()

x= Sel(1, 1).Nilai (arahan ini memberikan x nilai kandungan sel pada koordinat (1, 1))

Jika x>0 Maka Sel(1, 1).Nilai = 1

Jika x=0 Maka Sel(1, 1).Nilai = 0

Jika x<0 Then Cells(1, 1).Value = -1

Tamat Sub.

Yang tinggal hanyalah menjalankan makro dan mendapatkan nilai yang diperlukan untuk hujah dalam Excel.

Fungsi VBA

Seperti yang anda mungkin telah perasan, pengaturcaraan dalam pemproses hamparan paling terkenal Microsoft tidaklah begitu sukar. Terutama jika anda belajar cara menggunakan fungsi VBA. Secara keseluruhannya, bahasa pengaturcaraan ini, yang dicipta khusus untuk menulis aplikasi dalam Excel dan Word, mempunyai kira-kira 160 fungsi. Mereka boleh dibahagikan kepada beberapa kumpulan besar. ini:

  • Fungsi matematik. Menggunakannya pada hujah, mereka memperoleh nilai kosinus, logaritma asli, bahagian integer, dsb.
  • Fungsi kewangan. Terima kasih kepada ketersediaan mereka dan menggunakan pengaturcaraan Excel, anda boleh mendapatkan alat yang berkesan untuk pengiraan perakaunan dan kewangan.
  • Fungsi pemprosesan tatasusunan. Ini termasuk Array, IsArray; LBound; UBound.
  • Fungsi Excel VBA untuk rentetan. Ini adalah kumpulan yang agak besar. Ini termasuk, sebagai contoh, fungsi Space untuk mencipta rentetan dengan bilangan ruang yang sama dengan hujah integer, atau Asc untuk menukar aksara kepada kod ANSI. Kesemuanya digunakan secara meluas dan membolehkan anda bekerja dengan baris dalam Excel, mencipta aplikasi yang memudahkan kerja dengan jadual ini.
  • Fungsi penukaran jenis data. Sebagai contoh, CVar mengembalikan nilai argumen Ungkapan dengan menukarnya kepada jenis data Varian.
  • Fungsi untuk bekerja dengan tarikh. Mereka mengembangkan yang standard dengan ketara. Oleh itu, fungsi WeekdayName mengembalikan nama (penuh atau sebahagian) hari dalam seminggu mengikut nombornya. Lebih berguna ialah Pemasa. Ia memberikan bilangan saat yang telah berlalu dari tengah malam ke titik tertentu dalam hari itu.
  • Berfungsi untuk menukar argumen berangka kepada sistem nombor yang berbeza. Sebagai contoh, Okt mengeluarkan nombor dalam perlapanan.
  • Fungsi pemformatan. Yang paling penting ialah Format. Ia mengembalikan nilai Varian dengan ungkapan yang diformatkan mengikut arahan yang dinyatakan dalam pengisytiharan format.
  • dan lain-lain.

Mempelajari sifat fungsi ini dan aplikasinya akan meluaskan skop Excel dengan ketara.

Contoh 5

Mari kita cuba meneruskan untuk menyelesaikan masalah yang lebih kompleks. Sebagai contoh:

Dokumen kertas yang melaporkan tahap kos sebenar perusahaan diberikan. Diperlukan:

  • membangunkan bahagian templatnya menggunakan hamparan Excel;
  • buat program VBA yang akan meminta data awal untuk mengisinya, menjalankan pengiraan yang diperlukan dan mengisi sel templat yang sepadan dengannya.

Mari kita pertimbangkan salah satu pilihan penyelesaian.

Buat templat

Semua tindakan dijalankan pada helaian standard dalam Excel. Sel percuma dikhaskan untuk memasukkan data mengenai nama syarikat pengguna, jumlah kos, tahapnya dan perolehan. Oleh kerana bilangan syarikat (syarikat) yang laporan sedang disusun tidak tetap, sel untuk memasukkan nilai berdasarkan keputusan dan nama pakar tidak dikhaskan terlebih dahulu. Lembaran kerja diberi nama baharu. Contohnya, "laporan".

Pembolehubah

Untuk menulis program untuk mengisi templat secara automatik, anda perlu memilih notasi. Ini akan digunakan untuk pembolehubah:

  • NN - nombor baris jadual semasa;
  • TP dan TF - perolehan dagangan yang dirancang dan sebenar;
  • SF dan SP - jumlah kos sebenar dan terancang;
  • IP dan IF - tahap kos yang dirancang dan sebenar.

Marilah kita menggunakan huruf yang sama, tetapi dengan "awalan" Itog, untuk menandakan pengumpulan jumlah untuk lajur ini. Contohnya, ItogTP - merujuk kepada lajur jadual bertajuk "perolehan terancang".

Menyelesaikan masalah menggunakan pengaturcaraan VBA

Menggunakan tatatanda yang diperkenalkan, kami memperoleh formula untuk sisihan. Jika anda perlu mengira dalam %, kami mempunyai (F - P) / P * 100, dan secara keseluruhan - (F - P).

Hasil pengiraan ini boleh dimasukkan terus ke dalam sel yang sesuai dalam hamparan Excel.

Untuk jumlah sebenar dan ramalan, ia diperoleh menggunakan formula ItogP=ItogP + P dan ItogF=ItogF+ F.

Untuk sisihan gunakan = (ItogF - ItogP) / ItogP * 100 jika pengiraan dijalankan sebagai peratusan, dan dalam kes jumlah nilai - (ItogF - ItogP).

Keputusan sekali lagi ditulis dengan serta-merta ke sel yang sesuai, jadi tidak perlu menetapkannya kepada pembolehubah.

Sebelum menjalankan program yang dibuat, anda perlu menyimpan buku kerja, contohnya, di bawah nama "Report1.xls".

Butang "Buat jadual pelaporan" hanya perlu ditekan sekali selepas memasukkan maklumat pengepala. Terdapat peraturan lain yang perlu anda ketahui. Khususnya, butang "Tambah Baris" mesti diklik setiap kali selepas memasukkan nilai untuk setiap jenis aktiviti ke dalam jadual. Selepas memasukkan semua data, anda perlu mengklik butang "Selesai" dan kemudian beralih ke tetingkap Excel.

Kini anda tahu cara menyelesaikan masalah Excel menggunakan makro. Keupayaan untuk menggunakan vba excel (lihat contoh program di atas) mungkin juga diperlukan untuk berfungsi dalam editor teks paling popular pada masa ini, Word. Khususnya, anda boleh membuat butang menu dengan menulis, seperti yang ditunjukkan pada awal artikel, atau dengan menulis kod, terima kasih kepada banyak operasi pada teks boleh dijalankan dengan menekan kekunci tugas atau melalui tab "Lihat" dan ikon "Makros".

MZTools - Utiliti yang sangat berguna untuk mereka yang memprogram dalam VBA. Benar-benar menjimatkan masa semasa menulis kod. Ia adalah penting bahawa utiliti benar-benar percuma. Berikut adalah beberapa cirinya:

  • Memasukkan pengendali ralat secara automatik ke dalam modul
  • Memasukkan ulasan ke dalam pengepala prosedur, dengan sisipan automatik masa, nama modul dan prosedur, dan keupayaan untuk menunjukkan pengarang prosedur
  • Penomboran automatik baris kod
  • Mengalih keluar penomboran daripada baris kod
  • Cipta templat kod yang kerap digunakan
  • Papan keratan sendiri untuk 9 operasi dengan kemungkinan kod dan sisipan seterusnya mana-mana daripada 9 kod yang disalin
  • dan banyak lagi perkara yang bermanfaat

Program ini diedarkan secara percuma.

(37.3 KiB, 3,708 muat turun)


Laman web rasmi: tidak ditemui

Alat VBE - Berapa ramai daripada anda yang telah menulis kod untuk borang, dan kemudian teringat bahawa sesetengah elemen tidak dinamakan seperti yang anda mahukan atau hanya mahu dinamakan semula kerana perubahan dalam kod? Dan, sudah tentu, kami menghadapi masalah apabila menamakan semula elemen, kami perlu masuk ke dalam kod dan menggantikan semua rujukan kepada elemen ini di sana dengan nama baharu. Jadi, dengan bantuan program ini, anda boleh menamakan semula nama mana-mana elemen bentuk (TextBox, Label, dll.) dan kawalan ActiveX pada helaian Excel, dan program itu sendiri akan menggantikan semua pautan dalam kod daripada nama lama kepada yang baru. Sangat selesa.

Program ini diedarkan secara percuma.

Beberapa orang tahu bahawa versi pertama produk popular Microsoft Excel muncul pada tahun 1985. Sejak itu, ia telah melalui beberapa pengubahsuaian dan mendapat permintaan di kalangan berjuta-juta pengguna di seluruh dunia. Pada masa yang sama, ramai yang bekerja hanya dengan sebahagian kecil daripada keupayaan pemproses hamparan ini dan tidak menyedari bagaimana keupayaan untuk memprogram dalam Excel boleh menjadikan hidup mereka lebih mudah.

Apa itu VBA

Pengaturcaraan dalam Excel dijalankan menggunakan bahasa pengaturcaraan Visual Basic for Application, yang pada asalnya dibina ke dalam pemproses hamparan paling terkenal daripada Microsoft.

Pakar mengaitkan kemudahan perbandingan pembelajarannya dengan kelebihannya. Seperti yang ditunjukkan oleh amalan, walaupun pengguna yang tidak mempunyai kemahiran pengaturcaraan profesional boleh menguasai asas VBA. Ciri khas VBA termasuk pelaksanaan skrip dalam persekitaran aplikasi pejabat.

  • kembali ke baris "Makros";
  • pilih "Makro 1" daripada senarai;
  • Klik "Jalankan" (tindakan yang sama dilancarkan dengan memulakan kombinasi kekunci "Ctrl+hh").

Akibatnya, tindakan yang telah dijalankan semasa proses rakaman makro berlaku.

Masuk akal untuk melihat rupa kod tersebut. Untuk melakukan ini, kembali ke baris "Macros" dan klik "Tukar" atau "Log Masuk". Akibatnya, mereka berakhir dalam persekitaran VBA. Sebenarnya, kod makro itu sendiri terletak di antara baris Sub Macro1() dan End Sub.

Jika penyalinan dilakukan, contohnya, dari sel A1 ke sel C1, maka salah satu baris kod akan kelihatan seperti Julat("C1").Pilih. Dalam terjemahan, ia kelihatan seperti "Julat("C1"). Pilih", dengan kata lain, ia bergerak ke sel C1 dalam VBA Excel.

Bahagian aktif kod dilengkapkan dengan arahan ActiveSheet.Paste. Ini bermakna menulis kandungan sel yang dipilih (dalam kes ini A1) ke dalam sel C1 yang dipilih.

Contoh 2

Gelung VBA membantu anda mencipta pelbagai makro dalam Excel.

Gelung VBA membantu anda mencipta pelbagai makro. Mari kita andaikan bahawa terdapat fungsi y=x + x2 + 3x3 - cos(x). Anda perlu mencipta makro untuk mendapatkan grafnya. Ini hanya boleh dilakukan menggunakan gelung VBA.

Nilai awal dan akhir hujah fungsi ialah x1=0 dan x2=10. Di samping itu, anda mesti memasukkan pemalar - nilai untuk langkah perubahan argumen dan nilai awal untuk pembilang.

Semua contoh makro VBA Excel dicipta menggunakan prosedur yang sama seperti yang dibentangkan di atas. Dalam kes khusus ini, kod tersebut kelihatan seperti:

Lakukan Semasa x1< x2 (цикл будeт выполняться пока вeрно выражeниe x1 < x2)

y=x1 + x1^2 + 3*x1^3 - Cos(x1)

Sel(i, 1).Nilai = x1 (nilai x1 ditulis pada sel dengan koordinat (i,1))

Sel(i, 2).Nilai = y (nilai y ditulis pada sel dengan koordinat (i,2))

i = i + 1 (kaunter berkuat kuasa);

x1 = x1 + shag (hujah berubah mengikut nilai langkah);

Hasil daripada menjalankan makro ini dalam Excel, kami mendapat dua lajur, yang pertama mengandungi nilai untuk x, dan yang kedua untuk y.

Kemudian graf dibina daripadanya dengan cara standard untuk Excel.

Contoh 3

Untuk melaksanakan gelung dalam VBA Excel 2010, seperti dalam versi lain, bersama-sama dengan pembinaan Do While yang telah diberikan, For digunakan.

Mari lihat program yang akan membuat lajur. Dalam setiap selnya petak nombor baris yang sepadan akan ditulis. Menggunakan binaan Untuk membolehkan anda menulisnya dengan sangat ringkas, tanpa menggunakan pembilang.

Mula-mula anda perlu membuat makro seperti yang diterangkan di atas. Seterusnya kita menulis kod itu sendiri. Kami percaya bahawa kami berminat dengan nilai untuk 10 sel. Kodnya kelihatan seperti ini.

Untuk i = 1 hingga 10 Seterusnya

Perintah itu diterjemahkan ke dalam bahasa "manusia" sebagai "Ulang dari 1 hingga 10 dalam langkah satu."

Jika tugasnya adalah untuk mendapatkan lajur dengan petak, sebagai contoh, semua nombor ganjil dari julat 1 hingga 11, maka kami menulis:

Untuk i = 1 hingga 10 langkah 1 Seterusnya.

Di sini langkah adalah langkah. Dalam kes ini ia sama dengan dua. Secara lalai, ketiadaan perkataan ini dalam gelung bermakna langkah itu adalah tunggal.

Keputusan yang diperoleh mesti disimpan dalam sel bernombor (i,1). Kemudian, setiap kali gelung bermula dengan i bertambah mengikut saiz langkah, nombor baris akan meningkat secara automatik. Oleh itu, kod akan dioptimumkan.

Secara umum, kod akan kelihatan seperti:

Untuk i = 1 Hingga 10 Langkah 1 (anda boleh menulis Untuk i = 1 Hingga 10)

Sel(i, 1).Nilai = i ^ 2 (iaitu nilai segi empat sama i ditulis ke dalam sel (i,1))

Seterusnya (dalam erti kata tertentu, ia memainkan peranan sebagai kaunter dan bermaksud satu lagi permulaan kitaran)

Jika semuanya dilakukan dengan betul, termasuk merakam dan menjalankan makro (lihat arahan di atas), maka apabila anda memanggilnya setiap kali anda akan mendapat lajur saiz yang ditentukan (dalam kes ini, terdiri daripada 10 sel).

Contoh 4

Dalam kehidupan seharian, selalunya keperluan timbul untuk membuat satu atau lain keputusan bergantung pada beberapa keadaan. Anda tidak boleh melakukannya tanpa mereka dalam VBA Excel. Contoh-contoh program di mana kursus pelaksanaan selanjutnya algoritma dipilih dan tidak ditetapkan pada mulanya, paling kerap menggunakan pembinaan Jika ...Kemudian (untuk kes kompleks) Jika ...Kemudian ...TAMAT Jika.

Mari kita pertimbangkan kes tertentu. Katakan anda perlu mencipta makro untuk Excel supaya perkara berikut ditulis dalam sel dengan koordinat (1,1):

1, jika hujah adalah positif;

0 jika hujah adalah sifar;

1 jika hujahnya negatif.

Mencipta makro sedemikian untuk Excel bermula dengan cara standard, melalui penggunaan kekunci panas Alt dan F11. Seterusnya kod berikut ditulis:

x= Sel(1, 1).Nilai (arahan ini memberikan x nilai kandungan sel dengan koordinat (1, 1))

Jika x>0 Maka Sel(1, 1).Nilai = 1

Jika x=0 Maka Sel(1, 1).Nilai = 0

Jika x<0 Then Cells(1, 1).Value = -1

Yang tinggal hanyalah menjalankan makro dan mendapatkan nilai yang diperlukan untuk hujah dalam Excel.

Fungsi VBA

Seperti yang mungkin anda perhatikan, pengaturcaraan dalam pemproses jadual Microsoft yang paling terkenal tidaklah begitu sukar. Terutama jika anda belajar cara menggunakan fungsi VBA. Secara keseluruhannya, bahasa pengaturcaraan ini, yang dicipta khusus untuk menulis aplikasi dalam Excel dan Word, mempunyai kira-kira 160 fungsi. Mereka boleh dibahagikan kepada beberapa kumpulan besar. ini:

  • Fungsi matematik. Dengan mengaplikasikannya pada hujah, mereka memperoleh nilai kosinus, logaritma asli, bahagian integer, dsb.
  • Fungsi kewangan. Terima kasih kepada ketersediaan mereka dan menggunakan pengaturcaraan dalam Excel, anda boleh mendapatkan alat yang berkesan untuk perakaunan dan pengiraan kewangan.
  • Fungsi pemprosesan tatasusunan. Ini termasuk Array, IsArray; LBound; UBound.
  • Fungsi Excel VBA untuk rentetan. Ini adalah kumpulan yang agak besar. Ia termasuk, sebagai contoh, fungsi Space untuk mencipta rentetan dengan bilangan ruang yang sama dengan hujah integer, atau Asc untuk menukar aksara kepada kod ANSI. Kesemuanya digunakan secara meluas dan membolehkan anda bekerja dengan baris dalam Excel, mencipta aplikasi yang sangat memudahkan kerja dengan jadual ini.
  • Fungsi penukaran jenis data. Sebagai contoh, CVar mengembalikan nilai argumen Ungkapan dengan menukarnya kepada jenis data Varian.
  • Fungsi untuk bekerja dengan tarikh. Mereka meluaskan keupayaan standard Excel dengan ketara. Oleh itu, fungsi WeekdayName mengembalikan nama (penuh atau sebahagian) hari dalam seminggu dengan nombornya. Lebih berguna ialah Pemasa. Ia memberikan bilangan saat yang telah berlalu dari tengah malam ke titik tertentu dalam hari itu.
  • Berfungsi untuk menukar argumen berangka kepada sistem nombor yang berbeza. Sebagai contoh, Okt memaparkan nombor dalam perwakilan perlapanan.
  • Fungsi pemformatan. Yang paling penting ialah Format. Ia mengembalikan nilai Varian dengan ungkapan yang diformatkan mengikut arahan yang dinyatakan dalam pengisytiharan format.
  • dan lain-lain.

Mempelajari sifat fungsi ini dan aplikasinya akan meluaskan skop Excel dengan ketara.

Contoh 5

Mari kita cuba meneruskan untuk menyelesaikan masalah yang lebih kompleks. Sebagai contoh:

Dokumen kertas yang melaporkan tahap kos sebenar perusahaan diberikan. Diperlukan:

  • membangunkan bahagian templatnya menggunakan hamparan Excel;
  • buat program VBA yang akan meminta data awal untuk mengisinya, menjalankan pengiraan yang diperlukan dan mengisi sel templat yang sepadan dengannya.

Mari kita pertimbangkan salah satu penyelesaian yang mungkin.

Mencipta templat

Semua tindakan dijalankan pada helaian standard dalam Excel. Sel percuma dikhaskan untuk memasukkan data mengikut bulan, tahun, nama syarikat pengguna, jumlah kos, tahap mereka, perolehan. Memandangkan bilangan syarikat (pertubuhan) yang laporan sedang disusun tidak tetap, sel untuk memasukkan nilai berdasarkan keputusan dan nama pakar tidak dikhaskan terlebih dahulu. Lembaran kerja diberi nama baharu. Sebagai contoh, "laporan".

Pembolehubah

Untuk menulis program untuk mengisi templat secara automatik, anda perlu memilih notasi. Ia akan digunakan untuk pembolehubah:

  • NN - nombor baris jadual semasa;
  • TP dan TF - perolehan dagangan yang dirancang dan sebenar;
  • SF dan SP - jumlah kos sebenar dan terancang;
  • IP dan IF - tahap kos yang dirancang dan sebenar.

Marilah kita menggunakan huruf yang sama, tetapi dengan "awalan" Itog, untuk menandakan pengumpulan jumlah untuk lajur ini. Contohnya, ItogTP merujuk kepada lajur jadual bertajuk "perolehan terancang".

Menyelesaikan masalah menggunakan pengaturcaraan VBA

Menggunakan tatatanda yang diperkenalkan, kami memperoleh formula untuk sisihan. Jika anda perlu mengira dalam %, kami mempunyai (F - P) / P * 100, dan secara keseluruhan - (F - P).

Cara terbaik untuk segera memasukkan hasil pengiraan ini adalah ke dalam sel yang sepadan dalam jadual Excel.

Untuk jumlah sebenar dan ramalan, ia diperoleh menggunakan formula ItogP=ItogP + P dan ItogF=ItogF+ F.

Untuk sisihan gunakan = (ItogF - ItogP) / ItogP * 100, jika pengiraan dijalankan sebagai peratusan, dan dalam kes jumlah nilai - (ItogF - ItogP).

Hasilnya sekali lagi ditulis dengan serta-merta ke sel yang sepadan, jadi tidak perlu menetapkannya kepada pembolehubah.

Sebelum menjalankan program yang dibuat, anda perlu menyimpan buku kerja, contohnya, di bawah nama "Report1.xls".

Butang "Buat jadual pelaporan" hanya perlu ditekan sekali selepas memasukkan maklumat pengepala. Terdapat peraturan lain yang perlu anda ketahui. Khususnya, butang "Tambah baris" mesti ditekan setiap kali selepas memasukkan nilai untuk setiap jenis aktiviti ke dalam jadual. Selepas memasukkan semua data, anda perlu mengklik butang "Selesai" dan kemudian beralih ke tetingkap Excel.

Kini anda tahu cara menyelesaikan masalah Excel menggunakan makro. Keupayaan untuk menggunakan VBA Excel (lihat contoh program di atas) mungkin juga diperlukan untuk berfungsi dalam editor teks paling popular pada masa ini, Word. Khususnya, anda boleh, dengan menulis, seperti yang ditunjukkan pada awal artikel, atau dengan menulis kod, membuat butang menu, terima kasih kepada banyak operasi pada teks boleh dijalankan dengan menekan kekunci tugas atau melalui "Lihat" tab dan ikon "Macros".