Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2012, 16:18   #1
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию Определение имени процедуры из нутри самой процедуры

Можно ли как нибудь определить имя процедуры, функции , модуля из нутри sub или function?
Идеально если + имя компьютера, сетевой имя, учетную запись пользователя
RISagitov вне форума Ответить с цитированием
Старый 26.09.2012, 16:34   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Можно ли как нибудь определить имя процедуры, функции , модуля из нутри sub или function?
Насколько я знаю, нет.

Цитата:
если + имя компьютера, сетевой имя, учетную запись пользователя
а вот это - запросто
примеров на форуме множество
EducatedFool вне форума Ответить с цитированием
Старый 26.09.2012, 16:46   #3
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Насколько я знаю, нет.


а вот это - запросто
примеров на форуме множество
Возможность по любому такая есть
Окно watch , то выдает,

символьная , окладочная информация где то ведь сохраняется
RISagitov вне форума Ответить с цитированием
Старый 26.09.2012, 16:52   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Копайте
http://www.google.ru/search?q=vba+ge...rent+procedure
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 26.09.2012, 17:55   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Возможность по любому такая есть
Раз вы лучше нас знаете это, - почему тогда спрашиваете, можно ли это сделать?
Делайте, раз знаете.

PS: Я как-то однажды 3 часа потратил на то, чтобы придумать как это реализовать - не нашел ничего подобного в интернете.
PPS: Не отрицаю, получить такие данные теоретически возможно.
Но, полагаю, будет столько хитрого кода, что мало не покажется.
EducatedFool вне форума Ответить с цитированием
Старый 26.09.2012, 20:35   #6
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Цитата:
Сообщение от RISagitov Посмотреть сообщение
Можно ли как нибудь определить имя процедуры, функции , модуля из нутри sub или function?
Идеально если + имя компьютера, сетевой имя, учетную запись пользователя
можно, только непонятно зачем это надо. Скорее всего вы что-то очень неправильно делаете, раз это понадобилось.
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 27.09.2012, 09:42   #7
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

Цитата:
Сообщение от nerv Посмотреть сообщение
можно, только непонятно зачем это надо. Скорее всего вы что-то очень неправильно делаете, раз это понадобилось.
У меня есть процедура public

Она запускается из всех процедур и функций

В идеале, моя процедура должна делать..

Открывает файл autoreport.txt и производит запись
Имя компьютера-Время-дата - имя процедуры

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

Каждый раз самому вписывать название процедуры утомительно

Просто пройти и распросить кто и как использует эти макросы нельзя,

Выйти на разработчиков тоже нельзя

Так что либо моим способом, либо в ide vba установить стороннюю надстройку позволяющую проводить профелирование
RISagitov вне форума Ответить с цитированием
Старый 27.09.2012, 10:31   #8
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> Каждый раз самому вписывать название процедуры утомительно

Как в таком случае Вам поможет знание имени процедуры изнутри самой процедуры?
Тут скорее надо узнавать имя ВЫЗЫВАЮЩЕЙ процедуры. Тогда в каждую процедуру достаточно дописать строку
Код:
LogMe
'вызов процедуры, которая определяет имя вызывающей процедуры и записывает в файл
Можно пойти другим путем: с помощью автоматизации VBE ( http://www.cpearson.com/excel/vbe.htm ) вставить в текст программы после заголовка каждой процедуры вызов "профилирующей" процедуры с параметром, например
Код:
Sub MySub(...)
LogMe "MySub" 'вставленная строка
'...
End Sub

Private Function MyFunc(...)
LogMe "MyFunc" 'вставленная строка
'...
End Function
Тогда все будет делаться стабильными штатными средствами, без привлечения сторонних надстроек и ковыряния стека.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 28.09.2012, 17:15   #9
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
> Каждый раз самому вписывать название процедуры утомительно

Как в таком случае Вам поможет знание имени процедуры изнутри самой процедуры?
Тут скорее надо узнавать имя ВЫЗЫВАЮЩЕЙ процедуры. Тогда в каждую процедуру достаточно дописать строку
Код:
LogMe
'вызов процедуры, которая определяет имя вызывающей процедуры и записывает в файл
Можно пойти другим путем: с помощью автоматизации VBE ( http://www.cpearson.com/excel/vbe.htm ) вставить в текст программы после заголовка каждой процедуры вызов "профилирующей" процедуры с параметром, например
Код:
Sub MySub(...)
LogMe "MySub" 'вставленная строка
'...
End Sub

Private Function MyFunc(...)
LogMe "MyFunc" 'вставленная строка
'...
End Function
Тогда все будет делаться стабильными штатными средствами, без привлечения сторонних надстроек и ковыряния стека.

Это не решение проблемы
То что вы предлагаете, Этим я уже занимаюсь,
Переедаю Процедуре ее же название как строковый параметр
RISagitov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача имени массива в переменную процедуры KORT Общие вопросы Delphi 3 14.11.2011 15:22
Использование имени процедуры в качестве параметра другой процедуры Alexey355 Помощь студентам 1 23.04.2011 13:59
закончить выполнение процедуры из тела другой процедуры Alaysor Общие вопросы Delphi 14 23.01.2011 05:26
ошибка в модуле (отсутствует определение процедуры). паскаль. semenova Помощь студентам 7 23.12.2010 23:35
Простой алгоритм с модулями (Ошибка: отсутствует определение процедуры) FYBVFPFYBC Помощь студентам 4 15.05.2010 23:33