Друзья, ищу помощь в отключении визуализации при заполнении Powerpoint - слайдов с помощью макроса.
Суть проблемы: есть макрос, который переносит данные из ячеек листа Excel в ячейки таблиц на слайдах Powerpoint. Сам макрос работает хорошо, информация с листа эксель переносится на ppt слайды так, как нужно, но есть проблема в том, что заполнение каждого слайда занимает от ~2 до ~10 секунд (в зависимости от кол-во ячеек), а таких слайдов могут быть десятки. При этом я визуально могу наблюдать как информация вносится на слайд в таблицу ячейка за ячейкой, т.е. открывается приложение Powerpoint, создаются новые слайды (как это задано кодом), создаются новые ячейки таблицы на слайде и заполняются данными из экселя.
Вопрос: можно ли каким-либо образом ускорить этот процесс? возможно с помощью отключения визуализации, т.е. таблица в ppt слайдах не будет заполняться ячейка за ячейкой, а сразу будет обновляться слайд целиком или презентация целиком.
Ниже прилагаю ключевые фрагменты своего кода (начало и конец):
В нем я пробовал изменять значения Application.ScreenUpdating, Application.EnableEvents вместо true в конце когда менял на false,
ppApp.Visible = True менял на false, но ничего из этого не сработало.
Буду благодарен любым советам!
Суть проблемы: есть макрос, который переносит данные из ячеек листа 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 |