2016-08-31 2 views
0

Я пытаюсь получить две фотографии для изменения размера и выравнивания бок о бок ... думаю, как перед и после сравнения на одном слайде. Изображения уже импортированы на слайд. У меня два написанных макроса: один для левого справа, основанный на выбранной фигуре, но он хотел сочетаться с одним.VBA powerpoint: размер и выравнивание 2 изображения на одном слайде

Вот что у меня есть (новобранец) объединить

'Updated Macro 
Sub SidebySide() 
Dim oSp As Shape 
Dim oSld As Slide 

If CheckIsPic(oSp) = True Then 
With oSp 
    Do 
     .Height = (5.6 * 72) 
     .Width = (4.8 * 72) 
     .Left = (0.2 * 72) 
     .Top = (1.3 * 72) 
    Loop While oSp = ActiveWindow.Selection.ShapeRange(1) 
End With 

With oSp 
    Do 
      .Height = (5.6 * 72) 
      .Width = (4.8 * 72) 
      .Left = (5# * 72) 
      .Top = (1.3 * 72) 
    Loop While oSp <> ActiveWindow.Selection.ShapeRange(1) 
End With 

End If 

End Sub 

Function CheckIsPic(oSp As Shape) As Boolean 
If oSp.Type = msoPicture Then CheckIsPic = True 
End If 
End Function 

Это не работает, так что я знаю, что, вероятно, что-то неправильно там, но в основном я пытаюсь запустить цикл, если это рис на слайде ... сделайте A для выбора, сделайте B для выбора.

Любые идеи? Я уверен, что есть намного лучший способ сделать это. Спасибо

ответ

0

Я думаю, что перемещение With ВНЕ Do...Loop решит проблему. (сделать это дважды)

With oSp 
    Do 
     .Height = (5.6 * 72) 
     .Width = (4.8 * 72) 
     .Left = (0.2 * 72) 
     .Top = (1.3 * 72) 
    Loop While oSp = ActiveWindow.Selection.ShapeRange(1) 
End With 
+0

Хм. Теперь он не работает с модулем высказывания CheckIsPic, который не определен – Chris

+0

Ну, он, вероятно, прав :-) Нажмите CheckIsPic и нажмите Shift + F2, чтобы проверить. Если функция существует, она приведет вас туда. –

+0

OK добавила функцию в моем редактируемом исходном сообщении .... Нет ошибок, но ничего не меняется – Chris

Смежные вопросы