Some developers will calculate common values in code every time they are needed in an
application. This slows down your application as it has to calculate the value every time.
Others will enter in the straight numeric value, which is just frowned upon programming
practice. The best way to handle these values is to use VBA Constants.
'Common degree values in Radians
Public Const RAD_90 As Double = 1.5707963267949
Public Const RAD_180 As Double = 3.1415926535898
Public Const RAD_270 As Double = 4.7123889803847
Public Const RAD_360 As Double = 6.2831853071796
'Geometric related constants
Public Const PI As Double = 3.14159265358979
Public Const PId2 As Double = 1.5707963267949
Public Const PIx2 As Double = 6.28318530717959
Public Const ONE_THIRD As Double = 0.33333333
Public Const FOUR_THIRDS As Double = 1.33333333
When the constants are defined in a code module they can be used anywhere in your
project like in the following routines.
Public Function GetBearingAngle(ByVal deltaX As Double, ByVal deltaY As Double, _
ByRef strNS As String, ByRef strEW As String) as Double
Dim dAngle As Double
dAngle = Atn2(deltaX, deltaY)
Select Case True
Case (dAngle <= RAD_90) strNS = "N" strEW = "E" Case (dAngle <= RAD_180) strNS = "S" strEW = "E" dAngle = RAD_180 - dAngle Case (dAngle <= RAD_270) strNS = "S" strEW = "W" dAngle = RAD_90 - ((dAngle - RAD_270) * -1) Case Else strNS = "N" strEW = "W" dAngle = RAD_360 - dAngle End Select 'Angle is returned in decimal degrees, must be converted to DMS GetBearingAngle = dAngle End Sub Public Function AreaCircle(ByVal dRadius As Double) As Double AreaCircle = PI * (dRadius ^ 2) End Function Public Function CircumferenceCircle(ByVal dRadius As Double) As Double CircumferenceCircle = 2 * PI * dRadius End Function Public Function AreaSphere(ByVal dRadius As Double) As Double AreaSphere = 4 * PI * (dRadius ^ 2) End Function Public Function VolumeSphere(ByVal dRadius As Double) As Double VolumeSphere = FOUR_THIRDS * PI * (dRadius ^ 3) End Function