Как сделать индикатор в PowerPoint VBA? - PullRequest
4 голосов
/ 18 февраля 2010

Как сделать индикатор выполнения с PowerPoint VBA? Это должно быть сделано в виде анимации на слайде.

Ответы [ 3 ]

5 голосов
/ 18 февраля 2010

Это то, что вы ищете?

http://www.pptfaq.com/FAQ00597.htm

2 голосов
/ 28 апреля 2013

Этот поместит панель вверху и предотвратит ее появление на первом слайде (в отличие от скрипта pptfaq):

http://www.faronics.com/news/blog/how-to-add-a-progress-bar-to-powerpoint/

  1. В Power Point выберите Инструменты> Макрос> Редактор Visual Basic.

  2. В Office 2010 может потребоваться активировать вкладку «Разработчик», чтобы перейти к редактор. Mac версия доставит вас туда через Developer вкладка> редактор.

  3. Когда вы окажетесь в редакторе, перейдите в меню «Вставка»> «Модуль».

Четыре. Вставьте следующий код в этот недавно созданный модуль:

Sub Presentation_Progress_Marker() 
On Error Resume Next 
With ActivePresentation 
For N = 2 To .Slides.Count
.Slides(N).Shapes(“Progress_Marker”).Delete 
Set s = .Slides(N).Shapes.AddShape(msoShapeRectangle, 0, 0, N * .PageSetup.SlideWidth /.Slides.Count, 10) 
Call s.Fill.Solid
s.Fill.ForeColor.RGB = RGB(23, 55, 94) 
s.Line.Visible = False
s.Name = “Progress_Marker” Next N: End With End Sub

Пять. Закройте редактор. Наконец, запустите макрос: Инструменты> Макрос> Макросы и выберите-Presentation_Progress_Marker.

0 голосов
/ 11 мая 2018

Как насчет добавления элемента управления индикатором выполнения от Microsoft?

Поскольку PowerPoint не является приложением реального времени, вы не сможете увидеть индикатор выполнения, если вы делаете его с некоторыми фигурами.Иногда вы можете увидеть только конечный результат - только полный бар или вообще ничего).Напротив, индикатор выполнения больше «в реальном времени» или более актуален (я признаю, что это немного классический дизайн).

Вот некоторые шаги для кого-то:

  1. Чтобы добавить элемент управления индикатором выполнения, сначала необходимо добавить пользовательскую форму в окне VBE (Alt-F11).(Меню: Вставка - Пользовательская форма)

  2. Щелкните правой кнопкой мыши на появившемся окне панели инструментов и выберите дополнительный элемент управления.Прокрутите вниз и выберите «Элемент управления Microsoft Progress Bar, версия x.0» (этот элемент управления предоставляется MSCOMCTL.OCX)

Нажмите OK.Теперь вы видите значок индикатора выполнения в конце списка инструментов.Нажмите на нее и нарисуйте индикатор выполнения на UserForm1.Измените размер окна UserForm1.Чем меньше, тем лучше.Вы можете изменить заголовок окна с «UserForm1» на «Progressing ...» или любое другое сообщение, выбрав значение Caption в окне свойств.

Добавьте модуль и поместите некоторый код, как показано ниже.

Option Explicit
Sub MyJob()</p>

'Show the Progress Bar window
UserForm1.Show vbModeless 'vbModeless option should be added

Dim i As Long, Total As Long
Total = 200

Randomize

For i = 1 To Total

    'put some code here. Especially, some jobs that take some time.   
    'for example, add a rounded box with random color on slide #1
    With ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRoundedRectangle, i, i, 500, 200)
        .Name = "Shape_" & i
        .Fill.ForeColor.RGB = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)
        .Adjustments(1) = 0.5
        .Line.Visible = msoFalse
        .TextFrame.TextRange = i
    End With

    'Update the Progress bar
    UserForm1.ProgressBar1.Value = Int(i * 100 / Total)
    'integer between 0 and 100. Otherwise, pops up an error
    UserForm1.Repaint   'refresh the Userform

Next i

'close ProgressBar UserForm
Unload UserForm1

End Sub

По умолчанию значение индикатора выполнения должно быть целым числом от 0 до 100. Если это '101', вы получаете ошибку.Так что будь осторожен.

Кроме того, вы можете изменить форму индикатора выполнения, изменив значения свойств.Например, размер бара, местоположение (сверху, слева), минимальное значение (0) или максимальное значение (по умолчанию это 100. Но вы можете изменить его на 50 или любое другое значение). Вы также можете изменить ихпрограммно.

Индикатор выполнения несколько старомоден, но полезен для более быстрой (?) реакции, чем созданный пользователем индикатор выполнения типа фигуры.

...