Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с макросами 
:(
    Опции темы
midex777
  Дата 16.1.2017, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.1.2017

Репутация: нет
Всего: нет



Здравствуйте!
У меня есть следующая задача:
Записать следующие макрокоманды в шаблон при открытии которого:
− AutoNew, при запуске которой происходит отключение всех панелей и линейки прокрутки;
− AutoClose, при запуске которой происходит включение всех отключенных ранее панелей и линейки прокрутки;
− Печать, при запуске которой выполняется печать;
− Выход, при запуске которой происходит выход из программы Word без сохранения изменений в документе. 

Макросы написал в следующем виде:
AutoNew:
Код

Sub AutoNew()
With Application.CommandBars(«Status Bar»)
.Visible = Not .Visible
End With
End Sub


AutoClose
Код

Sub AutoClose()
With Application.CommandBars(«Status Bar»)
Not .Visible=Visible
End With
End Sub


Печать:
Код

Sub printDoc()
ActiveDocument.PrintOut
End Sub


Как сделать выход не разобрался.. что-то типа:
Код

Sub AutoClose()
  If ActiveDocument.Saved = False Then ActiveDocument.Save (только нужно без сохранения)
End Sub


Вопрос состоит в следующем - почему-то выходит сообщение - "invalid outside procedure" на начале любого макроса (sub AutoClose(), например)
Кавычки я уже поправил.... (файл во вложении)
Из текущих макросов работает только Печать...

Это сообщение отредактировал(а) Akina - 16.1.2017, 21:00

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  1111цваы.png 50,96 Kb
PM MAIL   Вверх
Akina
Дата 16.1.2017, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



1. AutoNew
Подумай, что будет, если некоторые панели были скрыты в момент запуска макроса?
Нужно читать информацию об имеющихся панелях и их статусах и сохранять её в коллекции, после чего отображаемые скрывать. Безусловно.

2. AutoClose
Подумай, что будет, если некоторые панели были скрыты в момент запуска скрывающего макроса?
Нужно отображать панели в соответствии с сохранёнными в коллекции сведениями. По завершении коллекцию следует очистить (но не удалять!).

3. Печать
Претензий нет.

4. AutoNew
Выход (закрытие открытых документов и выгрузка приложения) выполняется вызовом Application.Quit с соотв. параметрами. 

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

И - пользуйтесь тегом "Код".


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
midex777
Дата 16.1.2017, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.1.2017

Репутация: нет
Всего: нет



Благодарю за пояснение!

Код буду вставлять в тег Код.

Макрос выход значит такой:
Код

If ActiveDocument.Saved = False Then Application.Quit



Т.е. можно все макросы в 1 модуле прописать? Осталось понять как вызвать меню макросов при загрузке и убрать линейку и полосу прокрутки... т.е. по AutoExec, AutoNew пока так и не придумал ничего. С VB я новичёк.. 

Файл-шаблон(.dotm) прикладываю.

Это сообщение отредактировал(а) Akina - 16.1.2017, 22:12

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  PRIKAZ_1.rar 20,97 Kb
PM MAIL   Вверх
Akina
Дата 16.1.2017, 22:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Избыточное цитирование (оверквотинг) удалено.

Цитата(midex777 @  16.1.2017,  22:29 Найти цитируемый пост)
Код буду вставлять в тег Код.

Обещать - не значит жениться?  Ещё раз поправил...

Цитата(midex777 @  16.1.2017,  22:29 Найти цитируемый пост)
Макрос выход значит такой:

Документацию не прочитал, (поэтому) совет не понял. Садись, два.

Цитата(midex777 @  16.1.2017,  22:29 Найти цитируемый пост)
Т.е. можно все макросы в 1 модуле прописать?

Да. 

Цитата(midex777 @  16.1.2017,  22:29 Найти цитируемый пост)
Осталось понять как вызвать меню макросов при загрузке

В исходной задаче о загрузке речь не шла. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
midex777
Дата 16.1.2017, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.1.2017

Репутация: нет
Всего: нет



Прошу прощения... женат)))

С автозапуском сделал так, но работает только при запуске в VB, а вот при запуске документа не работает((:

Код

Dialogs(wdDialogToolsMacro).Show


А вот как с убрать\вернуть полосу прокрутки и линейку не нашёл... Ткните, пожалуйста.

Это сообщение отредактировал(а) Akina - 16.1.2017, 23:10
PM MAIL   Вверх
Akina
Дата 16.1.2017, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Цитата(midex777 @  16.1.2017,  23:34 Найти цитируемый пост)
как с убрать\вернуть полосу прокрутки и линейку не нашёл... Ткните, пожалуйста.

Сервис - Макрос - Начать запись.
Убрать или вернуть полосу прокрутки (только клавишами! без мыша! так что потренируйтесь сперва).
Сервис - Макрос - Остановить запись.
Сервис - Макрос - Макросы. 
Свежесозданный макрос - Изменить.
И изучайте...



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1488 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.