Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 03.07.2012
Сообщений: 13
1

Отследить изменение в редакторе макросов

12.07.2012, 18:42. Показов 1955. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
отследить изменение в редакторе макросов возможно отследить изменение в редакторе макросов и если да то как запустить другой
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.07.2012, 18:42
Ответы с готовыми решениями:

Отследить выбранную ячейку, без макросов (формулы excel)
Здравствуйте, пришло задание. Нужно отследить адресс выбраной ячейки, и подставить его в формулу, ...

Изменение цвета в редакторе.
Я создал подобие текстового редактора, но пока только с одной функцией: изменение цвета. Т.к. это...

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

Изменение размеров диалогового окна в редакторе
Никак не могу понять, как задать значения размеров диалоговых окон и прочих GUI объектов. Надоело...

15
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37449 / 20820 / 4281
Регистрация: 12.02.2012
Сообщений: 34,240
Записей в блоге: 14
12.07.2012, 19:12 2
А возможно излагать мысли яснее? И запятые употреблять?

Нужно проверить целостность кода?
1
1687 / 559 / 74
Регистрация: 10.04.2009
Сообщений: 9,201
12.07.2012, 19:25 3
как вариант использовать Нормал.дот, смотреть на дату его изменения, или
Цитата Сообщение от Catstail Посмотреть сообщение
излагать мысли яснее
0
1 / 1 / 0
Регистрация: 03.07.2012
Сообщений: 13
13.07.2012, 13:53  [ТС] 4
Catstail,я над излаганием поработаю...... мне нужно проверить на целисность кода после закрытия файла, или же проверить открыт ли редактор формул
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37449 / 20820 / 4281
Регистрация: 12.02.2012
Сообщений: 34,240
Записей в блоге: 14
13.07.2012, 18:05 5
Лучший ответ Сообщение было отмечено как решение

Решение

О! Проверить целостность кода можно через объектную модель VBE. Можно посчитать CRC-код для всех исходников (модулей, форм, классов). А потом сравнивать его со спрятанным в "укромном уголке" значением.

Добавлено через 4 часа 8 минут
Выкладываю наглядный пример расчета CRC-кода для одного модуля. В примере CRC-код хранится в ячейке B1 листа Лист4. Щелкните по кнопке "Пуск" - вам будет предложено установить CRC или проверить его. Сначала установите. Затем откроется код модуля. Чего-нибудь поправьте, вернитесь на первый лист, нажмите "Пуск" и снова проверьте CRC... Предупреждаю, программный доступ к проекту доводит антивирусы до бешенства.
Вложения
Тип файла: zip Задачи-VBA-26.zip (25.0 Кб, 26 просмотров)
7
 Аватар для mc-black
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
14.07.2012, 07:58 6
Цитата Сообщение от Catstail Посмотреть сообщение
Выкладываю наглядный пример расчета CRC-кода для одного модуля.
Классно, спасибище! Это твоя собственная реализация алгоритма CRC32?

Меня сразу смутила там программная реализация shr - такие грабли все из-за того, что Long - знаковый тип данных, хотя и 32bit. Почему в VBA нет беззнакового 32-bit целого? Это его недостаток. В x86 ассемблере операция shr выполняется за 1 такт, а по размеру кода например shr eax,1 занимает 2 байта. Если бы был беззнаковый тип, достаточно было бы написать Переменная = Переменная \ (2 ^ ПравыйCдвиг) и все.

Для контроля целостности VBA-проекта также можно использовать встроенную возможность - цифровую подпись проектов VBA.
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37449 / 20820 / 4281
Регистрация: 12.02.2012
Сообщений: 34,240
Записей в блоге: 14
14.07.2012, 09:25 7
Спасибо за добрые слова!

Реализация - не помню откуда взял прототип и переписал на VB.

А насчет проблем с отсутствием беззнаковых в VB/VBA... Мои принципы просты:

1) нужна возможность - реализуй (от простой реализации к сложной)
2) все работает - забудь
3) не хватает производительности - улучшай (от простого к с ложному)

про shr я благополучно забыл. Производительности хватает.
2
 Аватар для mc-black
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
14.07.2012, 11:14 8
Цитата Сообщение от Catstail Посмотреть сообщение
1) нужна возможность - реализуй (от простой реализации к сложной)
2) все работает - забудь
3) не хватает производительности - улучшай (от простого к с ложному)
Эту цитату в рамочку и в FAQ или в Правила форума, мне особенно понравилось! Ещё несколько подобных тезисов и можно озаглавить "*ть заповедей программиста". Перфекционизм может быть вреден для эффективной разработки.

Что до реализации типа Unsigned Long (назовем его uLong), то скажем я создам класс для этого типа, но в VBA нельзя как в C++ перегрузить операторы '+', '-', '/', '\', '*' и т.д. (я прав здесь?), а реализация через синтаксис методов и свойств класса будет выглядеть "экзотически", чего бы не очень хотелось.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37449 / 20820 / 4281
Регистрация: 12.02.2012
Сообщений: 34,240
Записей в блоге: 14
14.07.2012, 14:09 9
Еще раз спасибо за оценку... Да, перегружать операторы в VB/VBA, к сожалению нет возможности. Кстати, рекомендую замечательную книгу Брюса Мак-Кинни "Visual Basic - крепкий орешек". Там много интересного.
2
 Аватар для mc-black
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
14.07.2012, 16:15 10
Цитата Сообщение от Catstail Посмотреть сообщение
Кстати, рекомендую замечательную книгу Брюса Мак-Кинни "Visual Basic - крепкий орешек". Там много интересного.
Там про какой из бейсиков?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37449 / 20820 / 4281
Регистрация: 12.02.2012
Сообщений: 34,240
Записей в блоге: 14
14.07.2012, 16:34 11
Про VB. (Не VB.Net)
0
1 / 1 / 0
Регистрация: 03.07.2012
Сообщений: 13
16.07.2012, 14:03  [ТС] 12
Catstail, ваш вариант то что надо, только что за код он проставляет в листе 4.....и чутаху о методе проверки плиз....пока розобрасться сам не могу
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37449 / 20820 / 4281
Регистрация: 12.02.2012
Сообщений: 34,240
Записей в блоге: 14
16.07.2012, 14:14 13
На Листе 4 он запоминает т.н. CRC-код модуля. СRC - это, грубо говоря, вот что: по произвольной п-ти байтов любой длины строится 32-х битное беззнаковое целое, которое обладает таким свойством: любое изменение исходной последовательности дает код CRC, отличный от предыдущего.
1
1 / 1 / 0
Регистрация: 03.07.2012
Сообщений: 13
16.07.2012, 18:11  [ТС] 14
Catstail, а можно проверить програмно открыт ли редактор ВБА?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37449 / 20820 / 4281
Регистрация: 12.02.2012
Сообщений: 34,240
Записей в блоге: 14
16.07.2012, 18:26 15
Получается, что можно. Открой книгу Задачи-VBA-30.xls и щелкни по надписи. А потом открой код, вернись в Excel и щелкни еще раз...
Вложения
Тип файла: zip Задачи-VBA-30.zip (7.0 Кб, 13 просмотров)
1
 Аватар для mc-black
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
16.07.2012, 21:07 16
Цитата Сообщение от Catstail Посмотреть сообщение
Задачи-VBA-30.zip
Это сработает только если не закрыты все дочерние окна с кодом, можно сделать проще и надежней:
Visual Basic
1
2
3
4
5
6
7
Private Sub CommandButton1_Click()
    If Application.VBE.MainWindow.Visible Then
        MsgBox "vbe активен"
    Else
        MsgBox "vbe неактивен"
    End If
End Sub
1
16.07.2012, 21:07
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.07.2012, 21:07
Помогаю со студенческими работами здесь

Изменение шрифта в самодельном текстовом редакторе
Пытаюсь реализовать простенький текстовый редактор на Python 3.1 и столкнулся с проблемой -...

Отследить Изменение Аттачмента
Нужно как-то понять, менялся аттачмент или нет (у пользователя есть такая возможность). Дата...

Отследить изменение в базе
Как средством ajax отследить изменение в базе? То-есть пользователь поставил комментарий, и сразу...

Как отследить изменение БД
Доброе время суток всем кто читает это сообщение) Имеется моя прога со своей БД1 (MS SQL). Есть...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru