2017-02-20 4 views
0

У меня есть слайд, который мы используем в моем отделе, чтобы предоставить обзор прогресса, связанного с предоставлением проектных документов. Это показано графически, и поэтому простой табличный вид или подобное не может использоваться. Каждый из документов, упомянутых на слайде, может иметь 3 разных легенды (цифры), квадрат, треугольник и стрелку. Они кодируются цветом в соответствии с ответственностью заинтересованных сторон за результат. Прямо сейчас мы меняем каждый из них вручную во время проектаPowerPoint 2010 - VBA, чтобы заменить цифры

Я ищу: Есть ли код VBA, который может быть легко использован для замены этих цифр в соответствии с статусом проекта? Я предполагаю, что каждый проект должен быть помечен позицией на слайде, а затем пользовательская форма может использоваться для выбора того типа, который должен быть присвоен?

Любой, кто может мне помочь или указать мне в сторону чего-то, что может мне помочь, очень ценится!

Спасибо Peter

+0

Добро пожаловать на сайт. Если вы выполняете этот процесс вручную, то то, что я нашел удобным, - это использовать макрорекордер, а затем заимствовать код, который вам нужен. [Инструкции Microsoft] (https://msdn.microsoft.com/en-us/library/office/ff838320.aspx). И чтобы получить конкретный ответ, [пожалуйста, проверьте это] (http://stackoverflow.com/help/how-to-ask) –

+1

@ Jimmy Smith, к сожалению, у powerpoint нет макрорекордера с многих лет. MS отказалась от работы –

+0

@ChristineRoss Я этого не знал. В основном я использовал его много лет назад для Word и Excel. OP, не уверен, что «цифры», на которые вы ссылаетесь, являются изображениями, но вот [пример для заимствования] (http://stackoverflow.com/questions/28274753/replace-existing-image-in-ms-powerpoint-with -a-new-image-using-vba), или если они только фигуры, [это может помочь] (http://stackoverflow.com/questions/22099887/change-shape-color-in-a-loop-vba -ppt) –

ответ

0

Вот один подход в общих чертах ...

Вместо отдельных форм, используйте квадрат, треугольник и стрелку сгруппированный. Пользователь выбирает группу, с которой они хотят работать, затем запускает диалоговое окно, в котором они выбирают статус проекта для этого элемента. Диалоговое окно присваивает значение от 1 до 3 к статусу затем вызывает SetVisibility так:

Sub MakeItSo() 
    Call SetVisibility(2) 
End Sub 

SetVisibility первым делает все фигуры в группе невидимой, а затем устанавливает соответствующую форму, чтобы быть видимым:

Sub SetVisibility(lStatus As Long) 
    Dim x As Long 
    With ActiveWindow.Selection.ShapeRange(1) 
     For x = 1 To .GroupItems.Count 
      .GroupItems(x).Visible = False 
     Next 
     .GroupItems(lStatus).Visible = True 
    End With 
End Sub 
+0

Отличная идея! Я постараюсь продолжить это, а также упростит его поддержку! большое спасибо ! – Mayfarm