ejecutar solo si existe la macro

24/12/2004 - 11:36 por MPOLO S.L. - Departamento Calidad | Informe spam
Estimado Grupo:
en una macro del Excel tengo el código

With CreateObject("word.application")
.Run ("auto_open")
.Documents(1).SaveAs ("c:\midocumento.doc")
.Visible = True
.Activate
endwith

lo que necesito es, que la linea

.Run ("auto_open")

solo se ejecute si esta macro EXISTE en el docuemnto de word.

Como puedo hacer esto?
Cual sería la instruccion para preguntar si esa SUB existe?

Desde ya muy agradecido

MArtin R Sanchez Arnoletto

Preguntas similare

Leer las respuestas

#1 KL
24/12/2004 - 12:39 | Informe spam
Martin,

He escrito el codigo de abajo aprovechando la idea de Chip Pearson (
http://www.cpearson.com/excel/vbe.htm ) y me funciona perfectamente. Mira a
ver si te sirve. Acuerdate q deberas tener las referencias a la "Libreria de
Objetos de Microsoft Word" y la "Microsoft Visual Basic For Applications
Extensibility" activadas. Tambien si usas Office 2002 o 2003 puede q tengas
q modificar tus opciones de seguridad (para mas info consulta el link de
arriba).

Saludos y Felices Fiestas,
KL

Sub BuscarMacroEnWord()
Dim AplicacionWord As Object
Dim DocumentoWord As Word.Document
Dim NombreFichero As String
Dim NombreMacro As String
Dim Prueba As Boolean

NombreFichero = "C:\midocumento.doc"
NombreMacro = "auto_open"

Application.ScreenUpdating = False
Set AplicacionWord = New Word.Application
AplicacionWord.Visible = True
Set DocumentoWord = AplicacionWord.Documents _
.Open(FileName:=NombreFichero)

On Error Resume Next
For Each m In DocumentoWord.VBProject.VBComponents
Prueba = m.CodeModule.ProcStartLine(NombreMacro, _
vbext_pk_Proc) <> 0
If Prueba Then
Exit For
End If
Next m
MsgBox Prueba
On Error GoTo 0

DocumentoWord.Close
AplicacionWord.Application.Quit
Set AplicacionWord = Nothing
End Sub

"MPOLO S.L. - Departamento Calidad" wrote in message
news:%
Estimado Grupo:
en una macro del Excel tengo el código

With CreateObject("word.application")
.Run ("auto_open")
.Documents(1).SaveAs ("c:\midocumento.doc")
.Visible = True
.Activate
endwith

lo que necesito es, que la linea

.Run ("auto_open")

solo se ejecute si esta macro EXISTE en el docuemnto de word.

Como puedo hacer esto?
Cual sería la instruccion para preguntar si esa SUB existe?

Desde ya muy agradecido

MArtin R Sanchez Arnoletto



Respuesta Responder a este mensaje
#2 KL
24/12/2004 - 12:39 | Informe spam
Martin,

He escrito el codigo de abajo aprovechando la idea de Chip Pearson (
http://www.cpearson.com/excel/vbe.htm ) y me funciona perfectamente. Mira a
ver si te sirve. Acuerdate q deberas tener las referencias a la "Libreria de
Objetos de Microsoft Word" y la "Microsoft Visual Basic For Applications
Extensibility" activadas. Tambien si usas Office 2002 o 2003 puede q tengas
q modificar tus opciones de seguridad (para mas info consulta el link de
arriba).

Saludos y Felices Fiestas,
KL

Sub BuscarMacroEnWord()
Dim AplicacionWord As Object
Dim DocumentoWord As Word.Document
Dim NombreFichero As String
Dim NombreMacro As String
Dim Prueba As Boolean

NombreFichero = "C:\midocumento.doc"
NombreMacro = "auto_open"

Application.ScreenUpdating = False
Set AplicacionWord = New Word.Application
AplicacionWord.Visible = True
Set DocumentoWord = AplicacionWord.Documents _
.Open(FileName:=NombreFichero)

On Error Resume Next
For Each m In DocumentoWord.VBProject.VBComponents
Prueba = m.CodeModule.ProcStartLine(NombreMacro, _
vbext_pk_Proc) <> 0
If Prueba Then
Exit For
End If
Next m
MsgBox Prueba
On Error GoTo 0

DocumentoWord.Close
AplicacionWord.Application.Quit
Set AplicacionWord = Nothing
End Sub

"MPOLO S.L. - Departamento Calidad" wrote in message
news:%
Estimado Grupo:
en una macro del Excel tengo el código

With CreateObject("word.application")
.Run ("auto_open")
.Documents(1).SaveAs ("c:\midocumento.doc")
.Visible = True
.Activate
endwith

lo que necesito es, que la linea

.Run ("auto_open")

solo se ejecute si esta macro EXISTE en el docuemnto de word.

Como puedo hacer esto?
Cual sería la instruccion para preguntar si esa SUB existe?

Desde ya muy agradecido

MArtin R Sanchez Arnoletto



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida