Извините за Эстоооонию, но задача и в самом деле головоломная. Тут вот какая штука - решение с заменой процедур OnAction для пунктов добавления/удаления ячеек в меню Excel, предложенное на rsdn.ru (на которое выходишь по ссылкам в теме, ссылку на которую дал pashulka), очень красиво, но есть одна загвоздка. В своей процедуре OnAction мы можем узнать выбранную ячейку (Selection), но мы не видим, какая именно опция выбрана в диалоге добавления или удаления ячеек. В результате пользователь может случайно промахнуться мышью и выбрать "удалить всю строку" (включая защищенную ячейку), и это у него получится, поскольку Selection меняется уже ПОСЛЕ того, как мы его проверили. А обработка события Worksheet_Change (с просмотром UsedRange.Rows.Count и UsedRange.Columns.Count) тоже не поможет - при добавлении пустых ячеек (не скопированных) это событие не возникает. В общем, у меня тут получился еще один "велосипед", и вроде бы в нем этих пакостей нет, но макросы... ну, не то, чтобы слишком большие, но читать прямо здесь все равно будет неудобно. Так что, mokc0der (или кто-либо еще), если проблема еще висит, шли мне свой мэйл, а я перешлю Excel-евский файлик.
--------------------
Я долго учился на чужих ошибках, и теперь мои собственные ошибки не хуже, чем у других.
|