пятница, 25 сентября 2009 г.

Управление букмарками в Word&Excel с клавиатуры

Лень — двигатель…

Давеча пришлось перелопачивать длиннюююющий вордовский документ — исправить здесь, подправить там, вернуться обратно и все такое… Спустя минут 10-15 вспомнил об одном удобстве внутреннего редактора Far Manager — закладки:
ПравыйCtrl-0..9  Установить закладку 0..9 в текущей позиции
ЛевыйCtrl-0..9 Перейти к позиции закладки 0..9
и решил, что этому функционалу в Word`е быть — лучше час потерять, а потом «по пырому долететь»: макросы в Office рулят!


…основное ядро «движка» было сделано достаточно быстро (ActiveDocument.Bookmarks.[Add|Exists|Item]), но появилась проблема — Ворд категорически отказывался различать левый и правый Ctrl (зато удачно одинаково реагировал на оба контрола!)… Вспомнил WinAPI (функция GetKeyboardState) и макрос заработал так, как и предполагалось. Потом была оптимизация кода, появилась инсталляционные функции, размещение в Normal.dot, и… аналогичный по функционалу макрос для Excel.

Теперь в Word`е стало достаточно комфортно прыгать по одному документу. Есть один недостаток (хотя может это и достоинство — смотря под каким углом оценивать функционал) — управление букмарками в Ворде производится только в пределах текущего документа, в другом документе свои букмарки. Почему считаю это недостатком? Ну… дело в том, что аналогичный макрос в Excel работает на весь диапазон открытых книг.

Взять макросы можно здесь (лицензия BSD):
Если подумать про улучшения, то для Excel можно добавить возможность открывать закрытый файл (если букмарк для «этой» позиции заполнен данными), для «обоих» добавить в контекстные меню пункты установки/перехода на позиции, для «мышатников» так же добавить формирование панели с кнопками…

Комментариев нет:

Отправить комментарий