Как включить подсказки в vba excel

Обновлено: 05.07.2024

[/vba]
Сначала запустить макрос, потом найти функцию MySum в справке. [/vba]
Сначала запустить макрос, потом найти функцию MySum в справке. Manyasha [/vba]
Сначала запустить макрос, потом найти функцию MySum в справке. Автор - Manyasha
Дата добавления - 26.02.2015 в 16:41

Manyasha, классный приём, но согласно документации был введён с 2010-й версии эксель, а у спрашивающего 2007-я. Возможно, работать не будет, ждём проверки пользователем =)

UPD_01: Если начать вводить в ячейку свою функцию и на этапе =MySum( нажать сочетание Контрол + Шифт + англ. А то нам автоматически заполнится строка. Если мы адекватно назвали переменные - мы всё поймём.

UPD_02: Как вариант, можно для каждой функции сделать дубль, добавив в конце названия "Help". Тогда, если забыл как работает твой механизм - введи в соседнюю ячейку эту же функцию без аргументов. Например:

Manyasha, классный приём, но согласно документации был введён с 2010-й версии эксель, а у спрашивающего 2007-я. Возможно, работать не будет, ждём проверки пользователем =)

UPD_01: Если начать вводить в ячейку свою функцию и на этапе =MySum( нажать сочетание Контрол + Шифт + англ. А то нам автоматически заполнится строка. Если мы адекватно назвали переменные - мы всё поймём.

UPD_02: Как вариант, можно для каждой функции сделать дубль, добавив в конце названия "Help". Тогда, если забыл как работает твой механизм - введи в соседнюю ячейку эту же функцию без аргументов. Например:

UPD_01: Если начать вводить в ячейку свою функцию и на этапе =MySum( нажать сочетание Контрол + Шифт + англ. А то нам автоматически заполнится строка. Если мы адекватно назвали переменные - мы всё поймём.

UPD_02: Как вариант, можно для каждой функции сделать дубль, добавив в конце названия "Help". Тогда, если забыл как работает твой механизм - введи в соседнюю ячейку эту же функцию без аргументов. Например:

[/vba] Автор - Rioran
Дата добавления - 26.02.2015 в 16:51

Нашёл в закромах (с кибера с 2011 года):

Для того, чтобы работало, нужно формулу вызвать один раз из диспетчера формул, т.е Fx нажать и выбрать формулу из своей категории, потом можно вводить в самой ячейке(=ЗАПАС(Арг1,Арг2))

В 2010 можно сделать
Для восстановления исторической справедливости замечу, что этот метод работает в Excel 97, а может, и в более ранних

Нашёл в закромах (с кибера с 2011 года):

Для того, чтобы работало, нужно формулу вызвать один раз из диспетчера формул, т.е Fx нажать и выбрать формулу из своей категории, потом можно вводить в самой ячейке(=ЗАПАС(Арг1,Арг2))

В 2010 можно сделать
Для восстановления исторической справедливости замечу, что этот метод работает в Excel 97, а может, и в более ранних Hugo

Для того, чтобы работало, нужно формулу вызвать один раз из диспетчера формул, т.е Fx нажать и выбрать формулу из своей категории, потом можно вводить в самой ячейке(=ЗАПАС(Арг1,Арг2))

В 2010 можно сделать
Для восстановления исторической справедливости замечу, что этот метод работает в Excel 97, а может, и в более ранних Автор - Hugo
Дата добавления - 26.02.2015 в 17:04

Проверил сейчас на 2003 - ругается на ArgumentDescriptions. Т.е. всёж сомнительно что на 97 уже заработало. Проверил сейчас на 2003 - ругается на ArgumentDescriptions. Т.е. всёж сомнительно что на 97 уже заработало. Hugo что-то ничего не заработало. видимо он из справки берет инфу что-то ничего не заработало. видимо он из справки берет инфу sttt


Заработало, но полностью только в 2010:

Пояснения "из закромов" не работают - нужно выполнить макрос, и тогда всё работает.
Но чтоб всегда было описание аргументов - нужно при каждом старте приложения выполнять этот макрос.


Заработало, но полностью только в 2010:

Пояснения "из закромов" не работают - нужно выполнить макрос, и тогда всё работает.
Но чтоб всегда было описание аргументов - нужно при каждом старте приложения выполнять этот макрос. Hugo Тогда можно все описание функции, вместе с описанием аргументов запихать в Description (использовала пример Hugo). Чтобы каждый раз не запускать макрос, запихала ее вызов в
[vba] Тогда можно все описание функции, вместе с описанием аргументов запихать в Description (использовала пример Hugo). Чтобы каждый раз не запускать макрос, запихала ее вызов в
[vba] [/vba] Автор - Manyasha
Дата добавления - 27.02.2015 в 07:54

Если у меня например пара десятков своих функций - это ещё нужно столько макросов написать, и всех их выполнить при загрузке. Ещё и помощь бы не мешало написать - маловато инфы в мастере видно.
Гемор.
Я сделал иначе - все UDF расположил в надстройке, в ней есть вызов формы (из контекстного меню ячейки любого листа), где можно выбрать нужную UDF из списка (RAN сделал свою версию понавороченнее, опционально с разбиением по разделам), и там же на форме выводится описание выбранной функции. В описании можно написать что угодно, и сколько хочешь (вернее в актуальной версии сколько можно уместить в одной ячейке).
Т.е. некий свой мастер по выбору функции, со своим функционалом.
И работает в любой версии.
Файл не кину -
1. сейчас не могу
2. для публикации сыро, нужно дорабатывать. Но мне как всегда лениво и некогда, да и так нормально

Так что только дарю идею.

Если у меня например пара десятков своих функций - это ещё нужно столько макросов написать, и всех их выполнить при загрузке. Ещё и помощь бы не мешало написать - маловато инфы в мастере видно.
Гемор.
Я сделал иначе - все UDF расположил в надстройке, в ней есть вызов формы (из контекстного меню ячейки любого листа), где можно выбрать нужную UDF из списка (RAN сделал свою версию понавороченнее, опционально с разбиением по разделам), и там же на форме выводится описание выбранной функции. В описании можно написать что угодно, и сколько хочешь (вернее в актуальной версии сколько можно уместить в одной ячейке).
Т.е. некий свой мастер по выбору функции, со своим функционалом.
И работает в любой версии.
Файл не кину -
1. сейчас не могу
2. для публикации сыро, нужно дорабатывать. Но мне как всегда лениво и некогда, да и так нормально

Так что только дарю идею. Hugo

Так что только дарю идею. Автор - Hugo
Дата добавления - 27.02.2015 в 12:39

Попробовал по примеру Manyasha c помощью MacroOptions - работает.
Запихал макрос в Workbook_Open.

Загвоздка в том, что при этом макрос с описанием функции привязвывается к конкретной книге.
Есть ли возможность что бы описание макросов (а они у меня автоматически загружаютя при старте Excel) Загружалось автоматически без привязки к конкретной книге.

И это частный пример.. На фирме "блуждает" много полезных макросов, но не все ими постоянно пользуются. Хочется максимально облегчить людями доступ к этим функциям, хотя бы что бы они знали об их существовании.

Попробовал по примеру Manyasha c помощью MacroOptions - работает.
Запихал макрос в Workbook_Open.

Загвоздка в том, что при этом макрос с описанием функции привязвывается к конкретной книге.
Есть ли возможность что бы описание макросов (а они у меня автоматически загружаютя при старте Excel) Загружалось автоматически без привязки к конкретной книге.

И это частный пример.. На фирме "блуждает" много полезных макросов, но не все ими постоянно пользуются. Хочется максимально облегчить людями доступ к этим функциям, хотя бы что бы они знали об их существовании. MetalHeart

Загвоздка в том, что при этом макрос с описанием функции привязвывается к конкретной книге.
Есть ли возможность что бы описание макросов (а они у меня автоматически загружаютя при старте Excel) Загружалось автоматически без привязки к конкретной книге.

И это частный пример.. На фирме "блуждает" много полезных макросов, но не все ими постоянно пользуются. Хочется максимально облегчить людями доступ к этим функциям, хотя бы что бы они знали об их существовании. Автор - MetalHeart
Дата добавления - 19.11.2019 в 17:39

Для включения в Excel 2007 вкладки "Разработчик" на ленте необходимо:

1. Нажать кнопку "Office" - круглая кнопка в левом верхнем углу Excel

2. Внизу появившегося окна выбрать "Параметры Excel"

3. В разделе "Основные" в группе "Основные параметры работы c Excel" установить флажок "Показывать вкладку "Разработчик" на ленте".


В Excel 2010 включение вкладки "Разработчик" на ленте происходит немного иначе, нежели в Excel 2007. Для этого необходимо:

1. Выбрать вкладку "Файл" в левом верхнем углу окна Excel

2. Далее внизу слева выбрать пункт "Параметры" - откроется окно "Параметры Excel"

3. В левой части этого окна выбираем пункт "Настройка ленты"

4. В правой части окна в списке пунктов ленты необходимо установить флажок в пункте "Разработчик":


В Excel 2013 включение происходит так же, как и в Excel 2010, лишь немного отличается цвет кнопок и пункт называется "Настроить ленту", а не "Настройка ленты".

В Excel 2003 режим относительных ссылок при записи макроса включается/выключается специальной кнопкой, как и в более поздних версиях. Но сама кнопка располагается на отдельной маленькой панели инструментов, автоматически (обычно) появляющейся после того, как Вы нажмете кнопку "Записать макрос":


Если эта микро-панель автоматически не отображается при начале записи макроса - вероятно, ранее она была закрыта нажатием на "крестик".

Открыть ее заново можно в меню "Вид"-"Панели инструментов"-"Остановить запись". Обратите внимание: этот пункт меню будет доступен только в то время, когда идет запись макроса.

В Excel 2007, 2010 и более поздних версиях режим относительных ссылок при записи макроса включается/выключается специальной кнопкой, находящейся в левой части ленты на вкладке "Разработчик":


Для включения стиля ссылок R1C1 в Excel 2007 необходимо:

1. Нажать кнопку "Office" - круглая кнопка в левом верхнем углу Excel

2. Внизу появившегося окна выбрать "Параметры Excel"

3. Далее слева выбрать раздел "Формулы"

4. В группе "Работа с формулами" установить флажок "Стиль ссылок R1C1":


Для этого необходимо:

1) Выполнить заливку ячейки нужным цветом

2) Открыть в меню "Цвет заливки - Другие цвета. " окно редактирования цвета

3) На вкладке "Спектр" будут отображены искомые компоненты цвета: красный, зеленый и синий:


Для этого необходимо:

1. В окне "Project Explorer" кликаем на удаляемом модуле правой кнопкой мыши

2. В контекстном меню выбираем пункт "Remove "



3. Появится запрос на сохранение модуля во внешнем (текстовом) файле. Как правило, сохранять этот модуль где-либо нам не нужно, поэтому отвечаем "Нет".



После этого модуль будет удален из книги.

Если не получается удалить макрос через меню "Макросы" - можно удалить его вручную в среде разработки VBA:

1. Переходим в среду разработки (Shift+F11)

2. В окне "Project Explorer" находим файл "VBAProject(PERSONAL.XLSB)" (если это окно не открыто - открываем с помощью Ctrl+R)

3. В группе "Modules" в этом файле открываем (двойным кликом) модуль с искомым макросом

4. Удаляем в этом модуле ненужный код.

5. Сохраняем исправленный файл.



Можно также полностью удалить личную книгу макросов. Для этого надо на компьютере произвести поиск файла PERSONAL.XLSB, после чего его удалить (обычно путь к нему будет примерно таким: C:\Users\ тут имя текущего пользователя \AppData\Roaming\Microsoft\Excel\XLSTART , но может и отличаться)

Подсказка со списками свойств и методов обычно появляется автоматически по окончании набора наименования объекта/коллекции и ввода точки. Также контекстная подсказка появляется после набора наименования функции или метода объекта - в этом случае она подсказывает, какие имеются аргументы у данной функции/метода:



Контекстную подсказку можно вызвать и вручную - по нажатию комбинации клавиш Ctrl+Пробел. Результат зависит от того, в каком месте находится курсор в момент вызова подсказки.

Кроме того, ручной вызов контекстной удобен в целях ускорения написания кода: чтобы не дописывать вручную длинные названия объектов или функций, можно набрать первые несколько букв и вызвать подсказку: в открывшемся списке будут показаны все объекты, функции и объявленные переменные, названия которых начинаются с данных букв:



Если подобный объект (функция/переменная/свойство/метод) только один - он сразу же будет подставлен в код.

Здравствуйте В видео "Автоматизация заполнения бланка документа (платежного поручения)" говориться, что можно скачать файлы с макросами, о которых идет речь. Не могу найти. Подскажите, пожалуйста,где скачать Файл?

Благодарю Вас хотя у меня оффис 97 все полчается

здравствуйте, Дмитрий. подскажите пожалуйста такой момент, для того, чтобы сделать макрос с фамилиями, я сделала перечень с фамилиями и суммами.. так вот у меня слово фамилия при сортировке улетает в самый низ))) то есть оно тоже сортируется. что не так в моей таблице?

Спасибо большое.Очень полезная информация

Замечательные уроки, большое спасибо автору. Все очень доходчиво, без лишних заморочек.

Доступно и понятно!Круто.

Можно, но этот код будет посложнее, т.к. придется из Excel взаимодействовать с другим приложением - Outlook. А для этого нужно уметь обращаться не только с объектами Excel, но и с объектами Outlook (которые, конечно, сильно отличаются).

Подобные вопросы я рассматривал на специальном тренинге "Взаимодействие Excel с другими приложениями", подробнее о нем и его содержании можно узнать по этой ссылке.

Дмитрий, доброе утро! А можно добавить еще макрос, чтоб после завершения теста еще и отправлял автоматически через аутлук адресату ответ с тестированием?

Заранее прошу прощения за возможно глупый вопрос, я честно потратила кучу трафика из своих рабочих метров, но то ли неправильно формулирую, то ли не там ищу.

Пишу код для генерации отчета в Excel 2003. База в MS Access 2003. Проверено подключение библиотек.

Дальше, если я хочу выделить третий лист в этом файле (он там точно есть), я по идее пишу

- так вот если после Sheets ставлю индекс, а потом точку, то редактор не подсказывает, нет выпадающего списка свойств и методов. Если индекс (число или имя вкладки) не указывать, то список есть. То что такой синтаксис работает, я знаю, потому что у меня в другом проекте (Delphi 5 + Oracle 9) есть подобная конструкция - oExcel.Sheets[3].Select; - и она работает.

У меня две версии:
1) Где-то что-то не подключено в этом аксесе, но я проверила Tools/References подключена Microsoft Excel 11.0 Object Library
2) я что-то неправильно делаю - я пробовала по-разному: перечитала кучу хелпа, пробовала выделять ячейки, столбцы, листы, ставила круглые, квадратные скобки, писала имена, гуглила на русском и на английском, полностью копировала примеры из хелпа. как только пытаюсь конкретизировать элемент, указывая его имя или индекс, все приплыли, подсказок нет как нет - наобум писать как-то неуютно.

А можно писать без подсказки - работать будет.

Прошу прощения, за Select и Item, скорре всего я переборщила с конкретизацией. Просто хотелось привести пример, дабы не быть голословной.

Основное, что меня смущает, это даже не то что Item (хотя привычка вставлять Item для всех объектов, где возможно, взялась после того, как пришлось писать в Delphi 5, там оно не понимает, когда ему пишешь, например, oWord.Tables(1).Rows(5).Select, нужно обязательно писать oWord.Tables.Item(1).Rows.Item(5).Select) и знаю, что без Select-а можно обойтись, основное, что смутило - это то, что невозможно получить подсказку после того, как обозначаю нужный мне элемент коллекции. А писать коды генераций в Delphi приходится с открытым редактором vba, я же не могу помнить все свойства и методы :)

Тут по старинке, открываю, редактор вба, начинаю работать с объектом ексель, а тут на тебе: хоть выполнить установку нужной ширины, хоть выделить, хоть встать в начальную позицию, чтобы начать вывод данных - ничего не показывает. Привыкла, что с word-овыми объектами таких проблем не было.

в Excel 2007, Как добавить описание и подсказки параметров к пользовательской функции? Когда я начинаю вводить вызов функции для встроенной функции, Excel показывает описание и список параметров-подсказку. Я хотел бы сделать то же самое для функций, которые я определяю.

не только для мастера вставки формулы, но и в поле формулы, поэтому, если я нажму "=myFun(" на "(" всплывающая подсказка появляется так же, как и для "=average("

нет никакой помощи в помощи VBA, нет на MSDN и ни на одном из выделенных форумов Excel и VBA я не могу найти, поэтому это явно длинный выстрел.

чтобы открыть диалоговое окно аргументы функции, введите имя функции и нажмите Ctrl A . Кроме того, нажмите символ " fx " в Формуле бар:

enter image description here

не решение подсказки, но адекватное обходное решение:

начните вводить UDF =MyUDF( нажмите клавишу CTRL + Shift + A и ваши параметры функции будут показаны. Пока эти параметры имеют значимые имена, у вас, по крайней мере, есть жизнеспособное приглашение

=MyUDF( + CTRL + Shift + A

превращается в это:

Я знаю, что вы приняли ответ на этот вопрос, но теперь есть решение, которое позволяет получить окно завершения стиля intellisense, как и для других функций excel, с помощью добавления Excel-ДНК или путем регистрации сервера intellisense внутри вашего собственного добавления. посмотреть здесь.

а затем (и это только что взято со страницы github), вам просто нужно использовать аннотации ExcelDNA для ваших функций:

которые аннотируются с помощью аннотаций ExcelDNA, сервер intellisense подберет имена и описания аргументов.

enter image description here
enter image description here

есть примеры использования его только с помощью VBA, но я не слишком в своем VBA, поэтому я не использую эти части.

Я просто создаю "справочную" версию функции. Отображается прямо под функцией в автозаполнении - пользователь может выбрать ее вместо этого в соседней ячейке для инструкций.

возврат каретки улучшает читаемость с помощью wordwrap on. 2 птиц с одним камнем, теперь функция имеет некоторую документацию.

много танцев вокруг ответа. Вы можете добавить контекстную справку UDF, но вам нужно экспортировать модуль и отредактировать содержимое в текстовом редакторе, а затем повторно импортировать его в VBA. Вот пример из чипа Пирсона:Добавление Атрибутов Код

метод@will является лучшим. Просто добавьте несколько строк о деталях для людей, которые не использовали ExcelDNA раньше, как я.

есть две версии, одна для 64, проверьте версию Excel. Для моего случая я использую версию 64.

откройте Excel / Developer / Add-Ins / обзор и выберите ExcelDna.IntelliSense64.XLL-модуль.

enter image description here

Также Вы можете использовать этот макрос для назначения описаний Аргументам и UDF:

кредиты Кендалл и оригинальный пост здесь. Для категории UDF

я попробовал подход @ScottK, сначала как побочную функцию моего функционального UDF, а затем как автономную версию суффикса _Help, когда я столкнулся с проблемой (см. ниже). Оглядываясь назад, последний подход в любом случае лучше-более очевиден для пользователя, достаточно внимательного, чтобы увидеть подсказку инструмента, и он не загромождает функциональный код.

Я подумал, что если невнимательный пользователь просто наберет имя функции и закроет скобки, пока он подумает, появится помощь, и он будет в пути. Но сбрасывать кучу текста в одну ячейку, которую я не могу отформатировать, не казалось хорошей идеей. Вместо этого, когда функция вводится в ячейку без аргументов, т. е.

откроется окно msgBox с текстом справки. MsgBox ограничен

1000 символами, возможно, это 1024. Но этого достаточно (едва 8^/) для моей чрезмерно обманутой функции интерполяции. Если это не так, вы всегда можете открыть форму и идем в город.

на большой проблема в том, что msgBox открывается несколько раз подряд, спонтанно при работе в несвязанных частях книги. Излишне говорить, что это очень раздражает. Иногда это продолжается, пока я не получаю круговое предупреждение. Иди разберись. Если UDF может изменить формулу ячейки, I сделал бы это, чтобы заткнуться.

Я не знаю, почему Excel чувствует необходимость пересчитывать формулу снова и снова; ни автономный _Help, ни полная версия (в режиме справки) не имеют прецедентов или зависимых. Нет приложение.Летучий заявление в любом месте. Конечно, функция возвращает значение вызывающей ячейке. Может быть, это запускает recalc? Но это то, что делают UDFs. Я не думаю, что вы можете не возврат a значение.

тем временем я попробовал приложение.Подход макроопций. Довольно просто, и выглядит профессионально. Нужно решить только одну проблему. Я опубликую отдельный ответ на этот подход позже.

Читайте также: