Crear macros mediante comandos

13/06/2007 - 13:43 por Keyhelp | Informe spam
Hola a todos:

Necesitaría saber como puedo hacer una macro mediante un objeto OLE, me
explico:

Tenemos una aplicación que instancia un objeto de word, mediante llamadas a
objeto abrimos el documento, combinamos y grabamos.
Ahora le hemos añadido la posibilidad de proteger el documento para que sea
solo lectura mediante una clave aleatoria.

Dim oAplicacion As New Word.Application
Dim oDocumento As Document

oAplicacion.Documents.Open "c:\temp\documento.doc"
Set oDocumento = oAplicacion.ActiveDocument

oDocumento.Protect wdAllowOnlyReading, , "123"
oDocumento.Save

pero se puede saltar esta protección mediante seleccionar todo - copiar y
pegar en un nuevo documento

Queremos que la opción de copiar esté desactivada, para ello hemos echo una
prueba poniendo una macro que capture este evento y no haga nada

Sub EdiciónCopiar()
'
' EdiciónCopiar Macro
' Copia la selección y la coloca en el Portapapeles
'

End Sub

Pero como nuestro documentos se generan mediante una combinación de
correspondencia, genera un documento limpio, sin macros ni nada que se le
parezca ( como mucho, las propiedades de normal.dot )

¿Se puede añadir esta macro mediante alguna sentencia a nuestro documento?
Algo así como

oDocumento.addMacro = "sub EdiciónCopiar() End Sub"
oDocumento.save

Gracias por adelantado


Francisco López
Dpt. Desarrollo
Keyhelp, S.L.

http://www.keyhelp.net
 

Leer las respuestas

#1 Tux
13/06/2007 - 23:34 | Informe spam
Keyhelp escribió:
Hola a todos:


Pero como nuestro documentos se generan mediante una combinación de
correspondencia, genera un documento limpio, sin macros ni nada que se le
parezca ( como mucho, las propiedades de normal.dot )

¿Se puede añadir esta macro mediante alguna sentencia a nuestro documento?
Algo así como

oDocumento.addMacro = "sub EdiciónCopiar() End Sub"
oDocumento.save

Gracias por adelantado





Hola KeyHelp :)

Podeis añadir al codigo que os genera el nuevo documento o al boton que
empleis para generar un nuevo documento para el mailmerge algo asi :

por e.g:

'[]

Sub Mimacro()


Documents.Add

ActiveDocument.VBProject.VBComponents(1).CodeModule.InsertLines 10, _
"Sub EdiciónCopiar()" & Chr(10) & Chr(10) & "End Sub" _
& Chr(10) & "Sub EdiciónPegar()" & Chr(10) & Chr(10) _
& "End Sub" & Chr(10)


End Sub

'[]

Bien esta macro os copiara en ThisDocument del nuevo documento las dos
macros de [ EdicionCopiar y EdicionPegar ] probarla y me comentais
cualquier duda ok? :)

Saludos
Monica




Estado: A la Espera By Fermu

Tic-Tac-Tic-Tac...

Now We are free [Enya]

www.fermu.com

Preguntas similares