powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB & Exel помогите !!!
6 сообщений из 6, страница 1 из 1
VB & Exel помогите !!!
    #32391559
Свиденко А
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я новичок в етом деле.
Как мне создать меню в форме.
Помогите пожалуйста. Очень надо!!
...
Рейтинг: 0 / 0
VB & Exel помогите !!!
    #32391598
zloy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
формы в vb и vba ДВЕ большие разницы поэтому-никак:(
...
Рейтинг: 0 / 0
VB & Exel помогите !!!
    #32392221
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не всё так категорично, как утверждает Злой...\r
И не так уж и пессимистично!\r
На Excel\'е можно разрабатывать приложения, которые выглядят\r
почти как независимые. И в Excel\'e можно скрыть все его панели и меню и встроить свои.\r
Методика создания собственного интерфейса в среде Excel прекрасно изложена в книге\r
В своё время я использовал её в своей работе.\r
Вот фрагменты кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
Sub SetEnvironment()\r
\'----------------------------------------\r
\' Сохранение текущего состояния Excel и подготовка среды для приложения  "Поставка" \r
\'----------------------------------------\r
    If ApplyExcel = False Then\r
        ThisWorkbook.Worksheets("Инструкция").Activate   \'Создать лист  "Инструкция"  -> wsHome\r
    End If\r
    With Application\r
        .Caption =  "ПОСТАВКА"        \'Это название крупно выделяется на панели задач!\r
        .ScreenUpdating = False\r
    End With\r
    With mobjAppState               \'специально создан КЛАСС, чтобы сохранить в ОБЪЕКТЕ\r
        .GetState                   \'состояние "Видима/Невидима" каждой панели инструментов.\r
        .HideAllCommandBars         \'ОБЪЕКТ сохраняет свою актуальность с момента создания\r
    End With                        \'до момента удаления вне зависимости от активности VBA-кода\r
    With Application\r
        .DisplayFormulaBar = False  \'Для увеличения количества видимых строк в поставке\r
        .DisplayStatusBar = True    \'Для наблюдения за состоянием обновления справочников из БД\r
    End With\r
    ActiveWindow.Caption = ""       \'Удаляем MS Excel Имя_книги_с_программой\r
    With ThisWorkbook.Windows( 1 )\r
        .DisplayWorkbookTabs = False    \'скрываем ярлыки рабочих листов\r
    End With\r
    CreateCommandBar                \'Создаём панель для задачи  "Формирование поставки" \r
    If ApplyExcel = False Then\r
        ShowHome                    \'юзерА, прочитайте инструкцию!\r
    End If\r
End Sub\r
\r
Sub CreateCommandBar()\r
\' ----------------------------------------\r
 
\' создание пользовательской панели команд приложения "Поставка":\r
\' ----------------------------------------\r
 
    Dim MenuBarBool As Boolean\r
\'   MenuBarBool:   True to replace the active menu bar with the new command bar.\r
\'                  The default value is False.\r
    \r
    If ApplyExcel Then\r
        MenuBarBool = False         \'Создаётся невидимая (скрытая) панель\r
    Else\r
        MenuBarBool = True          \'\r
    End If\r
\r
    With Application.CommandBars.Add(COMMANDBAR_NAME, msoBarTop, MenuBarBool, True)\r
        .Visible = True             \'"Поставка"\r
        .Position = msoBarTop\r
        .Protection = msoBarNoChangeVisible + msoBarNoCustomize\r
        With .Controls\r
            With .Add(msoControlButton)     \'индекс  0 \r
                .Caption =  "Изменения" \r
                .Style = msoButtonCaption\r
                .OnAction =  "ShowHome"       \'ShowHome - в этом модуле\r
            End With\r
            With .Add(msoControlButton)     \'индекс  1 \r
                .Caption =  " Создать " \r
                .Style = msoButtonCaption\r
                .OnAction =  "ShowUFSup"      \'Передать управление Init из ufSup\r
            End With\r
            With .Add(msoControlButton)     \'индекс  2 \r
                .Caption =  " Открыть " \r
                .Style = msoButtonCaption\r
                .OnAction =  "ShowFiles"      \'Использовать поиск файла по шаблону\r
            End With\r
            With .Add(msoControlButton)     \'индекс  3 \r
                .Caption =  " Редактировать " \r
                .Style = msoButtonCaption\r
                .OnAction =  "CallUFWares"    \'\r
            End With\r
            With .Add(msoControlButton)     \'индекс  4 \r
                .Caption =  " Печать " \r
                .Style = msoButtonCaption\r
                .OnAction =  "SetPrintOut"    \'\r
            End With\r
\'...............................................\r
            If ApplyExcel = False Then\r
                With .Add(msoControlButton) \'индекс 5 Or 6\r
                    .Caption = " Режим Excel "\r
                    .Style = msoButtonCaption\r
                    .OnAction = "RestoreExcelForSellerStatus"\r
                End With\r
            End If\r
        End With\r
    End With\r
End Sub\r
\r
Sub DeleteCommandBar()\r
\' ----------------------------------------\r
 
\' удаление пользовательской панели команд приложения "Поставка"\r
\' ----------------------------------------\r
 
    On Error Resume Next\r
    Application.CommandBars(COMMANDBAR_NAME).Delete\r
End Sub\r
\r
Sub RestoreEnvironment()\r
\'----------------------------------------\r
\' Восстановление Excel в первоначальное состояние\r
\'----------------------------------------\r
    Application.ScreenUpdating = False\r
    If ApplyExcel = False And DelSellerForm = True Then\r
        Application.Caption = Empty    End If\r
    With mobjAppState\r
        .RestoreState\r
    End With\r
    With Application.CommandBars("Worksheet Menu Bar")\r
        .Reset\r
        If DelSellerForm = False Then    \'\r
            With .Controls\r
                With .Add(msoControlButton)\r
                    .Caption =  "Поставка" \r
                    .Style = msoButtonCaption\r
                    .OnAction =  "RestoreSellerStatus" \r
                End With\r
            End With\r
        End If\r
    End With\r
    With ThisWorkbook.Windows( 1 )\r
        .DisplayWorkbookTabs = True\r
    End With\r
    DeleteCommandBar\r
    With ActiveWindow\r
        .DisplayHorizontalScrollBar = True\r
        .DisplayVerticalScrollBar = True\r
        .Caption = Empty\r
    End With\r
End Sub\r
...
Рейтинг: 0 / 0
VB & Exel помогите !!!
    #32392606
Свиденко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли етот код применять на ррактике
(ето полный код или только его часть)
Если да то как его сохранить?
...
Рейтинг: 0 / 0
VB & Exel помогите !!!
    #32392748
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> (ето полный код или только его часть)
Написано: фрагмент

> Можно ли етот код применять на ррактике
Да, для извлечения знаний из кода, если больше неоткуда их почерпнуть.
Например, начальная часть фрагмента:
Код: plaintext
1.
2.
3.
    If ApplyExcel = False Then
        ThisWorkbook.Worksheets( "Инструкция" ).Activate   'Создать лист  "Инструкция"  -> wsHome
    End If

ApplyExcel - какая-то булева переменная, не принадлежащая ни к какому-либо классу (нет точки между именем класса и именем члена класса), влияет на "видимость" листа "Инструкция".
Есть в вашем проекте лист "Инструкция"? Пока нет, пропускаем...
Следующий фрагмент:
Код: plaintext
1.
2.
3.
4.
    With Application
        .Caption =  "ПОСТАВКА"        'Это название крупно выделяется на панели задач!
        .ScreenUpdating = False
    End With

Есть класс Application и его свойства Caption и ScreenUpdating. Что это за класс и какая смысловая нагрузка у перечисленных свойств?
Если не ясно из мнемоники, открываем VBE, вызываем Object Browser и ищем в нём сlass Application и справа ищем, напр., Caption. Нажимаем затем F1 и т.д.

как его сохранить?
Ставишь кусор на начало фрагмента, выделяешь то, что интересно, копируешь, затем вставляешь.... :-)))
...
Рейтинг: 0 / 0
VB & Exel помогите !!!
    #32394151
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4Processor : а по сути вопроса автора ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB & Exel помогите !!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]