Я работаю над приложением макросов Word VBA для 80 или около того пользователей. В офисе высокая текучесть кадров, поэтому страдает обучение, поэтому одним из требований, предъявляемых к этому проекту, является исчерпывающая и удобная документация. Однако, чтобы дополнить это и избавить новичков от необходимости открывать 100-страничный документ, когда они хотят попробовать что-то новое, я хочу иметь строку состояния на каждой пользовательской форме (их пять), которая предоставляет контекстную помощь. Меня раздражают всплывающие подсказки.
У меня нет большого опыта, поэтому я хотел
По сути, у меня есть файл, содержащий каждую строку состояния. (В настоящее время это текстовый файл, но мне было интересно, следует ли мне использовать электронную таблицу или csv для облегчения редактирования другим персоналом в будущем.) Каждый элемент управления имеет событие MouseMove, которое ссылается на функцию: getStatus(cID), которая открывает файл, захватывает строку и отображает ее в метке состояния. Он также получает несколько параметров из той же строки в файле, например, кликабельна ли метка (для ссылки на страницу в файле справки) и какого цвета должна быть метка.
Так что собственно несколько вопросов:
Будет ли приложение работать медленно, если пользовательская форма постоянно обращается к файлу? Меня это устраивает, но я слишком долго был в этом, и я единственный пользователь, имеющий доступ к этому файлу. К нему будет постоянно обращаться 80 человек.
Является ли MouseMove над элементом управления лучшим способом? Должен ли я вместо этого использовать координаты?
Самое главное (с точки зрения того, что мне нужно делать как можно меньше работы), есть ли способ сделать это, чтобы мне не приходилось иметь событие MouseMove для каждого отдельного элемента управления? У меня есть несколько сотен или около того элементов управления, каждый со своим идентификатором (ну, пока нет, но они будут, если это единственный способ сделать это). Возможно, когда форма загружается, я мог бы загрузить ВСЕ возможные строки состояния, чтобы они были готовы к любому наведению курсора мыши. Но тогда, может быть, время загрузки ничтожно мало?
Ценю любые идеи или мысли, особенно если в VBA уже есть целый набор функций для этого, а я просто пытаюсь заново изобрести велосипед. Я не могу использовать строку состояния приложения, потому что пользователь редко видит само приложение.
Спасибо!
РЕДАКТИРОВАТЬ:
Он предназначен как для ввода данных, так и для создания небольшого количества документов.
Это контролируемая среда, поэтому вопросы безопасности макросов меня не сильно беспокоят, и если что-то пойдет не так, это чья-то вина или проблема :)