Страница 1 из 1

Excel 2002 XP и клавиша "Enter"

Добавлено: 28 май 2005, 12:10
Pafnutij_ru
Как сделать в версии ХР переход с ячейки, содержащей гиперссылку, по нажатию Enter'a, а не только левой кнопкой мыши?По 2000-ую версию включительно, всё работало так по умолчанию, а в ХР курсор просто перемещается на соседнюю ячейку.

Добавлено: 02 июн 2005, 03:19
Naeel Maqsudov
Посмотрите в меню
Сервис/Параметры/Правка - там всегда указывалось в том числе, что делать по Enter
Сервис/Параметры/Переход (в XP может называться по другому) - в 2000-ном там можно было переопределить поведение клавиш и сделать аналогичным Lotus-у. Скорее всего в XP сюда добавили совместимость пользовательского интерфейса с предыдущии версиями. (У меня к сожалению нет XP под рукой...)

Добавлено: 07 июн 2005, 09:42
Pafnutij_ru
Если бы всё было так просто.... С помощью вкладок Сервис/Параметры это , к сожалению не регулируется....

Добавлено: 17 июн 2005, 00:57
Naeel Maqsudov
Завтра посмотрю в Excel2003.
Может там можно будет нажатие клавиши обработать...

Добавлено: 21 июн 2005, 09:42
Pafnutij_ru
И как в 2003 версии? Перехода по Enter'у тоже нет или есть?

Добавлено: 24 июн 2005, 14:11
Naeel Maqsudov
В 2003 перепрыгивает по Enter-у через гиперссылки нормально. Т.е. как раньше гиперссылка Entero-м не открывается.

Добавлено: 29 июн 2005, 11:52
Pafnutij_ru
Мда. Ну, тогда может есть какая другая возможность перехода по нажатию Enter'a с ячейки А1 любого листа книги, на ячейку А1 первого листа?

Добавлено: 20 июл 2005, 20:08
Naeel Maqsudov
Есть. прийдется макросы писать.

В модуле книги (т.е. ThisWorkBook) пришем

Код: Выделить всё

Private Sub Workbook_Open()
  Application.OnKey "~", "InsertProc"
End Sub

Ну а потом добавляем обычный модуль для макросов и пишем макрос:

Код: Выделить всё

Public Sub InsertProc()
  Dim C As Range
  On Error Resume Next
  Set C = ActiveCell
  If C.Hyperlinks.Count > 0 Then C.Hyperlinks(1).Follow Else C.Offset(1, 0).Activate
End Sub

Проверено в 2003. В XP скорее всего аналогично.

Идея слующая - при открытии книги (Workbook_Open())
вешаем на кливишу ENTER макрос InsertProc
Этот макрос проверяет наличие гиперссылки в активной ячейке и если есть переходит, иначе перемещает курсор вниз.

Только учтите макрос запускается даже если открыть какую-нибудь другую книгу :)

Наверное правильнее переопределять клавишу всякий раз при активации книги Workbook_Activate и отпускать ее при деактивации. Ну тут уж Вы сами переделаете я надеюсь...

Добавлено: 23 июл 2005, 10:29
Pafnutij_ru
Спасибо, попробую.