Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Вопрос по отключение визуализации при заполнении powerpoint-слайда макросом, помогите отключить визуализацию для ускорения работы макроса
 
Друзья, ищу помощь в отключении визуализации при заполнении Powerpoint - слайдов с помощью макроса.

Суть проблемы: есть макрос, который переносит данные из ячеек листа Excel в ячейки таблиц на слайдах Powerpoint. Сам макрос работает хорошо, информация с листа эксель переносится на ppt слайды так, как нужно, но есть проблема в том, что заполнение каждого слайда занимает от ~2 до ~10 секунд (в зависимости от кол-во ячеек), а таких слайдов могут быть десятки. При этом я визуально могу наблюдать как информация вносится на слайд в таблицу ячейка за ячейкой, т.е. открывается приложение Powerpoint, создаются новые слайды (как это задано кодом), создаются новые ячейки таблицы на слайде и заполняются данными из экселя.

Вопрос: можно ли каким-либо образом ускорить этот процесс? возможно с помощью отключения визуализации, т.е. таблица в ppt слайдах не будет заполняться ячейка за ячейкой, а сразу будет обновляться слайд целиком или презентация целиком.

Ниже прилагаю ключевые фрагменты своего кода (начало и конец):
В нем я пробовал изменять значения Application.ScreenUpdating, Application.EnableEvents вместо true в конце когда менял на false,
ppApp.Visible = True менял на false, но ничего из этого не сработало.

Буду благодарен любым советам!
Код
Sub macro_filling_slides()

Application.ScreenUpdating = False
Application.EnableEvents = False
Dim ppSlide As PowerPoint.Slide
Dim ...другие переменные...

    Dest = "C:\Users\...\type_table.pptx"
    Set ppApp = CreateObject("Powerpoint.Application")
    ppApp.Activate
    Set ppPres = ppApp.Presentations.Open(Dest)
    ppApp.Visible = True
    counter = 0
    Dep = Worksheets("table").Range("d3").Offset(0, 0).Value
        
      ''''ЗДЕСЬ ОСНОВНАЯ ЧАСТЬ КОДА''''
        
    ppApp.ActiveWindow.View.GotoSlide (1)
   
    Set ppSlide = Nothing
    Set ppPres = Nothing
    Set ppApp = Nothing
    Worksheets(1).Activate

    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub
 
https://stackoverflow.com/questions/28511508/turn-off-screenupdating-for-powerpoint
http://www.skphub.com/ppt00033.htm
Изменено: БМВ - 15 Мар 2019 19:34:42
Страницы: 1
Читают тему (гостей: 1)
Наверх