Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Добаить кнопку при открытии Word Добавлено: 24.01.08 11:42  

Автор вопроса:  Andrew_nik
Подскажите как можно вставить инструкцию в Normal.dot чтобі при открытии Word добавлялась кнопка в Commandbar("Standard")?

Пробовал стандартные процедуры Auto_open и Document_open - не хочет!!!

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #1
Добавлено: 24.01.08 12:14
____ Это какя-то непонятка!
____ Во-первых, надо Normal.dot открыть именно как dot.
____ Потом в процедуре Private Sub Document_Open() вставить добавку кнопки в стандартную панель. И не забыть установить признак временности, чтобы она не осталась для всех шаблонов.
____ Какой код-то у Вас?

Ответить

Номер ответа: 2
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #2 Добавлено: 24.01.08 12:40
Код следующий: Находится в ThisDocument Normal.dot

Private Sub Auto_open()
  CreateButton
End Sub

Private Sub Auto_close()
   ;DeleteButton
End Sub
'Private Sub Document_Close()
'
'End Sub
'
'Private Sub Document_Open()
'
'End Sub

Private Sub CreateButton()
Dim MyCtrl As CommandBarControl

Set MyCtrl = Application.CommandBars("Standard";).Controls.Add(1)
With MyCtrl
   .Tag = "FontSizeChange"
   .FaceId = 43
   .OnAction = "ShowForm"
   .BeginGroup = True
End With
End Sub

Private Sub DeleteButton()
   On Error Resume Next
   Application.CommandBars.FindControl(Tag:="FontSizeChange";).Delete
End Sub

Private Sub ShowForm()
  UserForm1.Show
End Sub


Насколько я понимаю Word должен при открытии подхватывать процедуру Auto_open в Normal.dot или я ошибаюсь?

Ответить

Номер ответа: 3
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #3
Добавлено: 24.01.08 15:28
____ Честно говоря, про Auto_open не знаю. Что-то было в версиях до 97 года (типа процедуры AutoExec). А вот то, что Document_Open() отрабатывает — точно знаю.
____ Заходите в редакторе Visual Basic в объект ";Document" и в выпадающем списке (General) устанавливаете позицию ";Document", а в выпадающем списке событий (Declarations) выбираете из трёх вариантов: Close, New, Open и редактор Вам сам вставит код-рыбу.
____ Переменную MyCtrl вынесите из CreateButton() и тогда утичтожать можно будет проще, через неё. А лучше бы и вообще не уничтожать, а устанавливать при создании параметр Temporary в True (будет существовать объект, пока открыт документ, а потом автоматически удалится).

Ответить

Номер ответа: 4
Автор ответа:
 Andrew_nik



Вопросов: 15
Ответов: 30
 Профиль | | #4 Добавлено: 24.01.08 16:35
Спасибо за идею с Temporary.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам