Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 28.07.2011
Сообщений: 14

Ссылки на макросы, не зависящие от переименования книги?

28.07.2011, 14:18. Показов 3074. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Итак, есть проект в Экселе - данные и макросы - всё в одной, самодостаточной книге.

В течении разработки есть привычка сохранять книгу в виде 'Проект(версияХ.Х.Х)', где номер ХХХ постоянно увеличивается, отображая уровень модификации.

Трабла в том, что на созданной юзерской панели есть кнопка и ей назначен макрос из этой книги. Сохраняю новую версию - а кнопка продолжает АБСОЛЮТНО ссылаться на макрос в старом файле.

Как сделать так, чтобы ссылка была на макрос в ТЕКУЩЕЙ книге, независимо от её местоположения и названия?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2011, 14:18
Ответы с готовыми решениями:

Как запускать макросы на одной книге - из другой книги
Доброго вечера всем. На листе3 книги 1.xls - стоят три кнопки - на них нацеплены три простых макроса. Но вот если эти три кнопки -...

Как удалить все макросы из книги, если они есть?
подскажите как удалить все макросы из книги, если они есть?

Ссылки на книги
Нужны ссылки на сайты, где можно в онлайн режиме прочитать книги по С++ для начинающих

8
alex_g
28.07.2011, 15:26
Желательно, чтобы при открытии книги создавалась пользовательская панель инструментов, а при закрытии - удалялась. Тогда не будет проблем.
Comanche
28.07.2011, 16:04
В десятку. Тогда можно пользоваться просто ThisWorkbook.Name.
0 / 0 / 0
Регистрация: 28.07.2011
Сообщений: 14
28.07.2011, 16:48  [ТС]
Хм... Про динамическое создание пользовательского меню я не подумал. Хотя читал про это.
Точнее, я хотел обойтись без дополнительных макросов. Думал, в Экселе это можно настроить раз и навсегда.
Мля, неудобно ведь это. Макросы ведь в книге, панель тоже можно вложить... так какого фига я ещё должен мучаться с сылками на макросы и извращаться с динамическими меню, в которых свои траблы. Недоработка мелкософта... А может я пока недопонял 'идеологию' VBA...

Но всё равно, спасибо. Буду дальше копать. Может чего попроще придумаю.
0
alex_g
28.07.2011, 16:58
Успехов. Придумаешь, покажи миру.
Comanche
28.07.2011, 17:50
>> Макросы ведь в книге, панель тоже можно вложить...

А твоя панель, кстати, после вложения в книгу будет не только в ней жить - она, зараза, ещё и скопируется АВТОМАТОМ в 'Excel default workspace'. И когда через неделю откроешь Эксель (причём не открывая той твоей книги с вложенной панелью!), то панель всё равно увидишь. Вот такая чудесная логика мелкомягких ) панель, оказывается, неделю назад незаметно скопировалась в Excel.xlb - помимо того, что была вложена тобой в твою книгу. Т.е. панель не может быть 'атрибутом' конкретной книги - берите шире. Вот поэтому лучше динамического создания панели ничего и не придумаешь.

См. ссылки:
http://www.bettersolutions.com/excel/6122425202121291318235252024175/1521124191517521225212129131823.htm
http://www.jkp-ads.com/Articles/DistributeMacro04.htm

А вообще тупость, конечно.
0 / 0 / 0
Регистрация: 28.07.2011
Сообщений: 14
31.07.2011, 17:57  [ТС]
> А твоя панель, кстати, после вложения в книгу
> будет не только в ней жить - она, зараза, ещё и
> скопируется АВТОМАТОМ в 'Excel default workspace'.
> И когда через неделю откроешь Эксель (причём не
> открывая той твоей книги с вложенной панелью!),
> то панель всё равно увидишь.
> Вот такая чудесная логика мелкомягких )

Дык вот! Именно ЭТО и бесит. Дебильная логика!
Может они руководствовались своими соображениями. Такая 'офисная' философия мне - системному программисту (asm, c, c++) с пятилетним стажем - совершенно не ясна!
VBA пользую около месяца. Ну да ладно .....

Я таки придумал как минимальными телодвижениями выйти конкретно из моей ситуации (я ленивый; и принципиально не хотел извращаться с динамическими панелями):
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub ReInitUserBar()
Dim i As Integer
  With CommandBars('User_Menu')
    .Visible = True
    .Position = msoBarBottom
    .Controls(1).CommandBar.Controls(1).OnAction = 'PopUpMacros1'
    ......................................
    .Controls(9).OnAction = 'Macros9'
    .Controls(10).OnAction = 'Macros10'
  End With
End Sub
Эта процедуру я запускаю при открытии книги - она показывает моё меню (предварительно сохранённое в книге) внизу книги и переназначает для 10-ти кнопок 10 макросов по их непосредственным именам (при изменении этого меню (количество кнопок, их порядок и тип) и имён макросов, соответственно придётся править и эту процедуру). В результате кнопки после ОТКРЫТИЯ книги всегда привязаны к нужным макросам, независимо от местоположения и имени книги.

Надеюсь, кому пригодится.
0
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
31.07.2011, 22:33
А почему бы не задать Temporary:=True для панели.
Тогда её не надо уничтожать при выходе. (Это, правда, не есть хорошо в некоторых случаях.)
0
Сумрак
05.08.2011, 17:00
А не проще создать промежуточный модуль?
в Реrsonale создаешь мкрос и присваиваешь ему кнопку. а внем уже отслеживаешь что там с версиями. Рерсонал грузится с Автоматом.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.08.2011, 17:00
Помогаю со студенческими работами здесь

PHPExcel и ссылки на другие книги
Всем привет. Уже который день бьюсь с проблемой, есть таблица в екселе, несколько листов, при этом часть данных вынесена в другие файлы,...

Книги / Ссылки / Шпоры .NET
Тут я буду свои книги вылажывать. Книга "Язык C#" в формате *doc http://************.com/files/4554880 Учебник по Csharp в...

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

✅ Полезные ссылки, книги, инструменты
Подборка литературы по низкоуровневому программированию (книги, статьи, техническая документация) Смотрите также: • Инструменты...

Перенос остатков и ссылки на другие книги в Excel
знания Excel только то, что успел схватить в универе. Проблема такая: на конец месяца есть остаток, нужно чтобы при создании нового листа...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru