Я пытался печатать с этим или похожим макросом, и это сработало, я экспортировал, а затем потерпел крах. Тогда я не смог заставить это работать после перезапуска.
Макрос должен выполнить цикл, введенный пользователем несколько раз, затем напечатает индексы первого слайда (заголовка) и 5 дополнительных слайдов, кратные количеству циклов, выданных на раздаточный материал 6 слайдов.
- Первая страница: 1, 3-7
- Вторая страница: 1, 8-12
- Третья страница: 1, 13-17
- и т.д.
Теперь выдается ошибка:
Ошибка времени выполнения '-2147467259 (80004005)
Сбой метода «PrintOut» объекта «_Presentation»
Ниже мой сценарий. Идеи?
Sub CHPrint()
Dim oIndexArray(0 To 5) As Integer, slideIndexArray(0 To 5) As Integer, numCases As Integer
' Prompt user for how many cases to print (# pages, # loops)
numCases = InputBox("How many cases to print?")
' Initialize first index of array to 1 (first slide). This will not change.
slideIndexArray(0) = 1
' Initialize other indices of array to the first set of slides to print (3-7)
For i = 1 To 5
oIndexArray(i) = 3 + (i - 1)
slideIndexArray(i) = oIndexArray(i)
Next i
' For each loop, select slides to print (1&3-7; 1&8-12; 1&13-17; etc.) and print
For i = 0 To numCases - 1
ActivePresentation.Slides.Range(slideIndexArray).Select
With ActivePresentation
With .PrintOptions
.ActivePrinter = "LN104142 on LocalHost"
'.ActivePrinter = "Adobe PDF"
.OutputType = ppPrintOutputSixSlideHandouts
.RangeType = ppPrintSelection
End With
.PrintOut ' "method 'printout' of object '_presentation' failed"
End With
' For each time through the first loop (i), reinitialize selection (1&3-7; 1&8-12; 1&13-17; etc.)
For j = 1 To 5
slideIndexArray(j) = oIndexArray(j) + (5 * (i + 1))
Next j
Next i
End Sub