некоторые проблемы Excel 2007

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

KOSH
Сообщения: 3
Зарегистрирован: 14 ноя 2007, 14:18

Ситуация
имеется макрос. башой башой, который и обрабатывает данные, и переразбивает их, а главное - вставляет в определенном порядке на листы. выравнивает все это дело, сам рисует ко всему этому рамочки, заполняет эти рамочки и выводит на печать (применял для спецификаций)
этот макрос был создан рекодером и очумелыми ручками в excel 2003
при переносе файла в 2007 версию работа с графическими объектами пошла некорректно, выдает ошибки типов, значений и прочие трудновразумительные вещи. Подчеркиваю, именно этот макрос в 2003 работает как часы,все рисует и понимает.
и Вот тут столкнулся с траблой.
попытался записать те же команды рекордером и перевести прогу на новый язык (если там что-то поменялось), а макрорекордер 2007 екселя не видит работы с графикой вообще, и еще много чего не видит.
поясняю
включаем запись, рисуем на листе линии картинки, хоть мадонну с младенцем. заходим в макрос - пусто!!! (длинные ругательства)
есть подозрения что неподгружен какой-то модуль либо еще чаво
знающие люди, подскажите
p.s. не являюсь профессионалом, макросы пишу от природной тяги и лени, поэтому бошая просьба писать попонятнее
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

А макросы в книге включены?
Excel 2007 "заботливо" их отключает по умолчанию
и выводит скромное окно вверху, что макросы отключены и если все-таки хотите включить, то вот вам кнопка для включения.

Это естественно - при определенном уровне безопасности - среднем.

Excel2003 и ниже, как мне помнится, не пускали пользователя модальным окном-вопросом, включать макросы или нет, и честно мучили пользователя, пока тот не сделает выбор.
А здесь выбор делает сам Excel, причем в пользу отключения.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Avsha, KOSH же пишет что у него макрос
выдает ошибки типов, значений и прочие трудновразумительные вещи
- т.е. однозначно запускается.
Возможно здесь проявляются отличия объектной модели 2007 офиса от 2003.
Они есть и довольно значительные. Часть старых объектов и методов заблокирована
или удалена. Тот же FileSearch или коллекция CommandBars... ;)
А вообще спецификации IMHO правильнее делать в MS WORD ...
Но уж если используете EXCEL явно лучше прочерчивать таблицы используя .Borders
чем применять графику. Она кстати чрезвычайно "утяжеляет" файлы ...
KOSH
Сообщения: 3
Зарегистрирован: 14 ноя 2007, 14:18

не ребят. попытку нарисовать стандартную чертежную рамку обводя ячейки ексель мне кажется не совсем толковым, тем более что время от времен находятся какие-нибудь новые госты, нарисовать рамку программируемыми линиями гораздо проще, "тяжесть" файла не пугает.
вчера проверил поконкретнее. например свойство .ReadingOrder = Context не принимает (для объектов Shapes.SelectAll)
а раньше применял
возможно что действительно отрубили эти свойства.
главное в чем проблема - рекордер не записывает графику, если б писал, поковыряться да переделать не проблема...
проблема в том что не пишет он графику. (опять ругательства)
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

to Aent
-------------
да махнул,
действительно... редактор макросов работает вне зависимости от того, включены макросы в книге в данный момент, или нет.

to KOSH
-------------
предлагаю следующий путь решения вашей проблемы...
установите виртуальную машину с 2003 excel-ем и подсматривайте/копируйте оттуда код.
измененные свойства 2007-ого изучайте уже в справке 2007.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

&quot писал(а):установите виртуальную машину с 2003 excel-ем и подсматривайте/копируйте оттуда код
Так у KOSH код в 2003-м уже записан макрорекордером ;)
Проблема как я понял с переносом ;)
К сожалению, не имею сейчас возможности посмотреть на 2007 офис
KOSH
Сообщения: 3
Зарегистрирован: 14 ноя 2007, 14:18

to Aent
правильно поняли. макрос написан и работает в 2003-ем (кстати псиал в исходном сообщении :) )
при переносе не все легло ровно, так сказать.
главное что хотелось бы понять - как бы сделать так, чтобы макрорекордер 2007 екселя видел бы побольше, работу с графикой, надписи и прочее.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

to KOSH
если вам нужно СОЗДАТЬ НОВЫЙ код - то мы уже выяснили что макрорекордер в 2007 полностью не пишет все объекты.

Если вам необходимо ПОДПРАВИТЬ СУЩЕСТВУЮЩИЙ код в VBA
(повторюсь) тогда смотрите новые свойства объектов в VBA в справке и окне Watches - вживую и подправляйте код.
Запускайте макрос на выполнение и проверяйте пока он не станет РАБОТОСПОСОБНЫМ.
Макрорекордер, как я понимаю, здесь не нужен.
Макрорекордер выводит на используемые объекты, их свойства и метода, а их изучить и правильно задать в макросе уже задача разработчика.

Кстати,
конструкцию из линий можно нарисовать один раз-как шаблонное решение,
а затем копировать ее вместе с диапазоном на другое место - копирование диапазона макрорекордер пишет.
packer
Сообщения: 17
Зарегистрирован: 16 ноя 2007, 13:00
Откуда: Ekaterinburg
Контактная информация:

Пардон за офф.
Плз, кто в теме, посоветуйте что-нибудь стоящее почитать по VBA в Офисе-2007, и, скорее всего, только в Экселе. Конечно, куча строк-столбцов это здорово, но я, черт побери, расстроился, когда мой макрос, кот-й у меня в 2003-м отлично робил, а в 2007-м отработал частично. Может есть уже статьи какие по предмету стоящие? Сам пока себе 2007-й не ставил, просмотрел книжку нашего изд-ва про Эксель-2007 (уровень книги навскидку оценю как "говна кусок") и пока не понял, где еще плюсы, а винда у мну XP и Висту не хочется.
ЗЫ Ждать книги Уокенбаха не предлагать)))
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

to packer
--------------
У меня все макросы в 2007-ом заработали,
кто сразу-95%, а кто после некоторой правки.

Читать книги можно - но это все как-то теоретически,
Предложение простое - практически открывать книги в 2007 и подправлять что где не заработало.

Особых преимуществ в 2007-ом перед предыдущими версиями не вижу.
Минусы:
Пришлось собрать свою собственную панель быстрого запуска как в 2003 -
получился симбиоз панелей "Стандартная" и "Форматирование" из 2003-го.
ленточное меню - свернул и практически им не пользуюсь, в основном это тоже меню Файл/Правка/Вид в 2003, только к которому надо заново привыкать.
Плюсы:
Появилась контекстная всплывающая панель управления.
Но подредактировать на ней кнопки у меня не получилось.
Новые листики создаются одним кликом :)

А так - тот же Excel.

Предлагаю продолжить тему обсуждением...
кто как прижился в 2007-ом,
что хорошего нового и что не очень,
кто на какие ограничения еще наткнулся - и как победил.
Ответить