Macro para

08/12/2007 - 00:38 por Rucoma | Informe spam
Grabé una macro en power point para que me cambiara el tamaño de las
imagenes de una diapositiva y las situara correctamente en ella.
El código resultante es el siguiente:

With ActiveWindow.Selection.ShapeRange
.Fill.Transparency = 0#
.LockAspectRatio = msoFalse
.Height = 200
.Width = 350#
End With
ActiveWindow.Selection.Unselect
ActiveWindow.Selection.SlideRange.Shapes("Picture 7").Select
With ActiveWindow.Selection.ShapeRange
.IncrementLeft 175#
.IncrementTop 100#
End With
ActiveWindow.Selection.SlideRange.Shapes("Picture 6").Select
With ActiveWindow.Selection.ShapeRange
.IncrementLeft -175#
.IncrementTop 100#
End With
ActiveWindow.Selection.SlideRange.Shapes("Picture 5").Select
With ActiveWindow.Selection.ShapeRange
.IncrementLeft 175#
.IncrementTop -100#
End With
ActiveWindow.Selection.SlideRange.Shapes("Picture 4").Select
With ActiveWindow.Selection.ShapeRange
.IncrementLeft -175#
.IncrementTop -100#
End With
End Sub


El problema está en que al correr la macro en la siguiente diapositiva
(y tengo que hacerlo en muchas), las referencias a las imágenes
("Picture 7", etc) han cambiado, por lo que no me sirve.
Hay alguna manera de hacerlo para que la macro no se guíe por el
nombre del objeto?
Espero haberme explicado con claridad.

Muchas gracias y saludos.

Preguntas similare

Leer las respuestas

#6 Aeoris
08/12/2007 - 19:43 | Informe spam
No tengo ni idea de macros, alguien podría decirme los pasos a seguir para
introducir esta macro. Gracias


"Héctor Miguel" escribió en el mensaje
news:%
: hola (de nuevo), ruben !
:
: (perdon... me "engolosine" duplicando 3 instrucciones: LockAspectRatio,
Height y Width)
: las instrucciones debieron ser 3 lineas mas "cortas" :))
:
: Dim n As Byte
: With ActiveWindow.Selection.SlideRange
: For n = 1 To 4
: With .Shapes(n)
: .Fill.Transparency = 0
: .LockAspectRatio = msoFalse
: .Height = 200
: .Width = 350
: .IncrementLeft 175 * IIf((n - 1) Mod 2, -1, 1)
: .IncrementTop 100 * IIf(n > 2, -1, 1)
: End With
: Next
: End With
:
: saludos,
: hector.
:
:
Respuesta Responder a este mensaje
#7 Aeoris
08/12/2007 - 19:43 | Informe spam
No tengo ni idea de macros, alguien podría decirme los pasos a seguir para
introducir esta macro. Gracias


"Héctor Miguel" escribió en el mensaje
news:%
: hola (de nuevo), ruben !
:
: (perdon... me "engolosine" duplicando 3 instrucciones: LockAspectRatio,
Height y Width)
: las instrucciones debieron ser 3 lineas mas "cortas" :))
:
: Dim n As Byte
: With ActiveWindow.Selection.SlideRange
: For n = 1 To 4
: With .Shapes(n)
: .Fill.Transparency = 0
: .LockAspectRatio = msoFalse
: .Height = 200
: .Width = 350
: .IncrementLeft 175 * IIf((n - 1) Mod 2, -1, 1)
: .IncrementTop 100 * IIf(n > 2, -1, 1)
: End With
: Next
: End With
:
: saludos,
: hector.
:
:
Respuesta Responder a este mensaje
#8 Enric Mañas
08/12/2007 - 20:13 | Informe spam
Aeoris,

Puedes mirar:

How do I use VBA code in PowerPoint?
http://www.pptfaq.com/FAQ00033.htm

(Para correr la macro de Héctor Miguel necesitas haber insertado 4 imágenes
cualesquiera en la diapositiva, haberlas seleccionado y haberlas centrado
previamente)

Muy cordialmente

Enric
Enric Mañas [MS MVP Office-PowerPoint]


"Aeoris" escribió en el mensaje
news:eL7$
No tengo ni idea de macros, alguien podría decirme los pasos a seguir
para
introducir esta macro. Gracias


"Héctor Miguel" escribió en el mensaje
news:%
: hola (de nuevo), ruben !
:
: (perdon... me "engolosine" duplicando 3 instrucciones: LockAspectRatio,
Height y Width)
: las instrucciones debieron ser 3 lineas mas "cortas" :))
:
: Dim n As Byte
: With ActiveWindow.Selection.SlideRange
: For n = 1 To 4
: With .Shapes(n)
: .Fill.Transparency = 0
: .LockAspectRatio = msoFalse
: .Height = 200
: .Width = 350
: .IncrementLeft 175 * IIf((n - 1) Mod 2, -1, 1)
: .IncrementTop 100 * IIf(n > 2, -1, 1)
: End With
: Next
: End With
:
: saludos,
: hector.
:
:


Respuesta Responder a este mensaje
#9 Héctor Miguel
08/12/2007 - 20:28 | Informe spam
hola, (...) ?

No tengo ni idea de macros, alguien podria decirme los pasos a seguir para introducir esta macro...



1) abres una instancia del editor de vba -> atajo de teclado = {alt}+{F11}
2) insertas un modulo de codigo normal -> (menu) insertar / modulo
3) inicias un procedimiento nuevo y entre las lineas Sub... y End Sub pones el codigo (p.e.)

Sub Nombre_de_tu_macro()
Dim n As Byte
With ActiveWindow.Selection.SlideRange
For n = 1 To 4
With .Shapes(n)
.Fill.Transparency = 0
.LockAspectRatio = msoFalse
.Height = 200
.Width = 350
.IncrementLeft 175 * IIf((n - 1) Mod 2, -1, 1)
.IncrementTop 100 * IIf(n > 2, -1, 1)
End With
Next
End With
End Sub

4) cierras el editor de vba -> atajo de teclado = {alt}+Q / {alt}+{F4} (etc.)

5) de regreso a la aplicacion, pulsas {F8}, seleccionas el nombre de la macro y la ejecutas

saludos,
hector.
Respuesta Responder a este mensaje
#10 Héctor Miguel
08/12/2007 - 20:28 | Informe spam
hola, (...) ?

No tengo ni idea de macros, alguien podria decirme los pasos a seguir para introducir esta macro...



1) abres una instancia del editor de vba -> atajo de teclado = {alt}+{F11}
2) insertas un modulo de codigo normal -> (menu) insertar / modulo
3) inicias un procedimiento nuevo y entre las lineas Sub... y End Sub pones el codigo (p.e.)

Sub Nombre_de_tu_macro()
Dim n As Byte
With ActiveWindow.Selection.SlideRange
For n = 1 To 4
With .Shapes(n)
.Fill.Transparency = 0
.LockAspectRatio = msoFalse
.Height = 200
.Width = 350
.IncrementLeft 175 * IIf((n - 1) Mod 2, -1, 1)
.IncrementTop 100 * IIf(n > 2, -1, 1)
End With
Next
End With
End Sub

4) cierras el editor de vba -> atajo de teclado = {alt}+Q / {alt}+{F4} (etc.)

5) de regreso a la aplicacion, pulsas {F8}, seleccionas el nombre de la macro y la ejecutas

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida