ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Particular custom function. (https://www.excelbanter.com/excel-programming/294362-particular-custom-function.html)

y

Particular custom function.
 
Does VBA allow declaration of function which the user doesn't specify all the parameters for?

Example:
Area("Triangle",sideA,sideB,sideC)
Area("Rectangle",sideA,sideB) OR Area("Rectangle",sideA,sideB;)
Area("Square",side) OR Area("Square",side;;)

Thanks, Alex.



Frank Kabel

Particular custom function.
 
Hi
have a look at 'Optional' in the VBA help

--
Regards
Frank Kabel
Frankfurt, Germany

"y" schrieb im Newsbeitrag
...
Does VBA allow declaration of function which the user doesn't specify

all the parameters for?

Example:
Area("Triangle",sideA,sideB,sideC)
Area("Rectangle",sideA,sideB) OR Area("Rectangle",sideA,sideB;)
Area("Square",side) OR Area("Square",side;;)

Thanks, Alex.




JE McGimpsey

Particular custom function.
 
One way:

Public Function Area(sShapeType As String, _
ParamArray vSides() As Variant) As Double
Select Case LCase(sShapeType)
Case "triangle"
If UBound(vSides) < 1 Then
Area = CVErr(xlErrValue)
Else
Area = CDbl(vSides(0)) * CDbl(vSides(1)) / 2#
End If
Case "square"
If UBound(vSides) < 0 Then
Area = CVErr(xlErrValue)
Else
Area = CDbl(vSides(0)) ^ 2
End If
Case "rectangle"
If UBound(vSides) < 1 Then
Area = CVErr(xlErrValue)
Else
Area = CDbl(vSides(0)) * CDbl(vSides(1))
End If
Case "circle"
If UBound(vSides) < 0 Then
Area = CVErr(xlErrValue)
Else
Area = Application.Pi * vSides(0) ^ 2
End If
Case Else
Area = CVErr(xlErrValue)
End Select
End Function

In article , y wrote:

Does VBA allow declaration of function which the user doesn't specify all the
parameters for?

Example:
Area("Triangle",sideA,sideB,sideC)
Area("Rectangle",sideA,sideB) OR Area("Rectangle",sideA,sideB;)
Area("Square",side) OR Area("Square",side;;)

Thanks, Alex.



y

Particular custom function.
 
Thanks a lot!



All times are GMT +1. The time now is 12:06 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com