>Alguna vez vi en un sitio que no es buena la macrosustitucion, porque?
Básicamente, porque es lenta. La forma en que está resuelta implica recompilar la línea que la contiene antes de cada ejecución. Esto hace que en un loop, por ejemplo, realizar macrosustitución baje mucho la performance.
De todas maneras, hay unos cuantos recursos alternativos. Por ejemplo:
Name references, ej:
lcTabla = "c:\carpeta\Tabla.dbf"
USE ( lcTabla )
Evaluate, ej:
lnValor = 55
lcFormula = "25 * 88 - lnValor"
lnResultado = evaluate( lcFormula )
Desde VFP 6, SP 3, puedes utilizar el comando COMPILE en el runtime, por lo que puedes armar código en forma programática (es muy útil utilizar TEXTMERGE para esto), y luego copiarlo en un archivo (ver STRTOFILE, FILETOSTR), compilarlo y ejecutarlo.
Desde VFP 7, el comando EXESCRIPT hace más o menos todo esto en un solo paso.
Espero que te sirva,