Запись нового макроса другим макросом

Программирование на Visual Basic for Applications
Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Запись нового макроса другим макросом

Сообщение Владимир7 » 11.05.2009 (Пн) 16:44

Добрый день уважаемые эксперты! Может существует положительный ответ на такой вопрос:
Можно ли включить в Excel запись нового макроса другим уже записанным ранее макросом?
Если таковое возможно, то сразу дополнительное усложнение вопроса: во время записи макроса возможно ли продолжение выполнения первого пускового макроса?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Запись нового макроса другим макросом

Сообщение alibek » 11.05.2009 (Пн) 17:31

Что значит "включить запись макроса"? Если программно создать новый макрос, то можно. Если именно записать последовательность операций, как макрос, то нельзя.
Lasciate ogni speranza, voi ch'entrate.

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 11.05.2009 (Пн) 23:24

Включить запись макроса - имеется в виду действие через пункт меню Excel 2007 "Вид - Макросы - Запись макроса", т.е. так вручную мы включаем автоматическую запись нового макроса. Можно ли подобное включение выполнить программно?

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 11.05.2009 (Пн) 23:28

То что программно можно создать новый макрос это известно.

GDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 23.10.2008 (Чт) 16:15

Re: Запись нового макроса другим макросом

Сообщение GDK » 04.06.2009 (Чт) 12:39

Может быть попробовать узнать команду, которая включает запуск рекордера и запустить её? Или типа программно "нажать на кнопку Запись Макроса"?

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 05.06.2009 (Пт) 23:01

вот вот - программно "нажать на кнопку Запись Макроса"
об этом и вопрос

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Запись нового макроса другим макросом

Сообщение arvitaly » 05.06.2009 (Пт) 23:30

Можно ли включить в Excel запись нового макроса другим уже записанным ранее макросом?


Не очень понятен смысл? Тебе нужно записать что будет делать человек или добавить в Макросы - новый макрос?

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 06.06.2009 (Сб) 22:46

нужно записать что будет делать человек.

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Запись нового макроса другим макросом

Сообщение viter.alex » 07.06.2009 (Вс) 17:52

Владимир7 писал(а):нужно записать что будет делать человек.

Любой keylogger, а потом расшифровывать чего он там нанажимал.
А попросить человека самому включить макрос на запись?
Лучше день потерять — потом за пять минут долететь!

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 08.06.2009 (Пн) 10:13

Уважаемый Alibek дал исчерпывающий ответ на мой вопрос:
"Если программно создать новый макрос, то можно. Если именно записать последовательность операций, как макрос, то нельзя." Задачу анализа действий ученика-пользователя можно решить разными способами и лучше всего закрыть эту тему, удалив её через время. Всем экспертам спасибо за внимание.

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Запись нового макроса другим макросом

Сообщение arvitaly » 08.06.2009 (Пн) 12:02

Если именно записать последовательность операций, как макрос, то нельзя.

Можно, вечером покажу

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Запись нового макроса другим макросом

Сообщение arvitaly » 09.06.2009 (Вт) 2:28

Не совсем к первому вопросу автора но зато к следующему.

Очень далеко от идеала, но на конкретном рабочем месте работать будет. И еще - это далеко не единственно - возможная реализация, а уж возможностей просто миллион.

Вот этот код в книгу (либо за которой нужно следить, либо в XLSTART скопировать свою).
Код: Выделить всё
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Workbook_Activate()
    ActiveWorkbook.Application.SendKeys "%tvy"
    Sleep 700
    Dim cm As CommandBar
    Dim cmc As CommandBarControl
For Each cm In Application.CommandBars
    If cm.Name = "Stop Recording" Then cm.Visible = False: cm.Enabled = False
    For Each cmc In cm.Controls
        If cmc.Caption = "Остановить запись" Or cmc.TooltipText = "Остановить запись" Then cmc.Visible = False: cmc.Enabled = False
    Next
Next
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ActiveWorkbook.SaveCopyAs "d:\spy\" & "rm_" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & "_" & Hour(Time) & "_" & Minute(Time) & "_" & Second(Time)
End Sub

Private Sub Workbook_Open()
    Application.IgnoreRemoteRequests = False
End Sub


Exeшник нужно запустить и держать включенным до открытия книги

Кстати кто-то тут недавно искал как менять заголовок у нового офисного документа
Прошу сильно не ругать - знаю что криво, но пригодится может :D
Вложения
RecordMacro.rar
(5.78 Кб) Скачиваний: 121

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 09.06.2009 (Вт) 12:15

Ваше решение arvitaly конечно не полное:
1.Требуется внешний файл; 2.Запуск записи макроса всё равно необходимо делать вручную; 3.Одного VBA недостаточно.
А то, что возможностей просто миллион Вы безусловно правы - до этого только мне теорию надо изучать ещё и ещё.

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Запись нового макроса другим макросом

Сообщение arvitaly » 09.06.2009 (Вт) 12:35

2.Запуск записи макроса всё равно необходимо делать вручную;


Нет. Именно в этом и есть весь прикол! Обойтись без внешнего файла мне пока не удалось, но я уверен что это возможно.

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 09.06.2009 (Вт) 12:43

Ух ты - первый раз вижу фишку кто сейчас в "в сети" - и результат Ваш ответ сразу же.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Запись нового макроса другим макросом

Сообщение Денис » 09.06.2009 (Вт) 12:44

Владимир7
Владимир7 писал(а):Задачу анализа действий ученика-пользователя можно решить разными способами

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

Лучше установите radmin или аналогичный продукт удаленного администрирования. Зачем изобретать велосипед?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Запись нового макроса другим макросом

Сообщение alibek » 09.06.2009 (Вт) 14:52

Владимир7 писал(а):Ваше решение arvitaly конечно не полное:

И еще 4, не годится для локализованных версий.
Lasciate ogni speranza, voi ch'entrate.

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Запись нового макроса другим макросом

Сообщение arvitaly » 09.06.2009 (Вт) 15:57

И еще 4, не годится для локализованных версий.


Решение предполагалось, как я написал, не для продажи, а для конкретной задачи (в 1 офисе записывать лог изменений, например, прайса).

Владимир7
Обычный пользователь
Обычный пользователь
 
Сообщения: 59
Зарегистрирован: 13.03.2008 (Чт) 22:12

Re: Запись нового макроса другим макросом

Сообщение Владимир7 » 09.06.2009 (Вт) 21:42

Может конечно и велосипед, но radmin или аналогичный продукт удаленного администрирования не интересует.
Это уже не Excel.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList