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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2012, 19:04   #1
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию Можно ли привязать работу процедуры на VBA к событиям?

например к часам или аппаратным прерываниям?
RISagitov вне форума Ответить с цитированием
Старый 06.08.2012, 22:22   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Так к событиям, или к часа с прерываниями?

К событиям (типа изменения ячейки, активации листа, открытию файла) - можно
К часам - тоже (запускать макрос в нужное время через Application.OnTime)
К прерываниям - нет (да и зачем? и как вы себе это представляте?)
EducatedFool вне форума Ответить с цитированием
Старый 07.08.2012, 10:13   #3
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Так к событиям, или к часа с прерываниями?

К событиям (типа изменения ячейки, активации листа, открытию файла) - можно
К часам - тоже (запускать макрос в нужное время через Application.OnTime)
К прерываниям - нет (да и зачем? и как вы себе это представляте?)

к таймеру например,
каждые 55 мл опрос чего то..
RISagitov вне форума Ответить с цитированием
Старый 07.08.2012, 10:45   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Так Вам ответили:
Цитата:
Сообщение от EducatedFool Посмотреть сообщение
К часам - тоже (запускать макрос в нужное время через Application.OnTime)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 07.08.2012, 11:32   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Так Вам ответили:
Если что, это совсем разные вещи

Цитата:
к таймеру например
А в защищённом режиме (в котором работает Винда) есть аппаратные прерывания?
Вам бы матчасть изучить для начала...
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 07.08.2012, 11:42   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Цитата:
Если что, это совсем разные вещи
Не понял? В чем разные?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 07.08.2012, 11:57   #7
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
Не понял? В чем разные?
срабатывание аппаратного прерывания таймера происходит при получении сигнала на специальную ногу контроллера прерываний (ноне как-правило находится внутри процессора) и вызывает прерывание выполнения программы: процессор останавливает выполнение текущего процесса и выполняет процедуру обработки прерывания, а потом возвращается к выполнению старого процесса.

в случае с OnTime-ом работает конкуренция между процессами. т.е. процесс с более высоким приоритетом отложит выполнение данной процедуры до окончания своей работы.

В чём разница: в случае с прерыванием таймера обработка выполняется синхронно, через одинаковые промежутки времени, а в Экселе как-таковой синхронности и нет. Промежутки между выполнениями варьируются. в этом и сложность реализации задач реального времени под Win.
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 07.08.2012, 12:03   #8
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

Цитата:
Сообщение от DiemonStar Посмотреть сообщение
Если что, это совсем разные вещи



А в защищённом режиме (в котором работает Винда) есть аппаратные прерывания?
Вам бы матчасть изучить для начала...
разве нет недокументированных возможностей?!
лазейки всегда оставляют!
RISagitov вне форума Ответить с цитированием
Старый 07.08.2012, 12:07   #9
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Эксель тоже считывает аппаратный таймер. А уж приоритеты процессов... Против силы не попрешь Вы правильно заметили:
Цитата:
в этом и сложность реализации задач реального времени под Win.
Либо хотим многозадачности и миримся с этим, либо выделяем всю задачу отдельному устройству, из к-рого получаем в операционку только вывод результатов.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 07.08.2012, 12:10   #10
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

RISagitov, VBA - это язык высокого уровня. Никакие недокументированные возможности Вам не помогут. Тут Вам ассемблер больше подойдет:-)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как можно привязать сопирование к временному периоду? zander Microsoft Office Excel 1 12.02.2009 12:44
Ребята не подскажите где можно найти удаленную работу? slips Фриланс 1 10.11.2008 17:06