Gör så här: Skapa en procedur (Visual Basic)
Du omger en procedur mellan en startdeklarationssats (Sub
eller Function
) och en slutdeklarationssats (End Sub
eller End Function
). Alla procedurens kod ligger mellan dessa instruktioner.
En procedur får inte innehålla en annan procedur, så dess start- och slutinstruktioner måste ligga utanför någon annan procedur.
Om du har kod som utför samma uppgift på olika platser kan du skriva uppgiften en gång som en procedur och sedan anropa den från olika platser i koden.
Skapa en procedur som inte returnerar ett värde
Utanför andra procedurer använder du en
Sub
-instruktion följt av enEnd Sub
-instruktion.I -instruktionen
Sub
följer du nyckelordetSub
med namnet på proceduren och sedan parameterlistan inom parenteser.Placera procedurens kodinstruktioner mellan - och
End Sub
-uttryckenSub
.
Skapa en procedur som returnerar ett värde
Utanför andra procedurer använder du en
Function
-instruktion följt av enEnd Function
-instruktion.I -instruktionen
Function
följer du nyckelordetFunction
med namnet på proceduren, sedan parameterlistan inom parenteser och sedan enAs
sats som anger datatypen för returvärdet.Placera procedurens kodinstruktioner mellan - och
End Function
-uttryckenFunction
.Använd en
Return
instruktion för att returnera värdet till den anropande koden.
Så här ansluter du den nya proceduren till de gamla, repetitiva kodblocken
Se till att du definierar den nya proceduren på en plats där den gamla koden har åtkomst till den.
I det gamla, repetitiva kodblocket ersätter du de instruktioner som utför den repetitiva uppgiften med en enda instruktion som anropar proceduren
Sub
ellerFunction
.Om proceduren är en
Function
som returnerar ett värde kontrollerar du att anropsinstrukturen utför en åtgärd med det returnerade värdet, till exempel att lagra det i en variabel, annars går värdet förlorat.
Exempel
Function
Följande procedur beräknar den längsta sidan, eller hypotenuse, för en höger triangel, med tanke på värdena för de andra två sidorna:
Function Hypotenuse(side1 As Double, side2 As Double) As Double
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function