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

Универсализм табличных надстроек

07.09.2010, 15:17. Показов 883. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос обширный, он касается и фонового режима работы макросов и отказа от привязки к директории...
1. Как построить график по табличным данным (по средствам како либо кнопки на форме, но не это главное) и главное удалить именно нужный график, если их приходится создавать и удалять за период работы с надстройкой большое количество?
2. Как, работая в нескольких файлах и листах иметь в главном файле лист отката, для каких либо промежуточных и настроечных данных?
3. Как создавая лист в новом файле, назвав его по другому,
суметь обратиться именно к этому листу?
В качестве ответов пишите свое мнение и/или Интернет ссылки на темы из этого форума. Заранее спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.09.2010, 15:17
Ответы с готовыми решениями:

Удаление надстроек
Здравствуйте. Не программист я, простите, и потому не ругайтесь, прошу, на возможную непонятливость...

Название надстроек
здравствуйте, Ворд 2016, надстройку добавляю кодом макроса, как бы саму надпись «Надстройки»...

Разработка надстроек для IE
День добрый. Я так думаю, что на этом форуме имеются программисты, которые сталкивались с...

Распространение надстроек XLA
Всем, здравствуйте. Не совсем уверен, что запостил тему туда, куда надо (тема относится как к...

3
Comanche
07.09.2010, 16:02 2
Однако, ты не написАл, про какой именно VBA идёт речь. Но наверное - про Excel VBA.
Также несколько непонятно, как связаны 'фоновый режим работы макросов и отказ от привязки к директории' с твоими тремя вопросами, да и с темой топика...

Ну да ладно )
Могу дать самые общие советы:

1. Включи макрорекордер, затем с помощью Мастера Диаграмм построй нужный тебе график. Выключи макрорекордер, и посмотри, какой VBA-код у тебя записался. Модифицируй этот код при необходимости; например - вместо явного задания диапазона ячеек для построения графика используй определение этого диапазона по UsedRange или по выбору именованного диапазона. Можешь при необходимости дополнить код 'интерактивом' - формочкой запроса и т.п. Наконец, выведи макрос на кнопку панели или на пункт меню. Книгу можешь сохранить как надстройку, или просто разместить её в папке XLSTART.

Удаление графика - примерно так:
ActiveSheet.Shapes('Диагр. 4').Delete

(т.е. в итоге можно просто работать с коллекцией Shapes)

2. Не понял, о чём ты. 'Лист отката' и 'Лист для каких либо промежуточных и настроечных данных' - это разные вещи...

Полноценный 'откат' (отмену последних выполненных операций в правильном хронологическом порядке) можно сделать только через экселевский 'Undo'; однако, undo-буфер сбрасывается при выполнении VBA-кода. ПисАть же свой собственный (полноценный!) буфер Undo - нереально.

Если же тебе просто надо хранить где-то настройки твоей программы - то почему бы не использовать INI-файл или реестр, как обычно и делается?!

3. По имени: ActiveWorkbook.WorkSheets('<имя_с_которым_ты_его_создавал>')
tomik
07.09.2010, 17:05 3
1.Да про Excel VBA (ведь речь про наДстройки)! ДА! Вот! Я и говорю, что если я наделал, для того чтобы сравнить множество графиков и присвоил им другие исключительные имена, то как, выделив нужный график определять в коде формы, которая будет вызвана, что я работаю именно с нужным графиком!!?????
Универсализм в том, что бы так не писать: ('Диагр. 4')
.............Удаление графика - примерно так:..........
..............ActiveSheet.Shapes('Диагр. 4').Delete.........
____________________________________________________
2.
.......для построения графика используй определение этого диапазона по UsedRange или по выбору именованного диапазона. Можешь при необходимости дополнить код 'интерактивном' - формочкой запроса и т.п. Наконец, выведи макрос на кнопку панели или на пункт меню......

Так и делаю!....
________________________________________________
3. Я понимаю, что создаешь проект и сразу получаешь все имеющиеся возможности, но меня интересуют принципиальные тонкие вопросы автоматизации, интерактивности и главное прямой непосредственный доступ к тем вещам, которые выполняются как бы по умолчанию, а после того как я их учту в коде я получу контроль над этими фукционнальными возможностями. Вот это меня и интересует!

Писать же свой собственный (полноценный!) буфер Undo - нереально.

Фот у меня форма с русскими подписями пунктов меню, кнопок и др....
я предполагаю хранить в файле 'Главный.XLS' 'Откат-лист5' значение строк, как в английском, так и в русском экземплярах.
Там же пусть сосредотачиваются все макросы.
А работу можно будет осуществлять с 'Книга1.XLS','Книга2.XLS',... и/или с переименованными 'Навигация по расписанию.XLS'

Вот в таком КЛЮЧЕ...: для этого нужен универсализм, ну и другим будет интересно...
___________________________________________________-

4. Как создавая лист в новом (вообще любом) файле, назвав его по другому (любое имя), суметь обратиться именно к этому листу (именно с таким именем который именноно в нужном файле)?

______________________________________________________

В качестве ответов пишите свое мнение и/или Интернет ссылки на темы из этого форума. Заранее спасибо!
Comanche
07.09.2010, 17:56 4
Ни черта не понял.
07.09.2010, 17:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2010, 17:56
Помогаю со студенческими работами здесь

Автоматическое создание меню из файлов надстроек под Word
В надстройках у меня грузится несколько шаблонов с макросами в макросах при загрузке создаются...

Инструменты разработчика Access. Библиотека программ, надстроек и справочного материала
Сайты появляются и исчезают. Такова жизнь. Но вместе с ними исчезают материалы и программы, которые...

файл надстроек "Поиск Решений" в Excel 2007
Kaк включить Поиск Решений в Excel 2007 ?...

С++ Подскажите как разобрать алгоритм цикла и добавить пару "надстроек"
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;cmath&quot; using namespace std; int main() {...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru