Að nefna Excel VBA undirmenn og aðgerðir

Eins og menn, gæludýr og fellibylir, verða allar Excel VBA undir- og aðgerðaaðferðir að hafa nafn. Þó að það sé fullkomlega ásættanlegt að nefna hundinn þinn Hairball Harris, þá er það yfirleitt ekki góð hugmynd að nota svona frjálst hjól þegar þú nefnir Excl VBA aðferðir. Þegar þú nefnir Excel VBA verklagsreglur verður þú að fylgja nokkrum reglum:

  • Þú getur notað bókstafi, tölustafi og suma greinarmerki, en fyrsti stafurinn verður að vera bókstafur.
  • Þú getur ekki notað nein bil eða punkta í nafninu.
  • VBA gerir ekki greinarmun á hástöfum og lágstöfum.
  • Þú getur ekki notað neina af eftirfarandi stöfum í aðferðarheiti: #, $, %, &, @, ^, *, eða !. Með öðrum orðum, aðferðarheitið þitt getur ekki litið út eins og teiknimyndasögur bölvunarorð.
  • Ef þú skrifar aðgerðaferli til notkunar í formúlu skaltu forðast að nota nafn sem lítur út eins og vistfang klefi (til dæmis A1 eða B52). Reyndar leyfir Excel slík aðgerðaheiti, en af ​​hverju að gera hlutina ruglingslegri en þeir eru nú þegar?
  • Verklagsnöfn mega ekki vera lengri en 255 stafir. (Auðvitað myndirðu aldrei gera aðferðarheiti svona langt.)

Helst lýsir nafn aðferðar tilgangi venjunnar. Góð venja er að búa til nafn með því að sameina sögn og nafnorð - til dæmis ProcessData, PrintReport, Sort_Array eða CheckFilename.

Sumir forritarar kjósa að nota setningarlík nöfn sem veita fullkomna lýsingu á ferlinu. Nokkur dæmi eru WriteReportToTextFile og Get_Print_Options_and_Print_Report. Notkun svo langra nafna hefur kosti og galla. Annars vegar eru slík nöfn lýsandi og yfirleitt ótvíræð. Á hinn bóginn taka þeir lengri tíma að vélrita. Allir þróa nafngiftarstíl, en ef makróið þitt er ekki bara fljótlegt og óhreint tímabundið makró, þá er gott að vera lýsandi og forðast tilgangslaus nöfn eins og DoIt, Update, Fix og hið sívinsæla Macro1.

Framkvæma Excel VBA undirferli

Þó að þú vitir kannski ekki mikið um að þróa undiraðferðir á þessum tímapunkti, þá er mikilvægt að vita hvernig á að framkvæma þessar aðferðir. Undiraðferð er einskis virði nema þú vitir hvernig á að framkvæma hana.

Við the vegur, það að framkvæma Sub aðferð þýðir það sama og að keyra eða kalla á Sub aðferð. Þú getur notað hvaða hugtök sem þú vilt.

Þú getur keyrt VBA Sub á marga vegu; það er ein ástæða þess að þú getur gert svo marga gagnlega hluti með Sub verklagsreglum. Hér er tæmandi listi yfir leiðir til að framkvæma undirferli:

  • Veldu Run → Run Sub/UserForm (í VBE). Excel framkvæmir undiraðferðina þar sem bendillinn er staðsettur. Þessi valmyndarskipun hefur tvo valkosti: F5 takkann og Run Sub/UserForm hnappinn á Standard tækjastikunni í VBE. Þessar aðferðir virka ekki ef aðferðin krefst einnar eða fleiri röksemda.
  • Notaðu Macro valmyndina í Excel. Þú opnar þennan reit með því að velja Hönnuður → Kóði → Fjölvi eða með því að velja Skoða → Fjölvi → Fjölvi. Eða framhjá borði og ýttu bara á Alt+F8. Þegar Macro valmyndin birtist skaltu velja undiraðferðina sem þú vilt og smella á Run. Þessi svargluggi sýnir aðeins þær aðferðir sem þurfa ekki rök.
  • Ýttu á Ctrl+takkann (eða Ctrl+Shift+hnappinn) sem er úthlutað til undirferlisins (að því gefnu að þú hafir úthlutað einum).
  • Smelltu á hnapp eða form á vinnublaði. Hnappinum eða löguninni verður að vera úthlutað undirferli – sem er mjög auðvelt að gera.
  • Frá annarri undiraðferð sem þú skrifar.
  • Smelltu á hnapp sem þú hefur bætt við Quick Access tækjastikuna.
  • Úr sérsniðnum hlut sem þú hefur bætt við borðið.
  • Þegar atburður á sér stað. Þessir atburðir fela í sér að opna vinnubókina, loka vinnubókinni, vista vinnubókina, breyta reit, virkja blað og fleira.
  • Frá Immediate glugganum í VBE. Sláðu bara inn nafnið á undirferlinu og ýttu á Enter.

Farið er yfir sumar þessara aðferða hér að neðan. Til að fylgja með þarftu að slá inn undirferli í VBA einingu:

Byrjaðu á nýrri vinnubók.

Ýttu á Alt+F11 til að virkja VBE.

Veldu vinnubókina í Verkefnaglugganum.

Veldu Setja inn → Eining til að setja inn nýja einingu.

Sláðu inn eftirfarandi í eininguna:

Sub ShowCubeRoot()
  Num = InputBox("Sláðu inn jákvæða tölu")
  MsgBox Num ^ (1/3) & "er teningsrótin."
End Sub

Þessi aðferð biður notandann um tölu og sýnir síðan teningarót þess númers í skilaboðareit. Þessar myndir sýna hvað gerist þegar þú framkvæmir þessa aðferð.

Að nefna Excel VBA undirmenn og aðgerðir

Notaðu innbyggða VBA InputBox aðgerðina til að fá númer.

Þú líka hvað gerist í gegnum MsgBox aðgerðina hér.

Að nefna Excel VBA undirmenn og aðgerðir

Sýnir teningsrót tölunnar með MsgBox aðgerðinni.

Við the vegur, ShowCubeRoot er ekki dæmi um gott macro. Það athugar ekki fyrir villur, svo það mistekst auðveldlega. Prófaðu að smella á Hætta við hnappinn í innsláttarreitnum eða slá inn neikvæða tölu. Hvor aðgerðin leiðir til villuboða.

Framkvæma Excel VBA undirferli beint

Ein leið til að framkvæma þessa aðferð er með því að gera það beint úr VBA einingunni sem þú skilgreindir hana í. Fylgdu þessum skrefum:

Virkjaðu VBE og veldu VBA eininguna sem inniheldur ferlið.

Færðu bendilinn hvert sem er í kóða aðferðarinnar.

Ýttu á F5 (eða veldu Run → Run Sub/UserForm).

Svaraðu innsláttarreitnum og smelltu á Í lagi.

Aðferðin sýnir teningsrót tölunnar sem þú slóst inn.

Þú getur ekki notað Run → Run Sub/UserForm til að keyra undirferli sem notar rök, vegna þess að þú hefur enga leið til að senda rökin yfir í ferlið. Ef aðferðin inniheldur eitt eða fleiri rök er eina leiðin til að framkvæma hana að kalla hana frá annarri aðferð - sem verður að gefa rökin/rökurnar.

Að framkvæma málsmeðferðina úr Macro glugganum í Excel

Oftast framkvæmir þú undiraðferðir úr Excel, ekki frá VBE. Eftirfarandi skref lýsa því hvernig á að framkvæma fjölvi með því að nota Macro svargluggann í Excel:

Ef þú ert að vinna í VBE skaltu virkja Excel.
Með því að ýta á Alt+F11 er hraðleiðin.

Veldu þróunaraðila → Kóði → Fjölvi (eða ýttu á Alt+F8).
Excel sýnir gluggann sem sýndur er hér.Að nefna Excel VBA undirmenn og aðgerðir

Macro valmyndin sýnir allar tiltækar undiraðferðir.

Veldu fjölva.

Smelltu á Run (eða tvísmelltu á heiti fjölvisins í listanum).

Macro svarglugginn sýnir ekki undiraðferðir sem nota rök. Það er vegna þess að það er engin leið fyrir þig að tilgreina rökin.

Að keyra Excel VBA fjölvi með því að nota flýtivísa

Önnur leið til að framkvæma fjölvi er að ýta á flýtileiðarhnappinn. En áður en þú getur notað þessa aðferð, verður þú að tengja flýtilykla á fjölvi.

Þú hefur tækifæri til að úthluta flýtivísa í glugganum Record Macro þegar þú byrjar að taka upp fjölvi . Ef þú býrð til málsmeðferðina án þess að nota makróritara geturðu úthlutað flýtivísalykli (eða breytt núverandi flýtilykla) með því að nota eftirfarandi skref:

Veldu þróunaraðila → Kóði → Fjölvi.

Veldu undiraðferðarheitið úr listanum.

Í þessu dæmi er aðferðin nefnd ShowCubeRoot.

Smelltu á Options hnappinn.
Excel sýnir Macro Options valmyndina sem sýndur er hér.Að nefna Excel VBA undirmenn og aðgerðir

Macro Options svarglugginn gerir þér kleift að stilla valkosti fyrir fjölva þína.

Smelltu á flýtilykla valkostinn og sláðu inn staf í reitinn merktur Ctrl.

Stafurinn sem þú slærð inn samsvarar lyklasamsetningunni sem þú vilt nota til að framkvæma fjölvi. Til dæmis, ef þú slærð inn lágstafina c, geturðu framkvæmt fjölvi með því að ýta á Ctrl+C. Ef þú slærð inn hástaf þarftu að bæta Shift takkanum við takkasamsetninguna. Til dæmis, ef þú slærð inn C, geturðu framkvæmt fjölvi með því að ýta á Ctrl+Shift+C.

Smelltu á OK til að loka Macro Options valmyndinni og smelltu síðan á Cancel til að loka Macro valmyndinni.
Eftir að þú hefur úthlutað flýtilykla geturðu ýtt á þá takkasamsetningu til að framkvæma fjölvi. Flýtivísalykill virkar ekki ef honum er úthlutað á fjölvi sem notar rök.

Flýtivísarnir sem þú úthlutar fjölvi hnekkja innbyggðum flýtilykla Excel. Til dæmis er Ctrl+C venjulegur flýtilykill til að afrita gögn. Ef þú úthlutar Ctrl+C við fjölva, geturðu ekki notað Ctrl+C til að afrita. Þetta er venjulega ekki mikið mál vegna þess að Excel býður næstum alltaf upp á aðrar leiðir til að framkvæma skipanir.

Að framkvæma Excel VBA aðferðina með hnappi eða lögun

Stundum gætirðu líkað við hugmyndina um að úthluta fjölvi á hnapp (eða aðra lögun) á vinnublaði. Til að tengja Excel fjölvi við hnapp skaltu fylgja þessum skrefum:

Virkjaðu vinnublað.

Bættu við hnappi úr Form Controls hópnum.
Til að birta Form Controls hópinn, veldu Hönnuður → Controls → Insert.Að nefna Excel VBA undirmenn og aðgerðir

Spjaldið, sem sýnir stýringarnar sem eru tiltækar þegar þú smellir á Setja inn á Developer flipann.

Smelltu á hnappatólið í Form Controls hópnum.

Það er fyrsti hnappurinn í fyrstu röðinni af stjórntækjum.

Dragðu í vinnublaðið til að búa til hnappinn.
Eftir að þú hefur bætt hnappnum við vinnublaðið þitt les Excel hug þinn og birtir Úthluta fjölvi svarglugganum sem sýndur er hér að neðan.Að nefna Excel VBA undirmenn og aðgerðir

Þegar þú bætir hnappi við vinnublað birtir Excel sjálfkrafa Úthluta fjölvi svarglugganum.

Veldu fjölva sem þú vilt tengja við hnappinn.

Smelltu á OK.

Eftir að þú hefur úthlutað úthlutuninni, með því að smella á hnappinn keyrir fjölvi - alveg eins og galdur.

Þegar þú bætir við hnappi, athugaðu að fellilistann sýnir tvö sett af stjórntækjum: Formstýringar og ActiveX-stýringar. Þessir tveir hópar stjórna líta svipað út, en þeir eru í raun mjög ólíkir. Í reynd eru formstýringar auðveldari í notkun.

Þú getur líka úthlutað fjölvi á hvaða önnur form eða hlut sem er. Gerðu til dæmis ráð fyrir að þú viljir framkvæma fjölvi þegar notandinn smellir á rétthyrningahlut. Fylgdu þessum skrefum:

Bættu rétthyrningnum við vinnublaðið.

Settu inn rétthyrning með því að velja Insert → Illustrations → Forms.

Hægrismelltu á rétthyrninginn.

Veldu Assign Macro úr flýtivalmyndinni.

Veldu fjölva í valmyndinni Assign Macro.

Smelltu á OK.
Eftir að þú hefur framkvæmt þessi skref, með því að smella á rétthyrninginn keyrir úthlutað fjölva.

Að framkvæma aðferðina úr annarri Excel VBA aðferð

Þú getur líka framkvæmt Excel VBA aðferð úr annarri aðferð. Fylgdu þessum skrefum ef þú vilt prófa þetta:

Virkjaðu VBA eininguna sem geymir ShowCubeRoot venjuna.

Sláðu inn þessa nýju aðferð (annaðhvort fyrir ofan eða neðan ShowCubeRoot kóða - það skiptir engu máli):

Sub NewSub()
  Call ShowCubeRoot
End Sub

Once completed, you simply execute the NewSub macro.

The easiest way to do this is to move the cursor anywhere within the NewSub code and press F5. Notice that this NewSub procedure simply executes the ShowCubeRoot procedure.

By the way, the keyword Call is optional. The statement can consist of only the Sub procedure’s name. However, using the Call keyword makes it perfectly clear that a procedure is being called.

Executing Excel VBA Function procedures

Functions, unlike Sub procedures, can be executed in only two ways:

  • By calling the function from another Sub procedure or Function procedure
  • By using the function in a worksheet formula

Try this simple function. Enter it in a VBA module:

Function CubeRoot(number)
  CubeRoot = number ^ (1 / 3)
End Function

This function is pretty wimpy; it merely calculates the cube root of the number passed to it as its argument. It does, however, provide a starting point for understanding functions. It also illustrates an important concept about functions: how to return the value. (You do remember that a function returns a value, right?)

Notice that the single line of code that makes up this Function procedure performs a calculation. The result of the math (number to the power of 1⁄3) is assigned to the variable CubeRoot. Not coincidentally, CubeRoot is also the name of the function. To tell the function what value to return, you assign that value to the name of the function.

Calling the Excel VBA function from a Sub procedure

Because you can’t execute a function directly, you must call it from another procedure. Enter the following simple procedure in the same VBA module that contains the CubeRoot function:

Sub CallerSub()
  Ans = CubeRoot(125)
  MsgBox Ans
End Sub

When you execute the CallerSub procedure, Excel displays a message box that contains the value of the Ans variable, which is 5.

Here’s what’s going on: The CubeRoot function is executed, and it receives an argument of 125. The calculation is performed by the function’s code (using the value passed as an argument), and the function’s returned value is assigned to the Ans variable. The MsgBox function then displays the value of the Ans variable.

Try changing the argument that’s passed to the CubeRoot function and run the CallerSub macro again. It works just like it should — assuming that you give the function a valid argument (a positive number).

By the way, the CallerSub procedure could be simplified a bit. The Ans variable is not really required unless your code will use that variable later. You could use this single statement to obtain the same result:

MsgBox CubeRoot(125)

Calling an Excel VBA function from a worksheet formula

Now it’s time to call this VBA Function procedure from a worksheet formula. Activate a worksheet in the same workbook that holds the CubeRoot function definition. Then enter the following formula in any cell:

=CubeRoot(1728)

The cell displays 12, which is indeed the cube root of 1,728.

As you might expect, you can use a cell reference as the argument for the CubeRoot function. For example, if cell A1 contains a value, you can enter =CubeRoot(A1). In this case, the function returns the number obtained by calculating the cube root of the value in A1.

You can use this function any number of times in the worksheet. Like Excel’s built-in functions, your custom functions appear in the Insert Function dialog box. Click the Insert Function toolbar button, and choose the User Defined category. As shown below, the Insert Function dialog box lists your very own function.

Að nefna Excel VBA undirmenn og aðgerðir

The CubeRoot function appears in the User Defined category of the Insert Function dialog box.

If you want the Insert Function dialog box to display a description of the function, follow these steps:

Choose Developer → Code →  Macros.
Excel displays the Macro dialog box, but CubeRoot doesn’t appear in the list. (CubeRoot is a Function procedure, and this list shows only Sub procedures.) Don’t fret.

Type the word CubeRoot in the Macro Name box.

Click the Options button.

Enter a description of the function in the Description box.

Click OK to close the Macro Options dialog box.

Close the Macro dialog box by clicking the Cancel button.
This descriptive text now appears in the Insert Function dialog box.

This image shows the CubeRoot function being used in worksheet formulas.

Að nefna Excel VBA undirmenn og aðgerðir

Using the CubeRoot function in formulas.

By now, things may be starting to come together for you.

Leave a Comment

Námundun tölur í Excel 2007 með ROUND, ROUNDUP og ROUNDDOWN

Námundun tölur í Excel 2007 með ROUND, ROUNDUP og ROUNDDOWN

Fyrir þá sem vilja læra um aðferðir eins og <strong>ROUND</strong>, <strong>ROUNDUP</strong> og <strong>ROUNDDOWN</strong> í Excel 2007, skoðaðu þessa skref-fyrir-skref leiðbeiningu um hvernig á að rúnna tölur á réttan hátt.

Hvernig á að koma í veg fyrir að Microsoft Word opni skrár í skrifvarinn ham á Windows

Hvernig á að koma í veg fyrir að Microsoft Word opni skrár í skrifvarinn ham á Windows

Hvernig á að koma í veg fyrir að Microsoft Word opni skrár í skrifvarandi ham á Windows. Microsoft Word opnar skrár í skrifvarandi ham, sem gerir það ómögulegt að breyta þeim? Ekki hafa áhyggjur, aðferðirnar eru hér að neðan

Hvernig á að laga ranga prentun á Microsoft Word skjölum

Hvernig á að laga ranga prentun á Microsoft Word skjölum

Hvernig á að laga villur við prentun á röngum Microsoft Word skjölum Villur við prentun Word skjala með breyttu letri, sóðalegar málsgreinar, texta sem vantar eða glatað efni eru nokkuð algengar. Hins vegar ekki

Eyddu penna- og auðkennisteikningum á PowerPoint-skyggnunum þínum

Eyddu penna- og auðkennisteikningum á PowerPoint-skyggnunum þínum

Ef þú hefur notað pennann eða hápunktarann ​​til að teikna á PowerPoint glærurnar þínar meðan á kynningu stendur geturðu vistað teikningarnar fyrir næstu kynningu eða eytt þeim út svo næst þegar þú sýnir þær byrjarðu á hreinum PowerPoint glærum. Fylgdu þessum leiðbeiningum til að eyða penna- og auðkenningarteikningum: Að eyða línum einni á […]

Innihald stílasafns í SharePoint 2010

Innihald stílasafns í SharePoint 2010

Stílsafnið inniheldur CSS skrár, Extensible Stylesheet Language (XSL) skrár og myndir sem notaðar eru af fyrirfram skilgreindum aðalsíðum, síðuuppsetningum og stjórntækjum í SharePoint 2010. Til að finna CSS skrár í stílasafni útgáfusíðunnar: Veldu Site Actions→ View Allt efni á síðunni. Innihald síðunnar birtist. Style bókasafnið er staðsett í […]

Snið tölur í þúsundum og milljónum í Excel skýrslum

Snið tölur í þúsundum og milljónum í Excel skýrslum

Ekki yfirgnæfa áhorfendur með stórkostlegum tölum. Í Microsoft Excel geturðu bætt læsileika mælaborða og skýrslna með því að forsníða tölurnar þínar þannig að þær birtast í þúsundum eða milljónum.

Hvernig á að deila og fylgja SharePoint síðum

Hvernig á að deila og fylgja SharePoint síðum

Lærðu hvernig á að nota SharePoints samfélagsnetverkfæri sem gera einstaklingum og hópum kleift að eiga samskipti, vinna saman, deila og tengjast.

Hvernig á að umbreyta dagsetningum í Julian snið í Excel

Hvernig á að umbreyta dagsetningum í Julian snið í Excel

Julian dagsetningar eru oft notaðar í framleiðsluumhverfi sem tímastimpill og fljótleg tilvísun fyrir lotunúmer. Þessi tegund af dagsetningarkóðun gerir söluaðilum, neytendum og þjónustuaðilum kleift að bera kennsl á hvenær vara var framleidd og þar með aldur vörunnar. Julian dagsetningar eru einnig notaðar í forritun, hernum og stjörnufræði. Mismunandi […]

Hvernig á að búa til Access Web App

Hvernig á að búa til Access Web App

Þú getur búið til vefforrit í Access 2016. Svo hvað er vefforrit eiginlega? Jæja, vefurinn þýðir að hann er á netinu og app er bara stytting fyrir „umsókn“. Sérsniðið vefforrit er gagnagrunnsforrit á netinu sem hægt er að nálgast úr skýinu með vafra. Þú smíðar og viðheldur vefforritinu í skrifborðsútgáfunni […]

Quick Launch Bar í SharePoint 2010

Quick Launch Bar í SharePoint 2010

Flestar síður í SharePoint 2010 sýna lista yfir flakktengla á flýtiræsingarstikunni vinstra megin á síðunni. Flýtiræsingarstikan sýnir tengla á innihaldsefni vefsvæða eins og lista, bókasöfn, síður og útgáfusíður. Flýtiræsingarstikan inniheldur tvo mjög mikilvæga tengla: Tengill á allt efni vefsvæðis: […]