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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание панели инструментов, не создается :( 
:(
    Опции темы
bAndito
  Дата 30.10.2006, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем. Вопрос у меня в следующем. Начал писать программу, она должна создавать панель инструментов на которой должны быть кнопочки. Само собой при нажатии на эту кнопочку что то должно делатся. К сожалению я так и не смог запустить программу, она на отрез отказывается создавать панельку. Упростил ее как мог. Типа создается панелька при открытии документа с одной кнопочкой и при нажатии на нее выводится сообщение "Нажата кнопочка". Но увы она все равно не запускается.

Вот собственно код всей этой программы.
Код

Private Sub Document_New()
'Открытие документа
Dim U As String
U = InputBox("Введите путь и имя откываемого документа", "Open File")
Documents.Open (U)
End Sub

Private Sub Document_Open()
 'Application.Keyboard (1049)
    'При открытии документа панели стандартная и форматирование убираются
With Aplication
 .CommandBars("Standart").Visible = False
 .CommandBars("Formatting").Visible = False
End With
'Создание новой панели инструментов Моя панель
'которая будет удалятся при закрытии приложения
With Application.CommandBars.Add(Name:="Моя Панель", _
Position:=msoBarTop, MenuBar:=False, Temporary:=True)
.Visible = True
   With .Controls
'Создание кнопки с рисунком на открытиедокумента
With .Add(Type:=msoControlButton, ID:=23)
  .TooltipText = "Открытие документа"
  .OnAction = "Key1"
End With
End With
End With
End Sub

Sub Key1()
MsgBox "Была нажата кнопка 1"
End Sub



Может кто найдет ошибку и поможет мне с моей проблемой. Заранее спасибо всем.

PM MAIL ICQ   Вверх
Izuver
Дата 30.10.2006, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

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



Если здесь ты писал этот код от руки все понятно, но если с копировал у тебя должны возникать ошибки. Исправь Aplication на Application и "Standart" на "Standard"
Попробуй вместо Private Sub Document_Open() использовать Private Sub Workbook_Open() и по всей видимости вместо Private Sub Document_New(), это в модуле ЭтаКнига(ThisWorkbook)
PM MAIL ICQ   Вверх
mihanik
Дата 30.10.2006, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Цитата(Izuver @  30.10.2006,  12:55 Найти цитируемый пост)
ЭтаКнига(ThisWorkbook) 


А по-моему у него не ехель а ворд... 

Это так?  smile 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
bAndito
  Дата 30.10.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да да да mihanik, точно подметил у меня Word.

Izuver, спасибо за твой трезвый взгляд на мою прошку. Исправил, как ты сказал Aplication на Application и "Standart" на "Standard". И о чудо... Проша создала панельку с кнопочкой  smile . Но при нажатии показывает это окошечко.

user posted image

Вы конечно извините меня за такие глупые вопросы, но просто не у кого спросить больше. Вроде процедурка обработки нажатия кнопки KEY_1 написана. Но почему то не видится или я не знаю на этом мысль заканчивается.
PM MAIL ICQ   Вверх
mihanik
Дата 30.10.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Попробуй написать так

Код

Private Sub Key1()


В аутлуке я делал так...

Код

Sub MakeMyPanel()

Dim MyPanel As CommandBar            ' моя панель инструментов...
Dim MyButton As CommandBarButton


    ' Создаём в верху активного окна панель с именем "Mihanik"
    Set MyPanel = ActiveWindow.CommandBars.add("Mihanik", 1, False, False)

    ' Создаю на моей панели кнопки...
    Set MyButton = MyPanel.Controls.add(msoControlButton, 1, "Start1", 1, True)
    MyButton.Caption = " About Me  "
    MyButton.OnAction = "AboutMe"

    ' Делаем панель видимой
    MyPanel.Visible = True

End Sub

Sub AboutMe()
    MsgBox "(c) Mihanik 2003" & vbCrLf & "Russia"
End Sub





--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
bAndito
Дата 30.10.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ты сразу создаешь панель, а я создаю панель при открытии документа. Попробую вечерком переписать прожку как ты посоветовал.

Еще вопросик, он у меня создает новую панель каждый раз. Их там уже 12 штук. Как кодом убивать эту панель перед закрытием документа.
PM MAIL ICQ   Вверх
mihanik
Дата 30.10.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



И я создаю панель при запуске.  smile 
Просто у меня при запуске должно много чего там происходить, поэтому я создание панели выкинул в отдельную процедуру.  smile  smile 


По твоему вопросу о том, как "убить" панель инструментов.
Свою панель с именем Mihanik я убиваю так...

Код

' Ищем среди панелей инструментов панель с именем "Mihanik"

    For Each MyPanel In ActiveWindow.CommandBars
        ' Если такая панель найдена, то удалим её.
        ' А то вдруг она "старая"!!!
        If MyPanel.Name = "Mihanik" Then MyPanel.Delete
    Next MyPanel


Немного неоптимально, но работает...

Добавлено @ 15:06 
Замечание!

Объектная модель аутлука и ворда слегка отличается!  smile 




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


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

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


 




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


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

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