Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для Оксана33
1 / 1 / 0
Регистрация: 03.12.2014
Сообщений: 329
Excel

Получить имя текущего макроса

28.10.2022, 12:23. Показов 2855. Ответов 23

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые форумяне! возможно ли решить такой вопрос, мне нужно получить имя макроса в котором я была, по принципу как есть клавиши ALT+X+А, которыми попадаешь в книгу макросов и как правило в тот макрос из которого выходишь

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

Благодарю!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2022, 12:23
Ответы с готовыми решениями:

Не работает wdActiveEndPageNumber (определение текущего номера страницы) при запуске макроса из Excel
Добрый день. Из екселя считаю количество слов в документе и на какой странице они находятся. Собсвенно слова считает, перечисляет, но вот...

Имя макроса через переменную
Есть динамический список с именами макросов в комбобоксе. Хотелось бы , чтобы при выборе значения из списка запускался одноименный макрос....

Получить список имен макросов текущего документа
Подскажите пожалуйста как получить список имен всех макросов текущего документа?

23
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
07.11.2022, 06:17
Студворк — интернет-сервис помощи студентам
Оксана33, я посмотрел несколько подобных тем и вывод мой и програмеров, отвечавших на эти сообщения - а надо ли это. Пришлось заняться, новым для меня, разделом работы с проектом. Если уж очень надо, то алгоритм может быть таким: т.к нет обработчика события на изменение тела макросов, то можно запомнить сами макросы и после изменений, опять же запустив макрос сравнения строк проекта при входе в него и после, решать вопрос было изменение или нет. Это очень схематично. Мои знания в этом разделе ВБА может чуточку больше ваших. Попробую ещё повозиться и подождать пока вы решите вопрос А НАДО ЛИ ЭТО.
0
933 / 366 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
07.11.2022, 10:19
Оксана33, получить автоматически - настолько сложно, что проще сказать, что нельзя
Запомнить ручками в глобальную переменную и обращаться по необходимости - легко
Пример
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Public txNameMacroCurrent$
 
Sub Main()
 
txNameMacroCurrent = "Main"
ShowCurrentMacroName
 
t1
ShowCurrentMacroName
 
t2
ShowCurrentMacroName
 
t3
ShowCurrentMacroName
 
txNameMacroCurrent = "Main"
ShowCurrentMacroName
End Sub
 
 
Sub t1()
    txNameMacroCurrent = "t1"
End Sub
 
Sub t2()
    txNameMacroCurrent = "t2"
End Sub
 
Sub t3()
    txNameMacroCurrent = "Fake t3"
End Sub
 
Sub ShowCurrentMacroName()
    MsgBox "Now Working Macro: " & txNameMacroCurrent
End Sub
0
1409 / 869 / 93
Регистрация: 08.02.2017
Сообщений: 3,719
Записей в блоге: 2
07.11.2022, 12:48
Jack Famous, ей надо, как я понял, имя редактируемого в данный момент макроса. Не особо вникал в эту тему, но кое-что в закладках болтается. Примерно представляю так реализацию: таймером (API) отслеживаем появление окна VB - редактора, допустим, по заголовку (функция FindWindow). Как только появилось окно, сохраняем активный модуль (VBE.ActiveCodePane.CodeModule), далее отслеживаем клавиатуру, как только произошел ввод - сравниваем сохраненный модуль с текущим.. В д.сл. проверка не именно макроса, а всего модуля, в котором можно вычленить макрос.
Не уверен, что все реализуемо именно так как я описал. Полезные ссылки
Как из программы управлять другой, уже запущенной программой
https://www.cyberforum.ru/blog... g1943.html
0
933 / 366 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
07.11.2022, 12:55
testuser2, ваш вариант — это вообще треш какой-то… Не в смысле "плохой", а в смысле "ради чего такая сложность"…
Сложно найти макрос по имени что-ли? Может, если давать им более осмысленные и уникальные названия, то и проблемы бы не было?…
Или, например, НЕ ЗАКРЫВАТЬ VBE, если нужно потом опять туда возвращаться…
Короче, проблема на ровном месте.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2022, 12:55

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

Получить имя текущего процесса
Приветствую! Возникло затруднение одно. Мне нужно получит имя текущего процесса, чтобы вывести его на консоль. Получить список всех...

Получить имя текущего доменного пользователя
Доброго времени суток! Ищу способ получить на IIS+PHP способ получить имя текущего доменного пользователя. Изначально попробовал через...

Получить имя директории текущего файла
Есть способ быстрее этого ?: $this= explode(DIRECTORY_SEPARATOR, __DIR__); $this = end($modname);

CoffeeScript получить имя текущего класса
Всем привет. Пытаюсь получить имя текущего класса, внутри самого класса, а точнее в его методах. class AClass ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru