One of the great new features in SpeedTrace Pro 4.0.9 is the user trace option to provide tracing and profiling method for non .Net code.
Now SpeedTrace 4.0 provides a COM object in order to enable you to trace your non- dotNet – platforms such as VBA, JavaScript, unmanaged C++ etc. For your convenience you can even add data to identity some kind of context during the performance reading.
Example VBA: In order to use the COM object, you need to instantiate it by the help of the type library (TLB-file). In office applications (Excel, Word etc.), add the type library (TLB) to the project references (Tools – References).
Sub Macro1()
Dim tracer As Perfinity_SpeedTrace_UserTrace.Trace
Set tracer = New Perfinity_SpeedTrace_UserTrace.Trace
For i = 1 To 1000
tracer.StartTransaction "FillAndReplace"
tracer.StartTransactionEx "Fill", "0"
ActiveCell.FormulaR1C1 = "0"
Range("A1").Select
Selection.AutoFill Destination:=Range("A1:E1"), Type:=xlFillDefault
Range("A1:E1").Select
Selection.AutoFill Destination:=Range("A1:E2"), Type:=xlFillDefault
Range("A1:E2").Select
Range("E1:E2").Select
Selection.AutoFill Destination:=Range("E1:E11"), Type:=xlFillDefault
Range("E1:E11").Select
Range("E11").Select
Selection.AutoFill Destination:=Range("E11:J11"), Type:=xlFillDefault
Range("E11:J11").Select
Range("J11").Select
Selection.AutoFill Destination:=Range("J11:J20"), Type:=xlFillDefault
Range("J11:J20").Select
Range("L15").Select
tracer.EndTransactionEx "Fill", "done"
tracer.StartTransactionEx "Replace", "0->1"
Selection.Replace What:="0", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
tracer.EndTransactionEx "Replace", "done"
tracer.EndTransaction "FillAndReplace"
Next
End Sub
Recorded trace:

Calculated profile / Call Stacks, Call History:

