Недавно я заметил, что создание моего контекстного меню (которое добавляет множество различных макрос-кнопок в зависимости от того, в какой электронной таблице вы находитесь, и т. Д. c.) Становится довольно медленным.
В целях тестирования я иметь следующий тестовый макрос в vba объекта книги:
Private Sub App_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim OnActionString As String
Dim cmdNew As CommandBarButton
For Each icbc In Application.CommandBars("cell").Controls
If icbc.Tag = "brccm" Then icbc.Delete
Next icbc
For i = 1 To 70
Set cmdNew = Application.CommandBars("cell").Controls.Add
With cmdNew
.Caption = "RecordedOrNot"
.OnAction = "UTILITY_RecordedOrNot"
.BeginGroup = False
.Tag = "brccm"
End With
Next
End Sub
Даже на пустом листе контекстное меню, вызываемое правой кнопкой мыши, появляется примерно через 2 секунды. У меня есть большой рабочий лист с примерно 80 000 строк и большим количеством данных, и на него уходит 7 секунд.
Похоже, это должен быть очень быстрый код - кто-нибудь знает, почему он медленный или знаете способ ускорить его или почему он медленнее на больших листах и т. д. c.? Есть ли способ отключить что-то в приложении. * Делая это, это помогает?
Готов попробовать что-нибудь на этом этапе, так как это связано с критическим набором инструментов в моем отделе.