create am macro, lets say M1000.M1s
code of the probemacro can be something like this:
Sub Main()
'get Parameter ------------------------------------------------------
Tool = Param1()
'-------------------------------------------------------------------------------- 
'ceck toolnumber----------------------------------------
If ((Tool < 1) or (Tool > 16)) then
    Message ("toolnumber not valid")
    GoTo Ende
End If
'--------------------------------------------------------------------------------
    'load the tool
    Code "M6 T" + cstr(Tool) + " M5" 
    '--------------------------------------------------------------------------------  
	' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	' PUT HERE SOME CODE TO DRIVE TO THE PROPBEPOSITIO
	' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	
	
    
    'do the probing 
	ZM_in = 100 'max probing distance
    Code "G31 Z100" + CStr(ZM_In) +"F50" 
    While IsMoving() 
        z = GetOEMDRO(802) 'act Z-pos
        If z <= ZM_In Then
            DoOEMButton(1003) 'Stop if too far
            MsgBox ("probe not hit" )
            GoTo Ende
        End If
    Wend           
    
    'et the probepos 
    ZProbePos = GetVar(2002)    
    'put the value into tooltable 
    SetToolParam(Tool,2, ZProbePos) 
    'save tooltable
    DoOEMButton(316) 	
	
	' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	' PUT HERE SOME CODE TO COME OUT OF THE PROBEPOS
	' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
	
    'unload the tool
    Code "M6 T0" 
	
	
Exit Sub 
Ende:
    Code "M30" 
    'Message ("error while probing")
    
End Sub 
then you can do a probing with
M1000 P1 to probe tool 1 or
M1000 P2 to probe tool 2
the P-Parameter is the toolnumber.
now you can create a smal G-code file, where you can call M1000 for all your Tools.
be Patient, the posted code is not tested and not complete, it is just to give you an idea.