Добрый день.
В Эксель отсутствует события по управлению обновлением экрана при использовании Scroll. Проблема возникает когда при перемещении по листу, за лист, начинается перерисовка объектов (на листе несколько сотен-тысяч Shape). Перерисовка занимает длительное время.
Добавляю Shapes, я так.
Dim Фигура As Shape
Set Фигура = Диаграмма.Shapes.AddShape(msoShapeRectangle, Прямоугольник.Left, Прямоугольник.Top, Прямоугольник.Width, Прямоугольник.Height)
Поэтому вижу такую логику: всегда отключать/блокировать (перехватывать сообщения) на перерисовку для листа "Диаграмма" и самому включать ее в тех случаях когда посчитаю необходимым.
Возможно реализация через это InvalidateRect и WM_Paint.
В Эксель отсутствует события по управлению обновлением экрана при использовании Scroll. Проблема возникает когда при перемещении по листу, за лист, начинается перерисовка объектов (на листе несколько сотен-тысяч Shape). Перерисовка занимает длительное время.
Добавляю Shapes, я так.
Dim Фигура As Shape
Set Фигура = Диаграмма.Shapes.AddShape(msoShapeRectangle, Прямоугольник.Left, Прямоугольник.Top, Прямоугольник.Width, Прямоугольник.Height)
Поэтому вижу такую логику: всегда отключать/блокировать (перехватывать сообщения) на перерисовку для листа "Диаграмма" и самому включать ее в тех случаях когда посчитаю необходимым.
Возможно реализация через это InvalidateRect и WM_Paint.