Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Создание надстройки к екселю Добавлено: 07.09.06 10:45  

Автор вопроса:  krulik
Народ расскажите плиз как создавать надстройки для екселя. Горю! Очень нужно! Изначально писал просто на VBA прогу в книге екселя. Но сейчас стро встала необходимость организовать все в виде надстройки (которая должна создавать свое меню с доступом ко всем возможностям).

Я понимаю что все объекты доступны через OLE Automation но на чем нужно писать надстройки да и как я не представляю. Подскажите пдиз. А еще лучше ссылки на какиенебудь статьи связанные с этой темой

Ответить

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

Номер ответа: 1
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #1
Добавлено: 07.09.06 10:56
Если тебе простую надстройку, то просто сохрани файл xls, как xla.

Ответить

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



Вопросов: 1
Ответов: 1
 Профиль | | #2 Добавлено: 07.09.06 11:20
Что значит простая надстройка? И какой вариант сложный?

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

Ответить

Номер ответа: 3
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #3 Добавлено: 08.09.06 07:33
Создаешь собственно саму надстройку.
Файл-Сохранить как-xla.

Дальше выкладываешь в сеть в каталог, чтобы у тебя к файлу полный доступ - у остальных - только чтение.
Дальше чтобы она прописалась у всех рассылаешь им файлик с таким кодом:
Sub УстановкаНадстройки()

Dim Надстройка As AddIn, НадстройкаНайдена As Boolean

    For Each Надстройка In AddIns
        If Надстройка.Name = "ИМЯ_НАДСТРОЙКИ_БЕЗ_ПУТИ.xla" Then
            НадстройкаНайдена = True
            If Надстройка.Installed = False Then
                Надстройка.Installed = True
                MsgBox "Надстройка активирована."
                Exit For
            End If
        End If
    Next Надстройка
        
    If НадстройкаНайдена = False Then
        Set Надстройка = AddIns.Add("ИМЯ_НАДСТРОЙКИ_С_ПОЛНЫМ_ПУТЕМ.xla", False)
        Надстройка.Installed = True
        MsgBox "Надстройка установлена."
    End If
End Sub
Ну сделай на листе одну единственную кнопку чтобы при нажатии на нее запускался вышеприведенный код.
Далее размести следующий код на событие при открытии надстройки (делается также как для книги):
Option Explicit
Private Sub Workbook_Open()
    СозданиеПанели
End Sub

Далее сама процедура создания меню выглядит так (размещается в любом стандартном модуле надстройки):
Sub СозданиеПанели()
    Dim Панель As CommandBar
    Dim Элемент As CommandBarControl
    
    For Each Панель In Application.CommandBars
        If Панель.BuiltIn = False Then 'если панель не встроенная
            Панель.Delete 'удаляем ее
        End If
    Next Панель
            
    Set Панель = Application.CommandBars.Add(Name:="ЖелаемоеНазваниеПанели", Position:=msoBarRight)
        Панель.Protection = msoBarNoMove + msoBarNoChangeVisible + msoBarNoCustomize
        Панель.Visible = True
        
        Set Элемент = Панель.Controls.Add(Type:=msoControlButton)
            Элемент.Style = msoButtonIcon 'стиль кнопки
            Элемент.FaceId = 53 'номер картинки отображаемой на кнопке
            Элемент.OnAction = "ИмяЗапускаемойПроцедуры" 'процедуры естественно располагаются в файле надстройки
            Элемент.TooltipText = "Запуск процедуры Имя...." 'подсказка отображаемая при наведении на кнопку
        '... итак для каждой кнопочки
End Sub
Вот так оно примерно выглядит.

Ответить

Страница: 1 |

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



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