2013-08-07 3 views
0

У меня есть презентация Powerpoint, которая должна непрерывно контура, чтобы постоянно отображать информацию. Я хочу, чтобы связанный объект Excel Worksheet в одном слайде обновлял свои данные каждый раз, когда отображается слайд, показывая обновленные данные в представлении цикла.Обновление Linked Excel Slide в Powerpoint Слайд-шоу

Как бы я это сделал?

+2

У вас есть исходный код на данный момент? (что обычно возникает при запросе здесь в SO). на данный момент я бы сказал, что это возможно. Но вы предоставляете слишком мало информации, чтобы помочь вам. –

+0

У меня пока нет кода. Это то, что я пытаюсь настроить для конечных пользователей, чтобы иметь возможность делать сами, и поэтому я хотел знать, есть ли функциональность, интегрированная в графический интерфейс Powerpoint, который позволит использовать эту интерактивность. Я понимаю, что макросы, вероятно, понадобятся, но я еще не написал, так как я не уверен, как подходить к этой проблеме. –

ответ

2

код, чтобы сделать обновление только одна строка:

ActivePresentation.Slides(2).Shapes(1).LinkFormat.Update 

Вы можете обратиться как к Slides и Shapes номер индекса или по имени. В приведенном выше примере обновляется ссылка на первый объект Shape на 2-й объект Slide. Вам нужно выполнить следующие шаги, чтобы сделать этот код в нужное время.

Из документации Microsoft Office:

Как: Использование событий с объектом Application

Чтобы создать обработчик события для события объекта Application, вы необходимо заполнить следующие три этапа:

  1. Объявление переменной объекта в модуле класса для ответа на события.
  2. Напишите конкретные процедуры обработки событий.
  3. Инициализировать объявленный объект из другого модуля.

Объявляет объект переменной

Прежде чем писать процедуры для событий объекта Application , вы должны создать новый модуль класса и объявить объект типа Application с событиями. Например, предположим, что создан новый класс и называется EventClassModule. Новый класс класса содержит следующий код.

VBA

Public WithEvents App As Application 

Написать процедуры событий

После того, как новый объект объявлен с событиями, он появляется в списке Object в модуле класса, и вы можете написать событие процедуры для нового объекта . (Когда вы выбираете новый объект в списке объектов, в списке «Процедуры» перечислены действительные события .) Выберите событие из списка «Порядок»; пустая процедура добавляется к модулю класса .

VBA

Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow) 
    ActivePresentation.Slides(2).Shapes(1).LinkFormat.Update 
End Sub 

Инициализация Заявленный объект

Перед процедурой будет работать, вы должны подключить заявленную объект в модуль класса (App в данном примере) с Заявкой объект. Вы можете сделать это со следующим кодом из любого модуля.

VBA

Dim X As New EventClassModule 
Sub InitializeApp() 
    Set X.App = Application 
End Sub 

Выполните процедуру InitializeApp. После выполнения процедуры объект App в модуле класса указывает на объект приложения Microsoft Office PowerPoint , а процедуры событий в модуле класса будут выполняться при возникновении событий .

+0

Не индексируются ли слайды и формы? –

+0

В Microsoft VBA все коллекции основаны на 1. Даже если ваш код объявлен как 0 для основанных на вас переменных, встроенные коллекции объектов VBA/Office основаны на 1. – Stewbob

+0

Истина VB также. Коллекции всегда основаны на 1; массивов нет. –

Смежные вопросы