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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2009, 18:10   #1
Igor_D
 
Регистрация: 04.11.2009
Сообщений: 5
Радость скрыть ленту через vba

Уважаемые форумчане, я перерыл весь рунет, но к сожалению не нашел решения для Excel 2007. Мне необходимо создать на базе excel небольшое приложение. Как условие стоит - убрать весь интерфейс excel.

Сетку, название приложения, статус, полосы прокрутки я уже поменял, но лента не сдается =))))

К сожалению все варианты кода, которые я нашел подходят только для 2003 и как бы я не пробовал ленту все равно не убрать.

Заранее благодарю за помощь
Igor_D вне форума Ответить с цитированием
Старый 04.11.2009, 18:22   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Могу предложить только это:

Код:
Sub Лента()
    Application.SendKeys "^{F1}"
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 04.11.2009, 18:29   #3
Igor_D
 
Регистрация: 04.11.2009
Сообщений: 5
По умолчанию

Спасибо огромное. А панель с заголовками ленты возможно как-то спрятать?
Igor_D вне форума Ответить с цитированием
Старый 04.11.2009, 18:47   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub УбратьЛенту()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", False)"
End Sub

Sub ОтобразитьЛенту()
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", True)"
End Sub
Найдено здесь.
EducatedFool вне форума Ответить с цитированием
Старый 04.11.2009, 18:51   #5
Igor_D
 
Регистрация: 04.11.2009
Сообщений: 5
По умолчанию

Преклоняюсь перед Вашим мастерством! Теперь я получил то, что надо. Чистое окно =))))

Если кого-то мучает та же проблема - у меня получилось в итоге вот что...



Если пойти дальше можно и панель статуса убрать )

Еще раз спасибо!

Последний раз редактировалось Igor_D; 04.11.2009 в 18:59.
Igor_D вне форума Ответить с цитированием
Старый 04.11.2009, 19:07   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Можно убрать вообще всё:







Вот весь код:
Код:
Private Sub ChangeInterface(Value As Boolean)
    With Application
        .ScreenUpdating = False
        .Caption = IIf(Value = True, Empty, "Наше окно")
        .DisplayStatusBar = Value: .DisplayFormulaBar = Value
        Dim iCommandBar As CommandBar
        For Each iCommandBar In .CommandBars
            iCommandBar.Enabled = Value
        Next
        With .ActiveWindow
            .Caption = IIf(Value = True, .Parent.Name, "")
            .DisplayHeadings = Value: .DisplayGridlines = Value
            .DisplayHorizontalScrollBar = Value: .DisplayVerticalScrollBar = Value
            .DisplayWorkbookTabs = Value
        End With
        .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", " & Value & ")"
        .ScreenUpdating = True
    End With
End Sub

Private Sub УбратьВсё()
    ChangeInterface False
End Sub

Private Sub ВосстановитьИнтерфейс()
    ChangeInterface True
End Sub
PS: При желании можно убрать и заголовок окна Excel (при помощи WinAPI)

Последний раз редактировалось EducatedFool; 04.11.2009 в 19:09.
EducatedFool вне форума Ответить с цитированием
Старый 04.11.2009, 21:35   #7
Igor_D
 
Регистрация: 04.11.2009
Сообщений: 5
По умолчанию

странно - не работает...
Igor_D вне форума Ответить с цитированием
Старый 10.09.2010, 17:43   #8
maryana
Новичок
Джуниор
 
Регистрация: 10.09.2010
Сообщений: 1
По умолчанию

PS: При желании можно убрать и заголовок окна Excel (при помощи WinAPI)[/QUOTE]

Здравсвуйте, очеееень помог Ваш код. Большое спасибо. Но есть один вопрос. Вы написали, что можно убрать заголовок окна. А можно его не убирать, а изменить иконку Excel, которая высвечивается в верхнем левом углу, на свою картинку? Если можно, то подскажите, пожалуйста, как это сделать. Спасибо
maryana вне форума Ответить с цитированием
Старый 18.10.2010, 21:35   #9
Raikhman
Пользователь
 
Аватар для Raikhman
 
Регистрация: 30.01.2009
Сообщений: 75
По умолчанию

Действительно это гениально!
Но если продолжить тему - добавить в пустое окно собственное меню, как это делалось в excel 2003. А здесь, почему-то, не работает
Я делал так
Public Sub menubuilder()
'Убираем меню
For Each cbar In Application.CommandBars
If cbar.Visible = True Then cbar.Enabled = False
Next

'Строим свое меню
Dim cbMenuBar As CommandBar
Set cbMenuBar = Application.CommandBars.Add(Name:=" custom1", _
Position:=msoBarTop, _
MenuBar:=True, _
Temporary:=True)

'Это собственные элементы меню
With cbMenuBar
.Visible = True
With .Controls
With .Add(Type:=msoControlPopup)
.Caption = "Файл"
With .Controls
With .Add(Type:=msoControlButton)
.Caption = "Сохранить модель как..."
.OnAction = "MySaveAs"
End With
With .Add(Type:=msoControlButton)
.Caption = "Выход из программы"
.OnAction = "myQuit"
End With
With .Add(Type:=msoControlButton)
.Caption = "О программе"
.OnAction = "myAbout"
End With
End With
End With
End With
End With

'Это встроенные элементы меню
'Application.CommandBars("custom1") .Controls.Add Type:=msoControlPopup, ID:= _
30002, Before:=2
Application.CommandBars("custom1"). Controls.Add Type:=msoControlPopup, ID:= _
30003, Before:=2
Application.CommandBars("custom1"). Controls.Add Type:=msoControlPopup, ID:= _
30004, Before:=3
Application.CommandBars("custom1"). Controls.Add Type:=msoControlPopup, ID:= _
30005, Before:=4
Application.CommandBars("custom1"). Controls.Add Type:=msoControlPopup, ID:= _
30006, Before:=5
Application.CommandBars("custom1"). Controls.Add Type:=msoControlPopup, ID:= _
30011, Before:=6
Application.CommandBars("custom1"). Controls.Add Type:=msoControlPopup, ID:= _
30009, Before:=7
Application.CommandBars("custom1"). Controls.Add Type:=msoControlPopup, ID:= _
30010, Before:=8
Application.CommandBars("custom1"). Controls.Add Type:=msoControlButton, ID:=4 _
, Before:=9

'Защита меню от пользователя
Application.CommandBars("custom1"). Protection = msoBarNoChangeDock
Application.CommandBars("custom1"). Protection = msoBarNoCustomize

Application.CommandBars("Toolbar List").Enabled = False
Application.OnKey "%-", ""
Application.DisplayFormulaBar = False
'Отключаем все клавиши
Application.OnKey "%{F1}", ""
Application.OnKey "%{F2}", ""
Application.OnKey "%{F3}", ""
Application.OnKey "%{F4}", ""
Application.OnKey "%{F5}", ""
Application.OnKey "%{F6}", ""
Application.OnKey "%{F7}", ""
Application.OnKey "%{F8}", ""
Application.OnKey "%{F9}", ""
Application.OnKey "%{F10}", ""
'Application.OnKey "%{F11}", "" ' чтобы закрыть вход в редактор VBA
Application.OnKey "%{F12}", ""

'Убрать из ярлычков пункт все ненужное
Application.CommandBars("Ply").Cont rols("Ис&ходный текст").Delete
Application.CommandBars("Ply").Cont rols("Переместить/скопировать...").Delete
End Sub

А в 2007 excel не работает. Подскажите, если можно - как надо.
Raikhman вне форума Ответить с цитированием
Старый 22.11.2010, 17:52   #10
Stefany Roma
Новичок
Джуниор
 
Регистрация: 22.11.2010
Сообщений: 1
По умолчанию

Здравствуйте!
Спасибо большое за программу, оч мне помогли.

Только возник новый вопрос такого плана - получилось, что тулбары убираются во всех открытых файлах excel. Вообще возможно ли сделать так, чтобы тулбары скрывались только в одном нужном файле?
Stefany Roma вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открыть книгу через vba ruavia3 Microsoft Office Excel 2 31.07.2009 16:39
поиск через VBA Tirendus Microsoft Office Excel 8 31.07.2009 13:49
Печать листа через VBA Волк Microsoft Office Excel 1 27.02.2009 11:37
Как в VBA скрыть неиспользуемые строки при условии berliozz Microsoft Office Excel 16 24.11.2008 08:47
Скрыть-Отобразить с помощью VBA ZORRO2005 Microsoft Office Excel 5 01.09.2008 09:11