Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 7 ]
- svshilo
- рядовой
- Неактивен
- Зарегистрирован: 05.06.2011
- Сообщений: 5
Тема: Как создать и работать средствами VBA с пользовательской панелью.
У меня Офис 2007 (есть и 2010).
Пробовал средствами VBA создать панель и кнопку на ней, но получается создать только во вкладке Надстройки.
Я сам создал вкладку "Custom", там группу "Автозакладки" и в ней кнопку "Автозакладка".
Как сделать так, чтобы при нажатии кнопки она принимала нажатое/отжатое положение?
У меня получается это делать только если кнопка во вкладке Надстройки.
Я так понимаю, чтобы кн. запоминала своё положение при выходе из Ворда, нужно записывать настройки в реестр, а при запуске ворда - считывать. И в соответствии с этим изменять свойства кнопки и включать либо выключать макрос Автозакладок при закрытии документа.
А может уже есть готовое решение?

- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
- За сообщение: 1
Re: Как создать и работать средствами VBA с пользовательской панелью.
Почти готовое решение есть в моём блоге. Там нет только сохранения и восстановления состояния при выходе и запуске. Реестр для этого использовать не обязательно, можно обойтись шаблоном, в котором находится лента и записывать в переменные документа этого шаблона.
Вспомнил. Есть пример с сохранением состояния! http://wordexpert.ru/page/vstavka-izobr … -word-2007
Лучше день потерять — потом за пять минут долететь!
- svshilo
- рядовой
- Неактивен
- Зарегистрирован: 05.06.2011
- Сообщений: 5
Re: Как создать и работать средствами VBA с пользовательской панелью.
Спасибо за подсказки.
Я новичок, поэтому сложновато разобраться в коде примеров.
Накидал на основе примеров код как смог, автозакладки работают, состояние галочки "Автозакладки" сохраняется. Курсор переходит в нужную позицию, но при открытии документа ворд всё время ругается, что макрос не найден, хоть ты убейся. Уже всё перерыл, не пойму какой именно макрос он ищет.
Во вложении шаблон.
Post's attachmentsAvtoZakladki2.docm 21.79 Кб, 2 скачиваний с 2011-06-13
You don't have the permssions to download the attachments of this post.
- Зарегистрирован: 17.03.2010
- Сообщений: 17
- Поблагодарили: 7
- За сообщение: 1
Re: Как создать и работать средствами VBA с пользовательской панелью.
svshilo пишет:... при открытии документа ворд всё время ругается, что макрос не найден, хоть ты убейся. Уже всё перерыл, не пойму какой именно макрос он ищет.
Во вложении шаблон.
Word искал процедуру UILoading, ссылка на которую содержалась в атрибуте onLoad элемента customUI:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
onLoad="UILoading">
<ribbon startFromScratch="false">
...
Во вложении документ с исправленным файлом customUI\customUI.xml.
Post's attachmentsAvtoZakladki3.docm 21.44 Кб, 5 скачиваний с 2011-06-13
You don't have the permssions to download the attachments of this post.
- svshilo
- рядовой
- Неактивен
- Зарегистрирован: 05.06.2011
- Сообщений: 5
Re: Как создать и работать средствами VBA с пользовательской панелью.
- svshilo
- рядовой
- Неактивен
- Зарегистрирован: 05.06.2011
- Сообщений: 5
Re: Как создать и работать средствами VBA с пользовательской панелью.
а из-за чего при закрытии документа каждый раз при закрытии документа предлагается сохранить документ или нет?
Даже если ничего в документе не менял, а просто читал.
Ну первое понятно, вызывает добавление закладки при закрыти документа, но я вставил команду сохранения
Sub autoOpen()
'Чтение предыдущего состояния ленты
zakladkaChecked = GetSetting(REGAPPNAME, REGSECTION, "zakladkaChecked", False)
If ActiveDocument.Bookmarks.Exists("MyBookmarks") And (zakladkaChecked) Then
'Перейти к закладке
Selection.GoTo What:=wdGoToBookmark, Name:="MyBookmarks"
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
ActiveDocument.Bookmarks("MyBookmarks").Delete
ActiveDocument.Save
End If
End Sub
Sub AutoClose()
'
' Макрос "autoClose"
' Закрытие всех окон активного документа
'
On Error Resume Next
zakladkaChecked = GetSetting(REGAPPNAME, REGSECTION, "zakladkaChecked", False)
If (zakladkaChecked) Then
Options.AllowFastSave = False ' Запретить быстрое сохранение
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:="MyBookmarks"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
End If
End Sub
Как сделать так, чтобы окно сохранения выдавалось только если я действительно что то менял в тексте? И если после изменений нажал кнопку "Сохранить", чтобы тоже не появлялось.
- svshilo
- рядовой
- Неактивен
- Зарегистрирован: 05.06.2011
- Сообщений: 5
Re: Как создать и работать средствами VBA с пользовательской панелью.
я делал так
Sub AutoClose()
'
' Макрос "autoClose"
' Закрытие всех окон активного документа
'
On Error Resume Next
zakladkaChecked = GetSetting(REGAPPNAME, REGSECTION, "zakladkaChecked", False)
If (zakladkaChecked) Then
Options.AllowFastSave = False ' Запретить быстрое сохранение
With ActiveDocument.Bookmarks
.Add Range:=Selection.Range, Name:="MyBookmarks"
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
ActiveDocument.Save
End If
End Sub
Но тогда никогда не спрашивает сохранить изменения или нет, а иногда мне нужно закрывать документ без сохранения изменений.
Сообщений [ 7 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как создать и работать средствами VBA с пользовательской панелью.
Если у вас установлен редактор Microsoft Word, обязательно посетите форум Ворд Эксперт. Это русскоязычный портал, на котором пользователи делятся друг с другом и гостями сайта особенностями работы с данной программой. Наш сайт о Microsoft Office Word даст ответ про: антоним к слову рабочий.
Регистрация не займет много времени, для сомневающихся даже имеется иллюстрированная инструкция. В главном разделе приведены наиболее часто встречающиеся вопросы по редактору и ответы на них. Наш сайт о Microsoft Office Word даст ответ про: разделить файл по страницам.
Главной задачей портала является разработка разнообразных макросов, позволяющих доводить работу редактора до автоматизма, с легкостью производить запрашиваемые действия. Наш сайт о Microsoft Office Word даст ответ про: макрос поле со списком в exel.
На форуме вы можете найти как готовые макросы, так и инструкции по их созданию, если захотите разработать сами. Наш сайт о Microsoft Office Word даст ответ про: замена заглавной буквы на строчную в javascript.
Если же вас не устраивает ничего из предложенного и нет возможности/желания написать макрос самостоятельно, на форуме можно оставить заявку на его создание. На портале о Microsoft Office Word вы узнаете про: как вытащить фото из ворда.
На портале ведется активное обсуждение работы с программой, ее настройки, особенности работы с текстами, возможности при создании и редактировании текстов. Наш сайт о Microsoft Office Word даст ответ про: отключилось питание восстановление файла word.
Вы можете обратиться к пользователям с любым интересующим вас вопросом. Не забудьте только пояснять, какая у вас версия редактора. На портале о Microsoft Office Word вы узнаете про: можно ли в майкросовте 2003 вставлять формулы?.
Можете прописать эти данные в подписи для того, чтобы на ваш вопрос отвечающим легче было откликнуться. Наш сайт о Microsoft Office Word даст ответ про: массовая замена текста в файле.
Помимо этого на сайте вы найдете самую литературу и копилочку полезных ссылок. На портале размещена вся самая важная и нужная информация о работе с Microsoft Word. На портале о Microsoft Office Word вы узнаете про: word 2007 встроенные имена стилей.