KomputerSoftware

VBA Excel: program sampel. Macros di Excel

Sababaraha urang terang yen versi mimiti produk Microsoft Excel dina populér mucunghul taun 1985. Kusabab mangka geus undergone sababaraha modifikasi sarta kecepatan demand jutaan pamaké sakuliah dunya. Sanajan kitu, loba gawe ukur ku kamampuhan saeutik saeutik tina spreadsheet ieu sareng ulah malah teu terang kumaha aranjeunna bisa nyieun hirup leuwih gampang pikeun kamampuhan pikeun programming Excel.

Naon VBA

Programming dina Excel dipigawé ku Dasar keur Aplikasi basa programming Visual nu asalna diwangun dina spreadsheet kawentar ti Microsoft.

Pikeun istighfar na ahli atribut nu betah relatif pangwangunan. Salaku prakték nempokeun, VBA bisa ngawasaan dasar, sanajan pamaké nu teu boga kaahlian programming profésional. Pikeun VBA fitur kaasup palaksanaan Aksara di lingkungan aplikasi kantor.

Nu disadvantage program nu aya masalah pakait jeung kasaluyuan ti versi béda. Éta téh disababkeun ku kanyataan yen kode VBA program nujul kana fungsionalitas nu aya dina versi anyar tina produk, tapi henteu dina hiji heubeul. Aya ogé disadvantage badag sarta mahasiswa ITB kacida luhur kode pikeun ngarobah nyanghareupan muhrim. Sanajan kitu, Microsoft Office, sarta IBM Lotus Symphony ngamungkinkeun pamaké panawaran enkripsi kode Éntri sarta sandi setélan pikeun nempokeunana.

Objék, kumpulan, sipat, jeung métode

Ieu mibanda konsep ieu anjeun kedah ngartos jalma anu bade dianggo dina lingkungan VBA. Munggaran sadaya, Anjeun kedah ngartos naon tujuanna téh. Dina Excel, dina polah ieu salaku hiji lambar, buku, jeung rentang sél. objék ieu gaduh hirarki husus, i.e. nurut unggal lianna.

Kapala diantara aranjeunna teh Aplikasi, program Excel pakait sorangan. Workbooks dituturkeun, lembar kerja, sarta Range. Contona, mun ningali ka sél A1 dina lambaran husus kedah nunjuk jalan, nyokot kana akun hirarki.

Ngeunaan konsep "kempelan," grup ieu objék tina kelas anu sarua, nu rekaman dirumuskeun ChartObjects. elemen na oge objek.

Hal hareup - sipat. Sipatna fitur perlu obyék nanaon. Contona, pikeun Range nu - mangrupakeun Niley atawa Formula.

Métode - nyaéta paréntah pikeun mintonkeun yen Anjeun hoyong nyieun. Lamun nulis kode dina VBA aranjeunna bisa dipisahkeun tina titik obyék. Contona, saperti bakal ditingalikeun engké, sering pisan mun program dina paréntah "Excel" pamakéan Sél (1,1) .Select. Ieu ngandung harti yén éta téh perlu milih sél kalayan koordinat (1,1), i.e. A1.

Sanajan kitu, eta geus mindeng dipake Selection.ClearContents. palaksanaan na ieu clearing eusi sél dipilih.

Kumaha ngamimitian

Anu mimiti, rék nyieun file tur simpen éta, napelkeun ngaran tur pilih jinis «Book Excel macro-diaktipkeun."

Lajeng, buka aplikasi VB, nu cukup ngagunakeun kombinasi «Alt» konci na «F11». salajengna:

  • dina menu bar aya di luhureun jandela, klik dina ikon gigireun ikon Excel;
  • Mudule dipilih paréntah;
  • tetep ngaklik dina ikon jeung ngagantung disk;
  • nulis, sebutkeun, a outline kode.

Sigana kieu:

Sub program ()

'Kode kami

tungtung Sub

Perhatikeun yén garis " 'kode kami" bakal disorot dina warna béda (héjo). Alesan keur kekenteng ieu dikirimkeun dina awal string, nu nunjukkeun yén naon kieu téh komentar.

Ayeuna anjeun bisa nulis kode naon baé jeung nyieun keur diri alat anyar dina VBA Excel (ningali program sampel. Jrrd). Tangtu, jalma anu teu wawuh jeung dasar tina Visual Basic, éta bakal loba gampang. Sanajan kitu, malah jelema nu teu boga, lamun rék bisa meunang nyaman rada gancang.

Macros di Excel

Balik ngaran ieu hides program ditulis dina Visual Basic pikeun basa Aplikasi. Ku kituna, programming mun Excel - nya éta nyieun makro ka kode nu dipikahoyong. Kalawan kamampuhan ieu, Microsoft spreadsheet timer tumuwuh, adapting kana syarat of a pamaké husus. Sanggeus diurus cara nyieun modul keur nulis macros, kasebut nyaéta dimungkinkeun pikeun lumangsungna kalawan conto kongkrit ngeunaan program VBA Excel. Hadé ngamimitian jeung Konci paling dasar nyaeta.

conto 1

Tugas: Tulis program anu bakal nyalin nilai eusi hiji sél lajeng nyerat ka nu sejen.

Jang ngalampahkeun ieu:

  • muka tab "Témbongkeun";
  • mindahkeun ikon "macros";
  • ngocok ka "Rékam makro";
  • eusian formulir dibuka.

Pikeun kesederhanaan, dina "Ngaran makro" ninggalkeun "Makros1" na dina "konci Shortcut" diselapkeun, contona, hh (ieu ngandung harti yén anjeun bisa ngajalankeun program conto bakal «Ctrl + h» Tim Blitz). Pencét Lebetkeun.

Ayeuna nu geus dimimitian ngarekam macro, make up eusi sél ka nu sejen. Balik deui ka ikon aslina. Klik dina "Rékam makro". Peta ieu nandaan parantosan applets.

salajengna:

  • deui pindah ka string "macros";
  • ieu dipilih di daftar "makro 1";
  • klik "Run" (dimimitian Peta sami dibuka kenop potong kompas «Ctrl + hh»).

Hasilna, aksi nu geus dipigawé dina mangsa ngarekam makro nu.

Ngajadikeun rasa ningali kumaha kode nu Sigana mah. Jang ngalampahkeun ieu, balik ka string "macros" teras klik "Edit" atawa "Asupkeun". Hasilna, maranéhna manggihan diri di lingkungan VBA. Sabenerna, kodeu sorangan lokasina antara garis makro Makros1 Sub () na Tungtung Sub.

Mun Niron geus dipigawé, contona, ti sél A1 di C1 sél, salah sahiji garis kode bakal kasampak kawas Range ( "C1"). Pilih. Dina tarjamahan, éta Sigana mah "Range (" C1 "). Pilih", dina basa sejen, ngajadikeun hiji transisi ka VBA Excel, dina C1 sél.

Hiji bagian aktif kode nu nyampurnakeun tim ActiveSheet.Paste. Eta hartina ngarekam eusi dina C1 sél dipilih dipilih sél (dina hal ieu, A1).

contona 2

VBA siklus mantuan nyieun macros béda dina Excel.

VBA siklus mantuan nyieun macros béda. Nganggap yen aya hiji fungsi y = x + x 3 + 3x 2 - cos (x). Rék nyieun hiji makro pikeun grafik na. Ieu bisa dilakukeun ngan ku ngagunakeun siklus VBA.

Keur nilai awal jeung ahir fungsi argumen nyandak x1 = 0 sarta x2 = 10. Saterusna, perlu pikeun ngawanohkeun konstanta - ajén pikeun hambalan robah argumen na hiji nilai awal pikeun loket.

Sakabéh conto macros VBA Excel anu dijieun ngagunakeun prosedur sarua sakumaha diatur luhur. Bisi tinangtu ieu, kode nu Sigana mah:

Sub programm ()

x1 = 1

x2 = 10

shag = 0.1

i = 1

Ulah Sedengkeun x1

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

Sél (i, 1) .Value = x1 (nilai x1 ditulis dina mémori jeung koordinat (i, 1))

Sél (i, 2) .Value = y (y nilai anu ditulis dina sél kalayan koordinat (i, 2))

i = abdi + 1 (count valid);

x1 = x1 + shag (argumen dirobah ka ukuran hambalan);

loop

Tungtung Sub.

Salaku hasil tina makro ngajalankeun ieu "Excel" ménta dua kolom, anu mimiti nu dirékam nilai keur x, sarta kadua - ka y.

Lajeng ngajadwalkeun bisa ngawangun on aranjeunna, baku pikeun "Excel".

conto 3

Pikeun nerapkeun siklus di VBA Excel 2010, kitu ogé dina versi sejenna marengan geus ngurangan Do Sedengkeun desain dipaké Kanggo.

Mertimbangkeun program anu nyiptakeun kolom. Dina unggal sél éta bakal dirékam kuadrat pakait angka garis. Pikeun pamakéan desain bakal ngidinan pikeun ngarekam eta pisan sakeudeung, tanpa ngagunakeun counter a.

Mimiti perlu nyieun makro hiji, sakumaha ditétélakeun di luhur. Salajengna, nyerat kodeu sorangan. Simkuring yakin yén kami kabetot dina nilai keur 10 sél. Kode ieu kieu.

Keur i = 1 nepi ka 10 salajengna

paréntah anu dibikeun ka basa "manusa", sakumaha "terus-terusan ti 1 nepi ka 10 di increments tina hiji".

Lamun tugas pikeun nampa kolom kalawan kuadrat, contona, kabéh wilangan buleud ganjil antara 1 jeung 11 urang nulis:

Keur i = 1 nepi ka 10 hambalan 1 Salajengna.

Di dieu, lengkah - hambalan. Dina hal ieu, éta sarua jeung dua. Sacara standar, henteuna kecap dina loop anu ngandung harti yén hiji hambalan tunggal.

Hasilna perlu disimpen dina jumlah sél (i, 1). Lajeng unggal kali Anjeun ngamimitian daur kalawan paningkatan dina nilai nu sahiji abdi lengkah otomatis bakal tumuwuh sarta jumlahna garis. Ku kituna, bakal aya kode optimasi.

Sacara umum, kode nu bakal kasampak kawas:

Sub program ()

Keur i = 1 Pikeun 10 Lengkah 1 (bisa ditulis ukur keur i = 1 Pikeun 10)

Sél (i, 1) .Value = i ^ 2 (i.e. kwadrat ieu ditulis kana sél (i, 1) i)

Hareup (dina rasa muterkeun peran sarana counter sarta siklus mimiti sejen)

Tungtung Sub.

Mun dipigawe neuleu, kaasup rekaman jeung jalan macros (tingali. Parentah di luhur), mangka disebutna unggal waktu ukuran tinangtu bakal dicandak kolom (dina hal ieu diwangun ku 10 sél).

conto 4

Dina kahirupan sapopoe, sering pisan perlu nyandak kaputusan ieu atanapi nu gumantung kana sababaraha kaayaan. moal bisa ngalakukeun tanpa aranjeunna dina VBA Excel. Conto program mana kursus salajengna tina algoritma nu dipilih tinimbang mimitina predetermined, paling design ilahar dipaké di Mun ... Lajeng (pikeun kasus hese) Mun ... Lajeng ... TAMAT Mun.

Mertimbangkeun hal nu tangtu. Anggap rék nyieun hiji makro pikeun "Excel" pikeun sél kalayan koordinat (1,1) geus dirékam:

1 lamun argumen anu positif;

0 lamun argumen nyaeta nol;

1, upami argumen anu négatip.

Kreasi a makro misalna pikeun "Excel" dimimitian dina cara baku, ngaliwatan pamakéan "panas" kenop Alt na F11. Salajengna ditulis kodeu handap:

Sub program ()

x = Sél (1, 1) .Value (Ieu parentah nangtukeun nilai koordinat x tina eusi sél (1, 1))

Lamun x> 0 Lajeng Sél (1, 1) .Value = 1

Lamun x = 0 Lajeng Sél (1, 1) .Value = 0

Lamun x <0 Lajeng Sél (1, 1) .Value = -1

Tungtung Sub.

Eta tetep ka ngajalankeun makro sarta meunang dina "Excel" nilai nu dipikahoyong pikeun argumen.

fungsi VBA

Anjeun bisa geus noticed, dina program aplikasi spreadsheet Microsoft kawentar teu teuing hésé. Utamana lamun diajar kumaha ngagunakeun fungsi VBA. Dina total, basa programming ieu dijieun husus pikeun nulis aplikasi dina "Excel" jeung Firman, ngeunaan 160 fungsi. Éta bisa dibagi kana sababaraha golongan badag. Aranjeunna:

  • fungsi matematik. Nerapkeun aranjeunna kana argumen di nilai kosinus ieu dicandak, logaritma alam, sarta jadi sakabeh bagéan.
  • fungsi finansial. Alatan kasadiaan sarta pamakéan maranéhna programming dina Excel, anjeun bisa meunangkeun parabot mujarab pikeun akuntansi jeung padumukan finansial.
  • fungsi processing Asép Sunandar Sunarya. Ieu kaasup Array, IsArray; LBound; UBound.
  • VBA Excel fungsina pikeun jalur. Ieu grup anu cukup badag. Ieu ngawengku, contona, fungsi Spasi nyieun string kalawan sababaraha sela sarua jeung argumen integer atawa naék Mindahkeun simbol keur kode ANSI. Kabéh aya ti antarana anu lega dipaké tur ngidinan Anjeun pikeun digawekeun ku senar dina "Excel" pikeun nyieun aplikasi loba gampang pikeun digawe sareng tabel ieu.
  • fungsi artos tipe data. Contona, CVar mulih argumen Babasan, ngarobah ka Variant tipe data.
  • fungsi Tanggal. Aranjeunna greatly dilegakeun fitur baku tina "Excel". Ku kituna, fungsi WeekdayName mulih nami (pinuh atawa parsial) tina dinten dina saminggu ku jumlah na. Malah leuwih mangpaat nya otomatis éta. Anjeunna mere Jumlah detik anu tos dilakonan ti tengah wengi ka momen hususna dina sapoe.
  • Fungsina pikeun ngarobah argumen numerik dina sistem angka béda. Contona, Oct outputs mun ngagambarkeun octal tina jumlahna.
  • fungsi pormat. Paling penting ieu téh Format nu. Ieu mulih Variant hiji kalawan éksprési formatna luyu jeung parentah dirumuskeun dina pedaran format nu.
  • jeung saterusna.

Ulikan ngeunaan sipat fungsi ieu sarta aplikasi maranéhanana nyata bakal dilegakeun ruang lingkup "Excel".

conto 5

Hayu urang cobaan pikeun ngajawab masalah leuwih kompleks. Contona:

dokumen tulisan Dan tingkat sabenerna waragad laporan perusahaan. merlukeun:

  • ngamekarkeun bagian pola na ku spreadsheet "Excel";
  • nyieun program VBA anu bakal menta data atah ngeusian éta, pikeun ngalakonan itungan perlu jeung eusian nu template sél alkana.

Mertimbangkeun salah sahiji solusi handap.

Nyieun template a

Sadaya lampah anu dipigawé dina lambaran baku dina Excel. Sél bébas ditangtayungan pikeun ngasupkeun data dina bulan, sataun, pausahaan judul-konsumen, jumlah waragad, tingkat maranéhanana elehan. Salaku jumlah pausahaan (pausahaan), di hormat tina nu laporan teu dirékam, sél sangkan dina dasar nilai na ngaran profésional henteu ditangtayungan sateuacanna. LKS ditugaskeun ka ngaran anyar. Contona, "Օ Laporan".

variabel

Nulis program otomatis eusian citakan, pilih notasi nu. Aranjeunna bakal dipaké pikeun variabel:

  • NN- Jumlah baris kiwari tabél;
  • TP na TF - rencanana na elehan sabenerna;
  • SF jeung SP - aktual sarta rencanana total waragad;
  • IP na IF - rencanana sarta tingkat waragad sabenerna.

Urang denote ku hurup anu sarua, tapi ku "awalan» Itog akumulasi total keur kolom éta. Contona, ItogTP - Sareng hal mun kolom judulna, salaku "elehan rencanana".

Solusi tina masalah migunakeun programming VBA

Ngagunakeun notasi ieu, kami ménta rumus keur varian. Lamun hayang ngalakonan itungan dina% urang kudu (F - P) / P * 100, sarta dina jumlah - (F - P).

Hasil itungan ieu bisa jadi pangalusna ngan nyieun "Excel" spreadsheet dina sél luyu.

Pikeun hasil na ramalan kanyataanna diala ku rumus ItogP = ItogP + P jeung ItogF = ItogF + F.

Pikeun simpangan make = (ItogF - ItogP) / ItogP * 100 lamun itungan dilumangsungkeun salaku persentase, sarta lamun nilai total - (ItogF - ItogP).

Hasilna sakali deui kacatet dina sél luyu, jadi aya teu kudu napelkeun aranjeunna keur variabel.

Sateuacan ngawitan nyiptakeun program a rék ngahemat workbook, contona, di handapeun ngaran "Otchet1.xls".

Pencét "Jieun tabel ngalaporkeun," anjeun kudu mencet ngan 1 waktu sanggeus nuliskeun informasi lulugu. Anjeun kudu nyaho jeung aturan lianna. Dina sababaraha hal, tombol "Tambahkeun garis" kudu dipencet unggal waktu sanggeus ngasupkeun kana tabel di nilai pikeun tiap kagiatan. Sanggeus ngasupkeun sakabéh data diperlukeun keur mencet tombol "rengse", lajeng pindah ka "Excel" dina jandela.

Ayeuna nu nyaho kumaha carana ngajawab masalah pikeun Excel kalawan macros. Kamampuh ngagunakeun vba Excel (tingali program sampel. Di luhur) jeung anjeun bisa kudu dianggo dina lingkungan nu pang populerna di momen, téks redaktur "Firman". Dina sababaraha hal, ku ngarekam, ditémbongkeun saperti dina awal artikel ieu, atawa ku tulisan kode nyieun tombol menu ngaliwatan nu loba tina operasi dina téks nu bisa dilakukeun ku mencét kenop dina tugas atawa ngaliwatan "Témbongkeun" ikon sarta tab "macros".

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 su.birmiss.com. Theme powered by WordPress.