Я делаю макрос для вставки определенных диапазонов из книг Excel в PowerPoint, и я хочу, чтобы пользователь мог контролировать положение и масштаб изображения.Я написал код, который включает в себя 14 переменных для слайдов в каждой книге, и я пытаюсь запустить цикл for, чтобы он работал быстрее / и код был более плавным.
Как показано ниже, мои переменные(начиная только с 1) я повторяю снова и снова, пока не доберусь до 14. Есть ли способ запустить цикл for, поэтому я могу разрешить только этот блок кода ниже, не вставляя его 14 раз?
'---------- Page ----------
If Switch1 = "Yes" Then
MySlideArray = Array(Page1)
'Period-Specific SnapShot
'List of PPT Slides to Paste to
'List of Excel Ranges to Copy from
MyRangeArray = Array(Worksheets(MS1).Range(Rng1))
'Loop through Array data
For x = LBound(MySlideArray) To UBound(MySlideArray)
'Copy Excel Range
MyRangeArray(x).Copy
'Paste to PowerPoint and position
On Error Resume Next
Set shp = myPresentation.Slides(MySlideArray(x)).Shapes.PasteSpecial(DataType:=2) 'Excel 2007-2010
Set shp = PowerPointApp.ActiveWindow.Selection.ShapeRange 'Excel 2013
On Error GoTo 0
'Custom sizing
With myPresentation.PageSetup
PowerPointApp.ActiveWindow.Selection.ShapeRange.LockAspectRatio = False
shp.Width = w1 * 72
shp.Height = h1 * 72
'shp.Width = 159
'shp.Height = 248
'switch for USER to allow customer positioning or default center image in ppt
If stc1 = "Yes" Then
shp.Left = (.SlideWidth \ 2) - (shp.Width \ 2)
shp.Top = (.SlideHeight \ 2) - (shp.Height \ 2)
Else
shp.Left = Hz1 * 72
shp.Top = Vr1 * 72
End If
End With
Next x
End If