Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 14:24   #1
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию Быстро создать панель инструментов

Здравствуйте уважаемые форумчане. У меня такой вопрос. Как быстро создать панель инструментов, закрепить ее за конкретным файлом excel, чтобы при открытие открывалась только она.
Я понял что есть два способа:
I
1. Создать панель несколько панелей инструментов
2. Сохранить файл excel11.xlb по умолчанию путь C:\Documents and Settings\User\Application Data\Microsoft\Excel\
3. Прописать в модуле Эта Книга макрос на открытие панели и закрытие всех остальных и все.
II
1. Прописать все команды макросом http://excelvba.ru/tools/CommandBar (EducatedFool (Игорь)), спасибо за помощь.
2. Затем париться с настройкой. Прикреплением панели и т.д. (Сразу вопрос EducatedFool (Игорь) почему панель не выходит закрепленной на панели инструментов?)
И собственно вопрос можно ли сделать несколько файлов excel11.xlb? и подгружать их соответственно?
Если нет то посоветуйте что выбрать (какой способ)? А то я никак не могу определиться? Заранее спасибо.
OgE®_M@G вне форума Ответить с цитированием
Старый 24.11.2010, 14:43   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

В 2007 можно без проблем сделать пользовательскую вкладку на свой файл
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.11.2010, 14:53   #3
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Не знаю, что за сложности в настройке панели.
Можно сделать так, чтобы каждая книга при открытии ставила свою панель (меню), а при закрытии убирала.
Попробуйте вариант, что использую я:
Код:
Option Explicit             'Все переменные должны быть объявлены'

Private Const MenuName = "Преобразование сметы"   'Наименование меню'
Private Const ThisName = "Преобразование сметы 8.2.xla"

Private Sub Workbook_Open()  'При открытии книги'
    Application.ScreenUpdating = False
    KontekstMenu "Cell"   'Подключаем контекстное меню к ячейке'
    AddMenu                 'Добавляем меню'
    Application.ScreenUpdating = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.CommandBars("Worksheet Menu Bar").Controls(MenuName).Delete 'Убираем меню с панели'
    Application.CommandBars("Cell").Controls(MenuName).Delete 'Убираем контекстное меню ячейки'
    On Error GoTo 0
End Sub

Private Sub AddMenu()   'Формируем меню на панели инструментов'
    AddButton MenuName, "Преобразовать смету", "BaseModule.Макрос1", 37
    AddButton MenuName, "Выделить форму", "BaseModule.ВыделитьФорму", 44
    AddButton MenuName, "Сравнить области и выделить цветом различные ячейки", "OtherModule.CompareColumn", 237
    AddButton MenuName, "Заполнить ячейки ценами", "OtherModule.FillCellsByPrice", 132
    AddButton MenuName, "Сформировать колонтитул для коммерческого предложения", "OtherModule.DownFooter", 237
    AddButton MenuName, "Сформировать ссылки в сводной таблице", "OtherModule.ReferFromSummary", 43
    AddButton MenuName, "Удалить меню", "КнигаПреобразования.Uninstall", 536
End Sub

Private Sub KontekstMenu(Menu As String)   'Формируем контекстное меню'
    AddButton MenuName, "Преобразовать смету", "BaseModule.Макрос1", 37, Menu
    AddButton MenuName, "Выделить форму", "BaseModule.ВыделитьФорму", 44, Menu
    AddButton MenuName, "Сравнить области и выделить цветом различные ячейки", "OtherModule.CompareColumn", 237, Menu
    AddButton MenuName, "Заполнить ячейки ценами", "OtherModule.FillCellsByPrice", 132, Menu
    AddButton MenuName, "Сформировать ссылки в сводной таблице", "OtherModule.ReferFromSummary", 43, Menu
End Sub
Sub Uninstall(Optional silent = False)
    Dim ad As AddIn
    If Not silent Then
        If MsgBox("Вы действительно желаете удалить меню надстройки?", vbYesNo) = vbNo Then Exit Sub
    End If
    
    On Error Resume Next
    Application.CommandBars("Worksheet Menu Bar").Controls(MenuName).Delete
    Application.CommandBars("Cell").Controls(MenuName).Delete
    Application.AddIns(Left(ThisName, Len(ThisName) - 4)).Installed = False
    On Error GoTo 0
End Sub

Private Sub AddButton(Menu As String, _
                      submenu As String, _
                      macro As String, _
                      FaceId As Integer, _
                      Optional CBars As String = "Worksheet Menu Bar", _
                      Optional descr As String = "")
    Dim mnu As CommandBarControl, Button As CommandBarControl
    
    On Error Resume Next
    Set mnu = Application.CommandBars(CBars).Controls(Menu)
    If IsNull(mnu) Or Err.Number <> 0 Then
        Set mnu = Application.CommandBars(CBars).Controls.Add(Type:=msoControlPopup, before:=1)
        mnu.Caption = "&" & Menu
        mnu.Visible = True
    End If
    Set Button = Application.CommandBars(CBars).Controls(Menu).Controls(submenu)
    If IsNull(Button) Or Err.Number <> 0 Then
        Set Button = Application.CommandBars(CBars).Controls(Menu).Controls.Add(Type:=msoControlButton, ID:=2950)
        With Button
            .DescriptionText = descr
            .TooltipText = descr
            .Caption = "&" & submenu
            .Style = 3
            .OnAction = macro
            .FaceId = FaceId
        End With
    End If
End Sub
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 24.11.2010, 15:00   #4
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

Спасибо за быстрый отклик. Если можно Skif-F поясните что означают цифры 37,44, и т.д. Прошу сильно не пинать, но с панелями и их построением сталкиваюсь в первый раз.
OgE®_M@G вне форума Ответить с цитированием
Старый 24.11.2010, 15:04   #5
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

В Office встроено несколько тысяч картинок, которыми маркируются все кнопки на панелях инструментов, так вот эти числа - это номера иконок.
Установи надстройку Panel_FaceID и посмотри какие номера каким картинкам соответствуют
Вложения
Тип файла: zip Panel_FaceID.zip (13.6 Кб, 31 просмотров)
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 24.11.2010, 15:05   #6
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

И еще вопрос как поместить на панель стандартные команды типа удалить строку или сохранить. Спасибо большое.
OgE®_M@G вне форума Ответить с цитированием
Старый 24.11.2010, 15:07   #7
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Цитата:
Сообщение от OgE®_M@G Посмотреть сообщение
И еще вопрос как поместить на панель стандартные команды типа удалить строку или сохранить. Спасибо большое.
только реализуя их макросами
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 24.11.2010, 15:16   #8
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

вот блин загвоздка. Писать на все команды макросы очень долго, лучше использовать готовые команды, только вот как?
OgE®_M@G вне форума Ответить с цитированием
Старый 24.11.2010, 15:20   #9
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

C++ и WinAPI Вам в руки :-)
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 24.11.2010, 15:23   #10
OgE®_M@G
Форумчанин
 
Аватар для OgE®_M@G
 
Регистрация: 28.06.2008
Сообщений: 124
По умолчанию

Спасибо за поддержку буду искать еще способы. И обязательно отпишусь. Может кому нить потом пригодиться.
OgE®_M@G вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не удается создать панель инструментов. Stilet Операционные системы общие вопросы 3 30.01.2010 18:40
Панель инструментов VBA Lyubov1990 Microsoft Office Excel 5 04.06.2009 09:52
Как создать панель инструментов LAGOX Общие вопросы Delphi 2 16.03.2009 19:21
Вложенная панель инструментов. haros Microsoft Office Excel 7 16.03.2009 14:38
Пропала панель инструментов delphin100 Операционные системы общие вопросы 2 24.08.2008 13:29