Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2009, 09:41   #1
blacklight
 
Регистрация: 17.07.2009
Сообщений: 9
Вопрос Редактирование свойств объектов

Здравствуйте дамы и господа,

недавно решил заняться VBA и столкнулся с небольшой проблемкой.
Нужно добавить объекту Workbook несколько дополнительных свойств. Может быть кто-то знает как это делается или где почитать как это сделать?

Пока пробовал решить это с помощью объявления переменных и макроса при автозапуске, который предлагал бы их запомнить, но мне не удалось, т.к. а) нужно чтобы эти данные постоянно хранились в WorkBook и б) у каждой книги они должны быть своими (не обязательно разными)...

(Вариант с записью в ячейку при создании новой книги не подходит =)

Заранее спасибо!

С уважением,
blacklight.
blacklight вне форума Ответить с цитированием
Старый 17.07.2009, 15:42   #2
mc-black
Пользователь
 
Аватар для mc-black
 
Регистрация: 03.06.2009
Сообщений: 26
По умолчанию

Вообще-то можно было и в ячейки на листе записывать, просто книги Excel позволяют включать НЕВИДИМОСТЬ отдельным листам. А чтобы оно повторялось для всех новых документов, надо заменить шаблонную книгу Excel (не помню точно название и расположение), которая используется для основы всех новых документов. Если додумаюсь, как обратиться к свойству книги (которое в Файл - Свойства...), то обязательно напишу. Удачи!
mc-black вне форума Ответить с цитированием
Старый 18.07.2009, 01:20   #3
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Посмотрите в HELP описание коллекции DocumentProperties и свойство CustomDocumentProperties для объекта Workbook

Альтернативный вариант - воспользоваться коллекцией Application.Names для размещения своей информации в именах.

IMHO 1-й вариант предпочтительнее тем, что существует способ чтения пользовательских свойств рабочей книги без её открытия,
используя dsofile.dll (DSO OLE Document Properties Reader) от Microsoft для файлов классических (т.е compaund document а не xlsx и т.п ) форматов.

Последний раз редактировалось Aent; 18.07.2009 в 01:37.
Aent вне форума Ответить с цитированием
Старый 12.08.2009, 12:17   #4
blacklight
 
Регистрация: 17.07.2009
Сообщений: 9
По умолчанию

Спасибо Aent! я уже решил этот вопрос как раз с помощью CustomDocumentProperties... =)

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

То есть не проверять при открытии есть ли свойство, если ошибка -> создать свойства

, а именно отредактировать сам объект Workbook, чтобы когда кто-то создает новую книгу -> она сразу имеет свойства А и Б, как например, name, codename, author и прочие...

Спасибо!

С уважением,
blacklight.
blacklight вне форума Ответить с цитированием
Старый 12.08.2009, 15:09   #5
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Создавайте книгу на основании шаблона (.xlt), который уже содержит весь набор требуемых пользовательских свойств
Можно попытаться заменить стандартный шаблон, но особого смысла я в этом не вижу так как пользователь всегда может создать
книгу на основе своего шаблона.
А чем вас не устраивает создание свойства при его отсутствии ? IMHO это значительно правильнее.

Последний раз редактировалось Aent; 12.08.2009 в 15:12.
Aent вне форума Ответить с цитированием
Старый 12.08.2009, 19:26   #6
blacklight
 
Регистрация: 17.07.2009
Сообщений: 9
По умолчанию

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

Да и модуль запускается до открытия самой книги, что приводит к тому, что свойство не присваивается.

Поэтому проще сделать так чтобы оно уже присутствовало в шаблоне...

Отредактировал шаблон =) вроде работает.

Спасибо!
blacklight вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение свойств изображения Бутаков_Сергей Мультимедиа в Delphi 2 10.06.2009 18:38
Редактирование свойств форм tae1980 Microsoft Office Excel 4 22.03.2009 09:47
редактор свойств из Stringgrid Leksmaster Фриланс 3 01.03.2009 01:11
Изменение свойств файла dimonbest Win Api 7 23.02.2009 20:42
Microsoft Office Outlook : Список свойств объектов olMailItem, olTaskItem Jenya Софт 1 15.02.2008 14:58