Работа макросов из надстройки Excel

Программирование на Visual Basic for Applications
Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Работа макросов из надстройки Excel

Сообщение Calvin » 18.11.2009 (Ср) 14:46

Здраствуйте, уважаемые. Перед тем как создал эту тему обратился в поиск и конкретно по моей проблеме ничего не нашел, хотя дискуссий много.
Я создал файл xla с макросами и функциями, подключил его к книге (Data.xls), данные которой мне нужно обрабатывать с помощью процедур, которые находятся в надстройке. Проблема в том, что функции расположенные в надстройке видны - в разделе функций, определенных пользователем в Data.xls, а вот процедуры Data.xls не видит? В чем проблема?
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Работа макросов из надстройки Excel

Сообщение Antonariy » 18.11.2009 (Ср) 16:24

Реквестирую пример, со слов не очень понятно.
Лучший способ понять что-то самому — объяснить это другому.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 18.11.2009 (Ср) 16:56

Если из книги Data.xls вызвать диалог "Макросы", то макросы, которые находятся в подключенной к этой книге надстройке - не отображаются.
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 18.11.2009 (Ср) 16:59

Не только не отображаются, но и не работают
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 18.11.2009 (Ср) 17:05

Расшифровать слово "Реквестирую" я не могу, но я так понимаю, что нужен пример.
Нужно просто создать xla файл - в него поместить модуль и в модуль однин Sub и один Function. А потом подключить этот xla к книге, например Data.xls.
Проблема в том, что в пользовательских функциях книги Data.xls функция из настройки видна и она работает. А вот если вызывать процедуру из надстройки или ссылаться на нее из Data.xls не получается.
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Работа макросов из надстройки Excel

Сообщение Antonariy » 18.11.2009 (Ср) 23:39

ссылаться на нее из Data.xls не получается.

Если под "ссылаться" вы имеете имеете ввиду использование в ячейке, то все правильно. Процедура значений не возвращает и использоваться в ячейке не может.

Лично мне пример делать лень, в конце концов проблема у вас, а не у меня.
Лучший способ понять что-то самому — объяснить это другому.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 19.11.2009 (Чт) 9:44

ссылаться - я имел ввиду вызывать из Data.xls. Ну хватит уже учить тут всех правильно задавать вопросы. Ну неужели непонятно, что процедуры не видны из Data.xls.
Блин, если в таком ракурсе будут "пытаться помогать", то людям просто не захочется участвовать в форуме. Просто уже издевательство какое-то. По-моему и так все ясно....я блин и с одного бока спросил и с другого....ну как еще спрашивать.....может я не могу четко терминами выражаться, но несколько вариантов моего вопроса все-таки говорят о чем-то.
Не губи пожалуйста желание ко всему этому.
Знаю, что еще сейчас GSerg подключится и будит гнобить - изъясняйтесь правильно. Но если отключить придирчивость к словам других, думаю, что все станет понятно.
Antonariy я тебе благодарен, что ты пытаешься помочь....просто не гноби меня
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Работа макросов из надстройки Excel

Сообщение Antonariy » 19.11.2009 (Чт) 12:00

ссылаться - я имел ввиду вызывать из Data.xls.
Вызывать можно по-разному. Где пример вызова?
Ну хватит уже учить тут всех правильно задавать вопросы.
Понимая бесперспективность этого занятия, я сразу попросил пример.
Ну неужели непонятно, что процедуры не видны из Data.xls.
Понятно. Не понятно почему. Где пример объявлений?
людям просто не захочется участвовать в форуме
Разные участники имеют разную значимость™ для форума. В отдельных случаях невелика потеря.
Просто уже издевательство какое-то. По-моему и так все ясно....
Так то по-вашему… А по-моему, издевательство это упорные попытки объяснить что-то на пальцах, не владея терминологией. "Вызывать" может иметь много значений, в устах не владеющего терминологией это количество умножается на два, а правильное значение принимает рандомный характер. Чтобы не гадать и не тратить время на словоблудие, я и попросил пример.
Знаю, что еще сейчас GSerg подключится и будит гнобить - изъясняйтесь правильно.
GSerg, вероятно, никогда уже не подключится, а я еще ничего и не начинал.
Antonariy я тебе благодарен, что ты пытаешься помочь....просто не гноби меня
Будете продолжать учить меня, как отвечать на вопросы, или таки родите эти два файла? Это будет лучшей благодарностью.
Лучший способ понять что-то самому — объяснить это другому.

dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский

Re: Работа макросов из надстройки Excel

Сообщение dormouse » 19.11.2009 (Чт) 13:15

кажется, я догадался, о чём идёт речь :)

я создал книгу Книга1. открыл редактор VBA. вставил новый модуль и написал туда:
Код: Выделить всё
Sub suba(a As String, b As String)
a = b
End Sub


Function fub(a As String, b As String) As String
fub = a & b
End Function

затем сохранил книгу Книга1.xla в папке по умолчанию AddIns

создал новую книгу. Открыл меню Сервис-Настройки. там в списке нашёл Книга1 и поставил на ней флажок
заполнил несколько ячеек в листе и одной ячейке попытался вставить формулу. выбрал из списка формул "Определённые пользователем". Там перечислены все функции из надстроек. среди них нашёл свою fub. suba там не было. после выбора функции диалог построения формулы предложил ввести два параметра: A и B. я сослася на ячейки на листе и в результате получил конкатенацию содержимого этих двух ячеек.

довольно интересно.. никогда не пользовался этой штукой... может в будущем пригодится :)

мои выводы. надстройка позволяет использовать в книге свои уникальные пользовательские расчёты, не предусмотренные микрософтом. и предоставлять обычному пользователю эти расчёты в стандартном интерфейсе экселя. Но. Суть любой функции (и в VBA и в экселе) - получить исходные данные и выдать результат расчёта. процедура отличается от функции тем, что результат не возвращает. в интерфейсе экселя таких операций тоже не может быть. они бессмысленны. требовать от настроек предоставлять процедуры - бессмысленно. они могут там использоваться для внутренней работы надстройки, для разветвления логики программы. но напрямую пользователю они доступны не будут, что тоже может быть полезно
VBA, MSA97

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 19.11.2009 (Чт) 17:33

Книга xla мне нужна для того, чтобы из нее сделать книгу макросов. Чтобы многие пользователи смогли из своих рабочих книг, подключив надстройку, запускать макросы из надстройки. Вот и все
В книга макросов (*.xla) например вот такой код
Код: Выделить всё
Public Sub НеВажноЧтоЭтотМакросДелает()
msgbox "Выполнено"
end Sub

ну а функция, про которую я написал, находится в этом же модуле.
Пусть она будет любой
Код: Выделить всё
Function MyFunc(a as integer, b as integer)
MyFunc=a+b
end function

Я просто говорю, что книга Data.xls в своих пользовательских функциях видит MyFunc.
А вот из книги Data.xls из макроса
Код: Выделить всё
Sub SubData()
Call НеВажноЧтоЭтотМакросДелает
end sub

невозможно запустить макрос, который находится в надстройке.
У меня нет пока файла. У меня есть книга макрос в xls. там много чего....смысла нет выкладывать, если ни дин Sub не вызывается.
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 19.11.2009 (Чт) 17:39

Antonariy - это ты про меня имеешь ввиду "не велика потеря?" Честно говоря я бы никому не стал такое говорить. Тем более я не первый год на форуме, да и темы мои неглупые, т.к. работа моя связана с реальной практикой в компании, а не какая-то контрольная 11-го класса по информатике.
Я теба прошу....ну хватит на меня наезжать ....
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

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

Re: Работа макросов из надстройки Excel

Сообщение Денис » 20.11.2009 (Пт) 10:47

Antonariy ... ну хватит на меня наезжать ....

Модераторам на заметку. :wink:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 20.11.2009 (Пт) 11:04

Жаль, что никто не может помочь. А на счет последнего ответа, то я еще не зашел в тему, которую я разместитл, но уже почему-то знал, какого характера будет помощь. Ну чтож, извините, что тема была неактуальной и спровоцировала столько ненужных дискуссий.
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Работа макросов из надстройки Excel

Сообщение Antonariy » 20.11.2009 (Пт) 11:45

Antonariy - это ты про меня имеешь ввиду "не велика потеря?"
Если я имею ввиду кого-то конкретно, то я не стесняюсь писать об этом прямо.

Жаль, что вы не хотите помочь мне помочь вам.
Вас всего лишь попросили написать пример, чтобы указать ошибку пальцем, а не гадать на кофейной гуще, а вы тут истерику развели, заслугами потрясаете. Если раньше мне было все равно, то теперь уже интересно, почему вы делаете это, а не то, что вам совтуют? Вам лень?
Лучший способ понять что-то самому — объяснить это другому.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 20.11.2009 (Пт) 13:17

Нет мне не лень. Мне наоборот - интересно. Все, что каксается VBA - мне интересно. (заслуг никаких не имею ;-)))))))))
Если можно повторю в чем проблема:
В книге Data.xls в модуле1 есть процедура SubData, которая вызывает процедуру, находящуюся в подключенной к Data.xls надстройке "Книга Макрос.xla"
Код: Выделить всё
Sub SubData()
Call НеВажноЧтоЭтотМакросДелает
end sub

vba выдает ошибку Sub or Function not defined
в надстройке макрос находится в модуле один и ,например, там совершенно обычный код
Код: Выделить всё
Public Sub НеВажноЧтоЭтотМакросДелает()
msgbox "Выполнено"
end Sub
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Работа макросов из надстройки Excel

Сообщение iGrok » 20.11.2009 (Пт) 15:16

Calvin писал(а):...
Если можно повторю в чем проблема:
...

Calvin, ну что может быть легче - просто приложить к сообщению ФАЙЛИК в котором это уже сделано?

Чтобы можно было открыть, увидеть, и сказать в чём дело, а не продираться через дебри терминологии, выяснять что имелось в виду под тем или иным термином и пытаться составить нужный пример самому?
label:
cli
jmp label

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Работа макросов из надстройки Excel

Сообщение Alec » 20.11.2009 (Пт) 16:04

Достаточно в проект книги Data.xls подключить проект надстройки. Tools-References-Browse-имя файла надстройки
Иногда лучше вовремя остановиться...
И начать заново!

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

Re: Работа макросов из надстройки Excel

Сообщение alibek » 20.11.2009 (Пт) 16:23

Alec писал(а):Достаточно в проект книги Data.xls подключить проект надстройки. Tools-References-Browse-имя файла надстройки

Ты читал это сообщение?
Lasciate ogni speranza, voi ch'entrate.

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 20.11.2009 (Пт) 16:52

вот прикрепленные файлы
Вложения
Data.xls
(32 Кб) Скачиваний: 259
Книга Макрос.rar
(7.62 Кб) Скачиваний: 275
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Работа макросов из надстройки Excel

Сообщение Antonariy » 20.11.2009 (Пт) 17:40

У меня при подключении xla сразу появилась ошибка name conflicts with existing, неужели у вас не было?
В макросах задайте имя проекта отличное от стандартного VBAProject. И вот как это можно было выяснить из ваших объяснений? :wink:
Лучший способ понять что-то самому — объяснить это другому.

Alec
Бывалый
Бывалый
 
Сообщения: 275
Зарегистрирован: 31.08.2008 (Вс) 0:15
Откуда: Ростов-на-Дону

Re: Работа макросов из надстройки Excel

Сообщение Alec » 20.11.2009 (Пт) 17:48

alibek писал(а):Ты читал это сообщение?

К чему это?
Antonariy писал(а):У меня при подключении xla сразу появилась ошибка name conflicts with existing, неужели у вас не было?
В макросах задайте имя проекта отличное от стандартного VBAProject. И вот как это можно было выяснить из ваших объяснений? :wink:

Попробовать, потом
Antonariy писал(а):В макросах задайте имя проекта отличное от стандартного VBAProject.

и в будущем не забывать менять имя :D
Иногда лучше вовремя остановиться...
И начать заново!

Calvin
Постоялец
Постоялец
 
Сообщения: 409
Зарегистрирован: 21.01.2003 (Вт) 12:13
Откуда: Sebastopol

Re: Работа макросов из надстройки Excel

Сообщение Calvin » 20.11.2009 (Пт) 18:38

Спасибо огромное....дествительно все работает....с таким в первый раз сталкиваюсь :D
-Whose the motocycle, is this? -It`s a chopper, baby! -Whose chopper is this? -Zed`s! -Who is Zed? -Zed`s dead, baby, Zed`s dead! :-D

holopyt
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 09.08.2011 (Вт) 11:03

Re: Работа макросов из надстройки Excel

Сообщение holopyt » 09.08.2011 (Вт) 11:22

Извеняюсь если что...

У меня не работает.. exel 2003 sp3

Незнаю что и делать переименовал все уже. Не видно процедур и все...
Хочу создать книгу макросов и повесить их на кнопки доступные изл любой открытой книги...
Вложения
Macro.rar
(4.78 Кб) Скачиваний: 214

holopyt
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 09.08.2011 (Вт) 11:03

Re: Работа макросов из надстройки Excel

Сообщение holopyt » 12.08.2011 (Пт) 9:31

Ну сжальтесь ))))))

K0GG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 28.02.2011 (Пн) 14:26
Откуда: Москва

Re: Работа макросов из надстройки Excel

Сообщение K0GG » 22.08.2011 (Пн) 14:49

holopyt
- размести Macro.xla по пути
C:\Documents and Settings\Имя_пользователя\Application Data\Microsoft\Excel\XLSTART\
и переезапусти Excel.
А зачем тебе xla, что в 2003 Excel разве нет личной книги макросов PERSONAL.XLSB ?
K0GG
"Omnia ab uno et in unum omnia"
_____
http://gorkavchukkg.narod.ru


Вернуться в VBA

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

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

    TopList