библиотеки для vba Excel

Программирование на Visual Basic for Applications
yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

библиотеки для vba Excel

Сообщение yura613 » 04.07.2006 (Вт) 16:30

Знает ли кто нибудь как создавть библиотеки для Экселя. Или где почитать можно или увидеть примеры.
Для чего это надо.Я ща практикуюсь в бухгалтерии и работаю постоянно в экселе. Написал себе несколько макросов, которые значительно облегчили мне жизнь, но не окончательно. Из за того что мне приходится работать с большим количеством одинаковых файлов(например: Отчет за такой то период, такой то фирмы), я вынуждет каждый раз копировать макросы и формы из файла в файл, а хотелось бы написать один раз, а потом все время вызывать код и форму без всей этой канители. Слышал что эту проблему можно решить при помощи библиотек. Если есть другие варианты, буду тоже рад.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.07.2006 (Вт) 16:42

Пишешь код в книге.
Файл - Сохранить как - Надстройка (xla)
Собственно всё.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 04.07.2006 (Вт) 22:53

И что потом.
Попробовал я написать код в книге. После сохранил. Расширения такого у меня не предусмотрено, пришлось в ручную сохранять. В итоге тот же файл только с другим расширением. Можно ли по подробнее этот момент и как работает.

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 04.07.2006 (Вт) 23:00

В итоге этот файл(настройка) ничем не отличается от старого екселевскго файла. Может к нему потом как то ссылаться надо или подключать ее нужно. Непонятно ))))

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 7:26

Свойство книги IsAddin = True, сохрани в \Program Files\Microsoft Office\Office\XLStart, по тексту ThisDocument меняй на ActiveDocument, выноси функционал на панель и юзай ;)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.07.2006 (Ср) 8:32

Nicky, это извращённый путь.

yura613
Тип файла "Надстройка Microsoft Excel (*.xla)" есть. Смотри лучше просто.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 8:57

GSerg извиняюсь, поторопился и не заметил что есть скрол сбоку, когда сохраняешь файл, действительно есть такой формат, но это пол беды.
Мои действия: 1 создаю книгу(example)
2 пишу в ней макрос (при нажатии комбинации клавиш выскакивае форма, с надписью "привет")
3 сохраняю эту книгу как настройку.
4 после создаю новый файл, захожу в сервис > настройки выбираю свою книгу(example), ставлю галочку напротив нее.
5 жму комбинацию клавиш... не работает...
что не так?

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 8:58

для Nicky делаю первые 2 действия(см. список действий выше)
дальше жму Alt + f11 , выбираю моя книга и в свойствах делаю addin=true. после чего возникает такая штука: все страницы куда то исчезают, а когда заходишь в меню файл сохранить так там даже возможности такой нет, все заблокировано. Где ошибка?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.07.2006 (Ср) 9:06

А каким же образом excel узнаёт, что при нажатии этих клавиш надо что-то запустить?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 9:10

2yura613: Сначала сохрани, потом поставь true, потом еще раз сохрани :)

2GSerg: В чем _принципиальная_ разница?

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 10:50

GSerg
я делал пример:создал меню, на меню создал кнопку, которая запускала макрос. После сохранил эту книгу. И при открытии любой книги у меня везде есть мое новое меню и новая кнопка. В любом фале я нажимаю эту кнопку и он запускает макрос, но при этом сразу же открывается файл в котором сохранена и форма и макрос. Я думал файл сохраненный как настройка, работает по такому же принципу, единственное отличие только в том что при это не открыватся файл с сохраненной в ней формой. А оказывается нет.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.07.2006 (Ср) 10:51

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

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 11:21

мои действия:
1 создаю книгу
2 альт ф11 создаю макрос
3 сохраняю книгу как настройка
4 создаю новую книгу
5 подключаю в ней (сервис настройки)книгу с макросом
6 итог- не работает...
где ошибка? в примере с меню Эксель все знает куда идти и что запускать, в этом примере не знает.

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 11:33

Nicky
Все равно не получается. Создал файл, вставил макрос, сохранил.
После открыл его залез в меню Альт Ф11 выставил Тру, и опять тоже самое. Решил может это в другой книге(без макроса) надо выставлять такое свойство, и опять тоже самое, сохранить невозможно

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.07.2006 (Ср) 11:43

У книги есть событие open...
В это событии настройка должна создавать свои панели инструментов и/или привязки к клавишам... что, имхо, очевидно...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 11:43

Теряю мысль. Что не получается? Сохранить как IsAddin или повесить горячую клавишу? Если сохранить, жми дискетку в редакторе VBA

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 11:45

2GSerg: и все-таки, в чем?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.07.2006 (Ср) 11:48

В том, что удаление гланд через рот удобнее и правильнее.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 12:15

Nicky
и вообще путь \Program Files\Microsoft Office\Office\XLStart открыт только для чтения. Я же как ника не дома сижу.

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 12:20

GSerg
именно так и написано, в событии Опен записан макрос который присваивает комбинации клавиш макрос. В этой книге работает(в книге с макросом), а в новой книге не работает(при этом выполнена вся процедура, сохранить как... и тд.).

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.07.2006 (Ср) 12:22

интересно, как же присваивает, и в чём же макрос...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 12:29

этот код в исходном файле работает замечательно:
Private Sub Workbook_Open()
With Application
.OnKey "^r", "openFrm"
End With
End Sub


изначально было написано:

Public Sub Auto_Open()
...
End Sub
но такой вариант немного глючит

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 12:29

yura613 писал(а):Nicky
и вообще путь \Program Files\Microsoft Office\Office\XLStart открыт только для чтения. Я же как ника не дома сижу.

Сервис - Параметры - Общие - Каталог автозагрузки
2GSerg: Это кому как...
Последний раз редактировалось Nicky 05.07.2006 (Ср) 12:32, всего редактировалось 1 раз.

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 12:30

И вообще, пришло время сказать: книгу в студию

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 12:35

yura613 писал(а):этот код в исходном файле работает замечательно:
Private Sub Workbook_Open()
With Application
.OnKey "^r", "openFrm"
End With
End Sub


изначально было написано:

Public Sub Auto_Open()
...
End Sub
но такой вариант немного глючит

Указывай имя книги с макросом

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.07.2006 (Ср) 12:37

Не надо ничего указывать...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 12:51

GSerg писал(а):Не надо ничего указывать...
Признаю

2yura613: книгу в студию

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 13:07

а вот и книга
Вложения
example.xls
жмите Ctrl + r
(37.5 Кб) Скачиваний: 77

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 05.07.2006 (Ср) 13:15

Открыл файл, создал еще 5, на любом работает

yura613
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 12.06.2006 (Пн) 15:49
Откуда: Минск

Сообщение yura613 » 05.07.2006 (Ср) 14:24

NickyМожно поэтапно твои действия, может я пойму где моя ошибка

След.

Вернуться в VBA

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

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

    TopList