** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Word
  Mensajes nuevos Mensajes nuevos RSS - Pegar contenido portapapeles desde vba a word
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoPegar contenido portapapeles desde vba a word

 Responder Responder
Autor
Mensaje
Josepo Ver desplegable
Asiduo
Asiduo


Unido: 25/Mayo/2006
Estado: Sin conexión
Puntos: 229
Enlace directo a este mensaje Tema: Pegar contenido portapapeles desde vba a word
    Enviado: 15/Mayo/2016 a las 09:07
Hola a todos. Tengo un powerpoint y en una macro dejo una instrucción que copia los objetos que contiene una diapositiva en el portapapeles.
Lo que necesito es que la siguiente instrucción copie el contenido del portapapeles en otro archivo word. ¿Cómo sería esa instrucción? 
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: en línea
Puntos: 6044
Enlace directo a este mensaje Enviado: 15/Mayo/2016 a las 13:32
Un Saludo.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3383
Enlace directo a este mensaje Enviado: 15/Mayo/2016 a las 13:58
Hola.
Una posible solución para pasar un powerpoint a word pasa por un código similar al siguiente:

Public Sub pasapoweraword()
Dim mipower As Object 'New PowerPoint.Application
Dim mipresentacion As Object 'PowerPoint.Presentation
Dim midiapositiva As Object 'PowerPoint.Slide
Dim nn As Long
Dim numdiapo As Long
Dim midoc As Document
Dim mifichero As String
mifichero = ActiveDocument.Path & "\NOMBREPRESENTACION.pptx"
Set mipower = CreateObject("powerpoint.application")
Set mipresentacion = mipower.Presentations.Open(mifichero)
Set midoc = Application.Documents.Add  'añade documento destino
Application.WindowState = wdWindowStateMaximize
midoc.Activate
numdiapo = mipresentacion.Slides.Count
mipower.Visible = True
For n = numdiapo To 1 Step -1
        Set midiapositiva = mipresentacion.Slides(n)
        midiapositiva.Select
        midiapositiva.Shapes.SelectAll
        mipower.ActiveWindow.Selection.Copy
        Selection.HomeKey Unit:=wdStory
        Selection.InsertBreak Type:=wdPageBreak
        Selection.HomeKey Unit:=wdStory
        Selection.Paste
Next n


mipresentacion.Close
mipower.Quit
Set mipresentacion = Nothing
Set mipower = Nothing
midoc.Application.WindowState = wdWindowStateMaximize
End Sub

Este código se tiene que poner en un word cualquiera que esté en la misma carpeta que el powerpoint y generará un documento nuevo con una 'diapositiva' en cada página de dicho documento.
Espero que ayude a resolver la duda
Ya comentas
Un saludo a todos
Arriba
Josepo Ver desplegable
Asiduo
Asiduo


Unido: 25/Mayo/2006
Estado: Sin conexión
Puntos: 229
Enlace directo a este mensaje Enviado: 15/Mayo/2016 a las 21:03
Muchas gracias, en serio. Funciona perfectamente

El único pero que tiene es que el tamaño queda algo grande y se sale de la página por el margen de la derecha. Tendría que ir en el word , objeto a objeto, reduciendo tamaño.
¿Se puede poner algo en el bucle que reduzca el tamaño de los objetos para que encajen mejor en el word?
¿Y sustituir el salto de página por un salto de línea?


Editado por Josepo - 15/Mayo/2016 a las 21:10
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3383
Enlace directo a este mensaje Enviado: 16/Mayo/2016 a las 00:12
Hola.
El problema que se 'salen' es por que normalmente las 'diapositivas' de powerpoint son apaisadas.
Una solución que se adjunta pasa por disminuirlas de tamaño ( 0.6). Cabe la posibilidad de pasarlas al 100% a A4 apaisado.

Public Sub pasapowerawordminiatura()
Dim mipower As Object 'New PowerPoint.Application
Dim mipresentacion As Object 'PowerPoint.Presentation
Dim midiapositiva As Object 'PowerPoint.Slide
Set mipower = CreateObject("powerpoint.application")
Dim nn As Long
Dim numdiapo As Long
Dim midoc As Document
Dim mifichero As String
mifichero = ActiveDocument.Path & "\NOMBREPRESENTACION.pptx"
Set mipresentacion = mipower.Presentations.Open(mifichero)
Set midoc = Application.Documents.Add
midoc.Activate
numdiapo = mipresentacion.Slides.Count
mipower.Visible = True
For n = numdiapo To 1 Step -1
        Set midiapositiva = mipresentacion.Slides(n)
        midiapositiva.Select
        midiapositiva.Shapes.SelectAll
        mipower.ActiveWindow.Selection.Copy
        Selection.HomeKey Unit:=wdStory
        Selection.InsertParagraphBefore
        Selection.InsertParagraphBefore
        Selection.HomeKey Unit:=wdStory
        Selection.Paste
        Selection.ShapeRange.Group.Select
        Selection.ShapeRange.ScaleWidth 0.6, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.ScaleHeight 0.6, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.Left = Application.CentimetersToPoints(0.2)
        Selection.ShapeRange.WrapFormat.AllowOverlap = False
        Selection.ShapeRange.WrapFormat.Side = wdWrapBoth
Next n


mipresentacion.Close
mipower.Quit
Set mipresentacion = Nothing
Set mipower = Nothing
midoc.Application.WindowState = wdWindowStateMaximize
End Sub

En un principio, al disminuir el tamaño las imágenes se quedan igual, pero en los cuadros de texto puede ocurrir que lo escrito no se vea totalmente( habría que cambiar el tamño de la letra)
Espero que se acerque a la solución pedida
Ya dices.
Un saludo a todos
Arriba
Josepo Ver desplegable
Asiduo
Asiduo


Unido: 25/Mayo/2006
Estado: Sin conexión
Puntos: 229
Enlace directo a este mensaje Enviado: 17/Mayo/2016 a las 10:12
Ok, gracias de nuevo.
Creo que deberé poner algún if para ir haciendo diferentes cosas dependiendo del tipo de objeto o de las características del mismo
Quiero hacer algo distinto dependiendo de las características del objeto. Por ejemplo , si el objeto es texto y tiene el fondo naranja es que es un título, y me gustaría darle un tamaño y una alineación. Si es imagen, tabla o gráfico, me gustaría redimensionarla, y si es una caja de texto "normal", sin color de fondo, cambiarle el tipo y tamaño de letra.
Si me puedes echar una mano con uno yo creo que puedo ir completando el resto e ir dejándolo a mí medida.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3383
Enlace directo a este mensaje Enviado: 17/Mayo/2016 a las 10:53
Hola.
La pregunta:
¿Qué tipo de objetos hay en las diapositivas del power? y ¿Que tipo en el documento  word?
Ya dices.
Un saludo a todos
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable