MyTetra Share
Делитесь знаниями!
Как преобразовать рабочую книгу в презентацию PowerPoint
Время создания: 12.10.2019 20:34
Раздел: Разные закладки - VBA - PowerPoint
Запись: xintrea/mytetra_db_adgaver_new/master/base/1570884913l8baxjdmv7/text.html на raw.githubusercontent.com

Как преобразовать рабочую книгу в презентацию PowerPoint

Автор Дмитрий Якушев На чтение4 мин. Просмотров99

Что делает макрос: Этот макрос принимает концепцию использования данных Excel в PowerPoint. Идея заключается в том, что вы можете создать книгу таким образом, что она имитирует презентацию PowerPoint. После того, как вы сделаете это, вы можете легко преобразовать рабочую книгу в презентацию PowerPoint, фактически используя немного автоматизации.
С помощью этого макроса, вы можете строить целые презентации в Excel.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как этот код работает
  4. Как использовать

Как макрос работает

Перед тем, как осуществить этот макрос в вашей книге, необходимо установить ссылку на библиотеку объектов Microsoft PowerPoint.

Код макроса


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

Sub PreobrazovatRabochuyuKniguVPrezentaciyu()

'Шаг 1: Объявляем переменные

Dim pp As PowerPoint.Application

Dim PPPres As PowerPoint.Presentation

Dim PPSlide As PowerPoint.Slide

Dim xlwksht As Excel.Worksheet

Dim MyRange As String

Dim MyTitle As String

 

'Шаг 2: Откройте PowerPoint, добавьте новую презентацию и сделайте 'видимым

Set pp = New PowerPoint.Application

Set PPPres = pp.Presentations.Add

pp.Visible = True

 

'Шаг 3: Установите диапазоны для ваших данных и названия

MyRange = "A1:I27"

 

'Шаг 4: Начните цикл каждого листа

For Each xlwksht In ActiveWorkbook.Worksheets

    xlwksht.Select

    Application.Wait (Now + TimeValue("0:00:1"))

    MyTitle = xlwksht.Range("C19").Value

     

    'Шаг 5: Скопируйте диапазон как изображение

    xlwksht.Range(MyRange).CopyPicture _

    Appearance:=xlScreen, Format:=xlPicture

 

    'Шаг 6: Подсчет слайдов и добавление нового слайда в качестве

    'следующего доступного номера слайда

    SlideCount = PPPres.Slides.Count

    Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutTitleOnly)

    PPSlide.Select

 

    'Шаг 7: Вставьте картинку и отрегулируйте ее положение

    PPSlide.Shapes.Paste.Select

    pp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True

    pp.ActiveWindow.Selection.ShapeRange.Top = 100

 

    'Шаг 8: Добавьте заголовок к слайду и перейдите к следующему листу.

    PPSlide.Shapes.Title.TextFrame.TextRange.Text = MyTitle

Next xlwksht

 

'Шаг 9: Очистка памяти

pp.Activate

Set PPSlide = Nothing

Set PPPres = Nothing

Set pp = Nothing

End Sub

Как этот код работает

  1. Шаг 1 объявляет шесть переменных: PP является переменной объекта, которая выставляет PowerPoint; PPPres является переменной объекта, которая выставляет объект презентации PowerPoint; PPSlide является переменной объекта, которая выставляет объект слайдов в PowerPoint; xlwksht является переменной объекта, которая выставляет объект рабочего листа; MyRange переменная строка, используемая для хранения и передачи имени диапазона в виде строки; MyTitle переменная строка, используемая для хранения и передачи заголовок для каждого слайда.
  2. Шаг 2 открывает PowerPoint с пустой презентацией. Обратите внимание, что мы устанавливаем Видимый свойство приложения PowerPoint в True. Это гарантирует, что мы можем увидеть действие, как работает код.
  3. Шаг 3 заполняет переменную MyRange со строкой, представляющей диапазон, который мы хотим захватить как содержание слайдов. Мы также заполняем переменную MyTitle
    со значением ячейки C19. Значение становится заголовком для слайда.
  4. Шаг 4 запускает цикл через каждый лист в книге. Обратите внимание, что мы используем метод Application.Wait, говоря макросу, чтобы он сделал паузу в течение секунды. Это позволяет скопировать весь диапазон.
  5. Шаг 5 использует метод CopyPicture для копирования в заданный диапазон в качестве изображения.
  6. Шаг 6 добавляет новый слайд в презентации с помощью метода Add объекта Slide. Обратите внимание, что мы используем SlideCount + 1, чтобы указать порядковый номер добавленного слайда. Использование SlideCount + 1 позволяет динамически назначать следующий доступный номер в качестве индекса слайдов. Также обратите внимание, что мы используем ppLayoutTitleOnly, обеспечивая наш слайд названием текстового фрейма.
  7. Шаг 7 вставляет изображение в активный слайд, центры изображения по горизонтали, и регулирует изображение по вертикали 100 пикселей от верхнего края.
  8. Далее передаем переменную MyTitle применить текст в заголовке текстового фрейма.
  9. Шаг 9 очищает память.
Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования