1

Тема: Как сделать макрос автозагрузочным?

Здравствуйте.
Думаю, что помочь мне легко. Просто я ковырялся сам и не нахожу.
Я записал простенький макрос - переход курсора в первую клетку таблицы.
Как сделать, что бы при открытии файла выполнялся сразу этот макрос
и я начинал печатать с этой клетки в таблице?

С уважением

Stupid is as stupid does!

2

Re: Как сделать макрос автозагрузочным?

В модуле ThisDocument документа или шаблона Normal нужно создать макрос с именем AutoOpen, из которого вызывать ваш макрос. Если создать в Normal, то выполняться будет для всех документов, если в документ, то только для этого документа.
Ознакомьтесь со статьёй по этому поводу: Описание поведения макрос AutoExec и AutoOpen в Word

Лучше день потерять — потом за пять минут долететь!

3

Re: Как сделать макрос автозагрузочным?

Здравствуйте Александр!
Вы как всегда оперативны и доброжелательны!
Спасибо за ссылку! Что ж всё так сложно то?
С уважением.

Ps.То есть присвоение макросу имени AutoExec AutoOpen ведёт
к искомому результату. И в моём случае так же достаточно
просто записать последовательность действий прямо на него...
Короче вроде получилось ещё примитивнее...
Пустяк, а приятно. Спасибо большое Александр.
Разобраться бы с вашим шаблоном автотекст sad

Отредактировано Vank (21.09.2010 09:20:47)

Stupid is as stupid does!

4

Re: Как сделать макрос автозагрузочным?

Здравствуйте!
Закончились трудности гор, начались трудности долин!
Я написал простейшийц макрос. У меня в начале файла стоит таблица из 4 колонок. ФИО, колонка для вписания этой фамилии, Возраст, и колонка для этого возраста.
Создан шаблон. Хочется, чтобы курсор перемещался сразу во вторую колонку - где и будет писаться фамилия посетителя.
Макрос записан, назван AutoOpen, при отладке благополучно выполняется
Макрос записан как макрос доступен из имярек шаблона

Sub AutoOpen()
'
' AutoOpen Макрос
'
'
    Selection.MoveRight Unit:=wdCharacter, Count:=20
End Sub

Блин при загрузке выполняться не хочет!
Но выполняется при открытии файла с поддержкой макросов созданного на основе этого шаблона!
Методом тыка вдруг нашёл. Если в проводнике щёлкнуть мышкой - не выполняется. Елс правой клавишей открыть - то выполняется.
Что есть разница? И надо писать не AutoOpen а AutoExec?
Короче дурь какая-то шаманство прямо. Пойду покамлаю дальше!
Ни фига подобного, переименование в autoexec тоже не подествовало - не выполняется. Поддержка макросов включена.

Отредактировано Vank (05.10.2010 08:39:15)

Stupid is as stupid does!

5

Re: Как сделать макрос автозагрузочным?

Вероятно, нужно использовать не перемещение посимвольное, как у вас в коде, а выделение нужной ячейки таблицы и снятие выделения (курсор ввода будет в ячейке).
Например, так:

Sub moveToCell()
Dim oTbl As table
Set oTbl = ActiveDocument.Tables(1)
With oTbl
  .Cell(1, 2).Select
End With
Selection.Collapse wdCollapseStart
End Sub

Опять же, это просто как образец на коленке. Наверное, можно сделать проще...

6

Re: Как сделать макрос автозагрузочным?

Про метод тыка - вам нужно в ассоциациях файлов назначить по умолчанию на двойной клик команду "Открыть", а не "Создать" которая установлена по умолчанию. И тогда все должно заработать так, как надо. Это делается в свойствах открытой папки или же в реестре - только вот где именно, нужно снова смотреть, давно это находил..

7

Re: Как сделать макрос автозагрузочным?

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

Н да, с наскока не получилось, но однозначно если выполнить код "написанный на коленке" у нашего
гостеприимного хозяина, то курсор становится куда надо. А как его сделать AutoOpen, если начинку
удалить, то и макрос становится GoToCellом sad

Отредактировано Vank (06.10.2010 11:23:30)

Stupid is as stupid does!

8

Re: Как сделать макрос автозагрузочным?

andrkar пишет:

Про метод тыка - вам нужно в ассоциациях файлов назначить по умолчанию на двойной клик команду "Открыть", а не "Создать" которая установлена по умолчанию. .

Вы имеете в виду настройки Windows?
Теоретически можно, конечно поискать, но почему так происходит - при открытии шаблона выполняется, а при "создании" нет?

Stupid is as stupid does!

9

Re: Как сделать макрос автозагрузочным?

Попробую объяснить на примере шаблона (файла с расширением *.dot - для dotm, я надеюсь, аналогично).
1. Открываем любое окно в Windows
2. В меню окна выбираем меню "Сервис" - "Свойства папки..."
3. В открывшемся окне переходим на закладку "Типы файлов"
4. В области "Зарегистрированные типы файлов" находим нужное нам расширение, а именно - DOT
5. В области "Сведения для расширения "DOT" нажимаем кнопку "Дополнительно"
6. В открывшемся окне "Изменение свойств типа файлов" выделяем команду "Открыть" и нажимаем на кнопку справа "По умолчанию" (текущая команда "по умолчанию" выделена полужирным и если маркер стоит на ней, то кнопка "По умолчанию" серая - недоступна.
7. Нажимаем кнопку "ОК" окна "Изменение свойств файлов"
8. Нажимаем кнопку "Применить" окна "Свойства папки"..

Теперь, если вы выберите в проводнике файл шаблона, и дважды кликните мышкой, либо нажмете "Enter" то откроется не новый документ на основе данного шаблона (а именно так происходило в вашем случае, и, естественно, никаких макросов в нем не будет) а собственно ваш шаблон с теми настройками, которые вам нужны.

ps. У себя и тех, с кем работаю - обязательно проделываю данные действия после установки офиса.
Надеюсь, что хоть немного помог вам этим советом.

10

Re: Как сделать макрос автозагрузочным?

то откроется не новый документ на основе данного шаблона

У себя и тех, с кем работаю - обязательно проделываю данные действия после установки офиса.
Надеюсь, что хоть немного помог вам этим советом.

А то.... lol Это, то и важно, что приходит понимание...Теперь понятно - на основе шаблона открывается новый
"чистый документ", а файл с поддержкой макросов открывается сам по себе, поэтому и выполняется макрос...
Теперь опять вернулось ощущение "венца творенья..." big_smile

Если не затруднит, загляните в тему "почему не сохраняются шаблоны в W2010" я там продолжу писать...
С уважением.

P\s Не хотелось бы быть занудным и бесопомощным, но...Win 7 Home edition (прошу прощения на службе
такая) - похоже убрали эту настройку.
Свойства папки то почему-то спрятали - нахожу поиском, а  на панели нет!
А в свойствах папки нет файловых ассоциаций.  mad
Есть отдельно перечисление файлов в разряде "программы по умолчанию",
там есть наши вордовские Dotы, но кроме выбора программы для открытия нет никаких возможностей и настроек...
Надеюсь, подобная настройка есть в Ultimate W7 (проверю обязательно), но похоже
это ещё одна гадость от нашего друга Билла...

В XP вроде помню был такой длинный список всех файлов...
Ну не суть...
Важно понять в чём причина, это для меня шаг вперёд  smile

К тому же я вроде нашёл вариант свой - файл с поддержкой макрососв на основе
шаблона...Файл отдельно обозначаем read only!
Кстати ещё одна гадость начиная с W07 - раньше можно было в настройках
обозначить - файл предназначен только для чтения...
Что сейчас накрутили с этой безопасностью не пойму....
Просто тупо ничего не печатается....Но, я то раньше использовал этот параметр, что бы не изменять оригинал, но писать новый документ на его основе...

Отредактировано Vank (07.10.2010 11:00:53)

Stupid is as stupid does!

11

Re: Как сделать макрос автозагрузочным?

В реестре то ключик наверняка точно остался:) Сейчас попробую найти то место, в котором это находится.. Хотя, вы можете это попробовать и сами, параллельно со мной.. Запускаете редактор реестра команду regedit и там запускаете поиск по значению парамента - ищите "Создать".. Ну и в том, что найдет, смотрите расширение файла и параметры для него..

12

Re: Как сделать макрос автозагрузочным?

Здраствуйте, не представляете как я рад вашему ответу...
Я конечно подозревал, что это очередная гадость...Дома у меня Ultimate стоит,
смутная надежда, что home с ограниченной функциональностью, так ведь и на ней
поменять нельзя...
А пока я ковырялся, в моих документах нашёлся dotx который не раскрывается на
кликанье мышой...Просто наваждение какое-то, я ведь ничего не менял.
Он расрывается правой клавишей открыть и сохраняется при нажатии  на дискету...
Может тут тоже дело в этой ассоциациии...
regedit  я конечно пойду сейчас открывать, но похоже я как тот пьяный, который под
фонарём ищет ключи, так как под фонарём виднее big_smile
С уважением.
Под фонарём ключей не нашлось. sad  Поиск по параметру создать дал
пару строчек относящихся к созданию ярлыков на рабочем столе...
Поискал на dotx dotm - ничего не ответила золотая рыбка....
У меня конечно нет уверенности, что я искал то, что действительно надо...

Отредактировано Vank (08.10.2010 11:33:00)

Stupid is as stupid does!

13

Re: Как сделать макрос автозагрузочным?

Так, приплыли....У меня теперь шаблоны не раскрываются кликаньем двойным мышки. Ядумал один sad
Как вы думаете, я кардинального ничего в самом редакторе не менял.
Поковырялся в свойствах паки и то немного - там не отображать эскизы и т.п.
Что это за хрень творится?
Ещё вношу дополнение не открываются dotx, а dotm открываются...Причём все открываются, если рядом запущен
Word 2010 с пустым документом.
Единственное место где я именно этот dotx как-то задевал, но НИЧЕГО не менял sad  - это раздел панели с программами для конкретных файлов) Ну и там он стоит этот dotx и напротив значёк Word sad
Блин а я то думал, что программы мыкой хоть я открывать умею....

Отредактировано Vank (08.10.2010 11:54:29)

Stupid is as stupid does!

14

Re: Как сделать макрос автозагрузочным?

Вчера в реестре тоже ничего не нашел по форматам 2007 и 2010 и по слову "Создать". Но точно знаю, что этот ключик есть в реестре. Может все дело в том, что у меня сборка операционки. А на работе лицензия. Но там поискать смогу теперь только в понедельник..

15

Re: Как сделать макрос автозагрузочным?

Удачи вам!
Мне только непонятно, почему для решения такой утилитарной проблемы, как открытие шаблона
приходится прикладывать так много сил и лезть явно через форточку.... Что означает что разработчик (кстати один и у MO W7 lol ) и не предполагал решать такие проблемы....
И мне немного неудобно, но как мне кажется о том как открываются эти шаблоны я нигде не нашёл...
Ну может не там и не так искал...
В любом случае, если форточки не найдёте yikes  закончим тему общими разговорами о шаблонах smile
С уважением.

Stupid is as stupid does!

16

Re: Как сделать макрос автозагрузочным?

К сожалению, решение проблемы с созданием у каждого шаблона - файла двойника потерпело крах....
Очередной файл двойник с поддержкой макросов (в котором макросы действительно выполняеются) отказался
воспроизводить автотекст из первичного шаблона...
К сожалени автотекст для меня важнее... sad
Не могу понять почему совершенно плоская Земля
не хочет стоять при добавлении 4 слона....

Stupid is as stupid does!

17

Re: Как сделать макрос автозагрузочным?

andrkar пишет:

Попробую объяснить на примере шаблона (файла с расширением *.dot - для dotm, я надеюсь, аналогично).
1. Открываем любое окно в Windows
2. В меню окна выбираем меню "Сервис" - "Свойства папки..."
3. В открывшемся окне переходим на закладку "Типы файлов"
4. В области "Зарегистрированные типы файлов" находим нужное нам расширение, а именно - DOT
5. В области "Сведения для расширения "DOT" нажимаем кнопку "Дополнительно"
6. В открывшемся окне "Изменение свойств типа файлов" выделяем команду "Открыть" и нажимаем на кнопку справа "По умолчанию" (текущая команда "по умолчанию" выделена полужирным и если маркер стоит на ней, то кнопка "По умолчанию" серая - недоступна.
7. Нажимаем кнопку "ОК" окна "Изменение свойств файлов"
8. Нажимаем кнопку "Применить" окна "Свойства папки"..

Надеюсь, что хоть немного помог вам этим советом.

andrkar хочу сказать Вам огромное спасибо за советы. Жаль, что не нашёл их раньше, столько времени мучался изменяя шаблоны, открывал шаблон (точнее файл на его основе), потом сохранял как шаблон и редактировал все встроенные блоки по-новой, потому как сохранял их в шаблоне. И так каждый раз при внесении изменений в шаблон... Столько времени убил.
А ларчик открывался просто smile

Word не может "тупить".
Он - всего лишь программа, выполняющая наши команды.