Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Crear y ejecutar una macro en Word desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=37654)

reisa222 19-11-2006 13:16:14

Crear y ejecutar una macro en Word desde Delphi
 
Hola,

Estoy intentando llamar a Word desde Delphi5 y conseguir ejecutar una macro de la que yo también le paso el codigo fuente. Hasta ahora lo que he conseguido es abrir word, ejecutar macros que ya están creadas y guardar, pero no consigo poder pasarle yo la macro.

El codigo que tengo hasta ahora es:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
V: OleVariant;
progname:string;
begin
V:= CreateOleObject('Word.Application');
V.ShowMe;
V.WordBasic.FileNew;
//** V.SendKeys ; No deja hacerlo automáticamente.
//** V.SaveMacro; No deja hacerlo automáticamente.
V.Run('Macro2');
Progname := 'C:\juan2.doc';
V.WordBasic.FileSaveAs (Progname);
end;
end.

Lo he intentado con el SendKeys y con el SaveMacro pero me da error.

Agradecería mucho cualquier ayuda.

Elenita 20-11-2006 14:45:24

Siento no poder ayudarte, pero tú si puedes ayudarme a mí.
¿Podrías decirme cómo ejecutar una macro determinada que ya está creada en el documento? En realidad mi problema es algo más complicado, ya que tengo dos documentos de word abiertos, uno (el que tiene la macro) es una plantilla de un mailmerge, y el otro el resultado de la combinación una vez ejecutado el mailmerge. El problema es que cuando intento ejecutar la macro me dice que no existe y eso es porque me está cogiendo como proyecto activo el del Normal.dot, que no tiene macros, en lugar de el del documento.
¿Se puede averiguar si un documento tiene macros?
Muchas gracias.

reisa222 20-11-2006 21:03:55

ejecutar macro en word
 
Hola,

La verdad es que no se como se puede hacer lo que dices. Yo tengo las macros grabadas a nivel de cualquier documento word, así que cuando abro uno nuevo "FileNew" la macro está allí y se puede invocar sin problemas. Creo que en tu caso para cambiar de documento activo y poner el que tiene las macros había algo como "Active Document" pero no lo he probado nunca. Tampoco se como se puede saber si un documento tiene macros. Lo siento.

fjcg02 14-12-2006 23:31:39

Parece un poco raro que quieras crear una macro para ejecutarla. Lo lógico es que esté en la plantilla tal y como indicas y la ejecutes desde tu programa una vez abierto el documento.
Otra cosa es que quieras relizar una serie de acciones sobre un documento, lo que sí se puede hacer. Para ello, tendrás que conocer los objetos, las funciones y las propiedades de la apliación que manejes.

En la página que te indico tienes información de cómo hacer distintas cosas con un documento word vía DDE, como insertar texto, modificar las propiedades del mismo, crear tablas, ...

http://msdn2.microsoft.com/en-us/lib...ffice.10).aspx

Por otro lado, para probar tu aplicación no está de más que incluyas V.Visible:= True; tras crear el objeto, de esta manera se abrirá la aplicación para que puedas ver lo que hace. Esto te da bastantes pistas.

Espero que te sirva de ayuda.

Un saludo

ozegarra 14-02-2008 15:32:31

Ejecutar Macro Excel Desde Delphi
 
Lo que yo quiero es abrir una plantilla excel y ejecutar una macro para obtener unos datos.
Ya logre abrir la plantilla pero no logro ejecutar la macro.

Agradeceria me ayuden ya que me pasie por muchos foros y no encuentro la respuesta.

Código Delphi [-]
{Asi abro la plantilla}
ExcelApplication1.Visible[0]:=True;
MiExcel:= ExcelApplication1.Workbooks.Open('C:\Plantilla.xlt', False,  False, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,0);
{Algo asi es lo que quiero ejecutar pero en metodo run no existe}
MiExcel.Run("Reporte", param1, param2);


La franja horaria es GMT +2. Ahora son las 02:05:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi