Variant vWord, vDocumentos, vDocumento, vSeleccion;
String sPath = ExtractFilePath( Application->ExeName );
//--- Abre Word
try {
vWord = Variant::CreateObject( "Word.Application" );
vWord.OlePropertySet( "Visible", false );
}
catch ( ... ) {
MessageBox(0,"Probablemente Microsoft Word no se encuentre instalado", "Error de comunicacion", MB_OK | MB_ICONERROR);
return;
}
//--- Abre el documento que usaremos como plantilla
vDocumentos = vWord.OlePropertyGet( "Documents" );
vDocumento = vDocumentos.OleFunction( "Open",
sSrcFile.c_str(), // Documento
false, // conversiones de formato (unicode, etc)
false, // Modo se solo lectura
false, // Añadir al menu de ficheros recientes
"" // Pswd del documento
);
vSeleccion = vWord.OlePropertyGet( "Selection" );
Variant vRango = vSeleccion.OlePropertyGet( "Range" );
vRango.OleProcedure( "SetRange", 0, 0 );
Variant vBuscar = vSeleccion.OlePropertyGet( "Find" );
vBuscar.OleProcedure( "ClearFormatting" );
vBuscar.OlePropertyGet( "Replacement" ).OleProcedure( "ClearFormatting" );
// Sustitucion de una palabra
vBuscar.Exec( Procedure( "Execute" )
<< "texto a buscar" // Texto a buscar
<< VT_EMPTY // Coincidir mayusculas y minusculas
<< VT_EMPTY // Solo palabras completas
<< VT_EMPTY // Usar caracteres comodin
<< VT_EMPTY // Suena como
<< VT_EMPTY // Todas las formas de la palabra
<< true // Hacia adelante
<< VT_EMPTY // Wrap
<< VT_EMPTY // Format
<< "Texto a remplazar" // Reemplazar con...
<< 2 // 2 = reemplazar todo
);
vDocumento.OleProcedure( "SaveAs", "Nombre.doc" );
vDocumento.OleProcedure( "Close", 0xFFFFFFFF);
vWord.OleProcedure( "Quit" );
vWord = vDocumentos = vDocumento = vSeleccion = vBuscar = vRango = Unassigned;