' ANALYSIS TOOLPAK - Excel AddIn
' The following function declarations provide interface between VBA and ATP XLL.
' These variables point to the corresponding cell in the Loc Table sheet.
Const XLLNameCell = "B8"
Const MacDirSepCell = "B3"
Const WinDirSepCell = "B4"
Const LibPathWinCell = "B10"
Const LibPathMacCell = "B11"
Dim DirSep As String
Dim LibPath As String
Dim AnalysisPath As String
Dim WorkbookName As String
Dim FunctionIDs(37, 0 To 1)
Private Function GetMacroRegId(FuncText As String) As String
For i = LBound(FunctionIDs) To UBound(FunctionIDs)
If (LCase(FunctionIDs(i, 0)) = LCase(FuncText)) Then
If (Not (IsError(FunctionIDs(i, 1)))) Then
GetMacroRegId = FunctionIDs(i, 1)
Exit Function
End If
End If
Next i
End Function
'Procedures
Sub Anova1(inprng As Variant, Optional outrng As Variant, Optional grouped As Variant, Optional labels As Variant, Optional alpha As Variant)
xAnova1 = Application.Run(GetMacroRegId("fnAnova1"), inprng, outrng, grouped, labels, alpha)
End Sub
Sub Anova1Q(Optional inprng As Variant, Optional outrng As Variant, Optional grouped As Variant, Optional labels As Variant, Optional alpha As Variant)
xAnova1Q = Application.Run(GetMacroRegId("fnAnova1Q"), inprng, outrng, grouped, labels, alpha)
End Sub
Sub Anova2(inprng As Variant, Optional outrng As Variant, Optional sample_rows As Variant, Optional alpha As Variant)
xAnova2 = Application.Run(GetMacroRegId("fnAnova2"), inprng, outrng, sample_rows, alpha)
End Sub
Sub Anova2Q(Optional inprng As Variant, Optional outrng As Variant, Optional sample_rows As Variant, Optional alpha As Variant)
xAnova2Q = Application.Run(GetMacroRegId("fnAnova2Q"), inprng, outrng, sample_rows, alpha)
End Sub
Sub Anova3(inprng As Variant, Optional outrng As Variant, Optional labels As Variant, Optional alpha As Variant)
xAnova3 = Application.Run(GetMacroRegId("fnAnova3"), inprng, outrng, labels, alpha)
End Sub
Sub Anova3Q(Optional inprng As Variant, Optional outrng As Variant, Optional labels As Variant, Optional alpha As Variant)
xAnova3Q = Application.Run(GetMacroRegId("fnAnova3Q"), inprng, outrng, labels, alpha)
End Sub
Sub Descr(inprng As Variant, Optional outrng As Variant, Optional grouped As Variant, Optional labels As Variant, Optional summary As Variant, Optional ds_large As Variant, Optional ds_small As Variant, Optional confid As Variant)
xDescr = Application.Run(GetMacroRegId("fnDescr"), inprng, outrng, grouped, labels, summary, ds_large, ds_small, confid)
End Sub
Sub DescrQ(Optional inprng As Variant, Optional outrng As Variant, Optional grouped As Variant, Optional labels As Variant, Optional summary As Variant, Optional ds_large As Variant, Optional ds_small As Variant, Optional confid As Variant)
xDescrQ = Application.Run(GetMacroRegId("fnDescrQ"), inprng, outrng, grouped, labels, summary, ds_large, ds_small, confid)
End Sub
Sub Expon(inprng As Variant, Optional outrng As Variant, Optional damp As Variant, Optional stderrs As Variant, Optional chart As Variant, Optional labels As Variant)
xExpon = Application.Run(GetMacroRegId("fnExpon"), inprng, outrng, damp, stderrs, chart, labels)
End Sub
Sub ExponQ(Optional inprng As Variant, Optional outrng As Variant, Optional damp As Variant, Optional stderrs As Variant, Optional chart As Variant, Optional labels As Variant)
xExponQ = Application.Run(GetMacroRegId("fnExponQ"), inprng, outrng, damp, stderrs, chart, labels)
End Sub
Sub Fourier(inprng As Variant, Optional outrng As Variant, Optional inverse As Variant, Optional labels As Variant)
xFourier = Application.Run(GetMacroRegId("fnFourier"), inprng, outrng, inverse, labels)
End Sub
Sub FourierQ(Optional inprng As Variant, Optional outrng As Variant, Optional inverse As Variant, Optional labels As Variant)
xFourierQ = Application.Run(GetMacroRegId("fnFourierQ"), inprng, outrng, inverse, labels)
End Sub
.....
Private Sub SetupFunctionIDs()
FunctionIDs(0, 0) = "fnAnova1"
FunctionIDs(1, 0) = "fnAnova2"
FunctionIDs(2, 0) = "fnAnova3"
FunctionIDs(3, 0) = "fnMCorrel"
FunctionIDs(4, 0) = "fnMCovar"
FunctionIDs(5, 0) = "fnDescr"
FunctionIDs(6, 0) = "fnExpon"
FunctionIDs(7, 0) = "fnFourier"
FunctionIDs(8, 0) = "fnFtestV"
FunctionIDs(9, 0) = "fnHistogram"
FunctionIDs(10, 0) = "fnMoveAvg"
FunctionIDs(11, 0) = "fnRandom"
FunctionIDs(12, 0) = "fnRankPerc"
FunctionIDs(13, 0) = "fnRegress"
FunctionIDs(14, 0) = "fnSample"
FunctionIDs(15, 0) = "fnTtestM"
FunctionIDs(16, 0) = "fnTtestUeq"
FunctionIDs(17, 0) = "fnTtestEq"
FunctionIDs(18, 0) = "fnZtestM"
FunctionIDs(19, 0) = "fnAnova1Q"
FunctionIDs(20, 0) = "fnAnova2Q"
FunctionIDs(21, 0) = "fnAnova3Q"
FunctionIDs(22, 0) = "fnMCorrelQ"
FunctionIDs(23, 0) = "fnMCovarQ"
FunctionIDs(24, 0) = "fnDescrQ"
FunctionIDs(25, 0) = "fnExponQ"
FunctionIDs(26, 0) = "fnFourierQ"
FunctionIDs(27, 0) = "fnFtestVQ"
FunctionIDs(28, 0) = "fnHistogramQ"
FunctionIDs(29, 0) = "fnMoveAvgQ"
FunctionIDs(30, 0) = "fnRandomQ"
FunctionIDs(31, 0) = "fnRankPercQ"
FunctionIDs(32, 0) = "fnRegressQ"
FunctionIDs(33, 0) = "fnSampleQ"
FunctionIDs(34, 0) = "fnTtestMQ"
FunctionIDs(35, 0) = "fnTtestUeqQ"
FunctionIDs(36, 0) = "fnTtestEqQ"
FunctionIDs(37, 0) = "fnZtestMQ"
End Sub