|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.02.2010, 15:46 | #11 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Снимите все галочки.
Кинте Файл в папку XLSTART,и будет все отлично
Анализ,обработка данных Недорого
|
16.02.2010, 09:09 | #12 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 369
|
Кидал в C:\Program Files\Microsoft Office\OFFICE11\XLSTART и в C:\Documents and Settings\Я\Application Data\Microsoft\Excel\XLSTART
Все равно формируется панель инструментов и открывается новая Книга1, а нужная книга не открывается, надо еще раз открывать при запущеном Excele. Может надо изменить этот код? Public bb1 As CommandBarButton Function Add_Control_Ex(ByRef menu, ByVal B_Type As Integer, ByVal B_Face As Integer, _ ByVal On_Action As String, ByVal B_Caption As String, _ Optional ByVal Begin_Group As Boolean = False, Optional Tag As String = "") On Error Resume Next Set Add_Control_Ex = menu.Controls.Add(B_Type, , , 1) With Add_Control_Ex If B_Face > 0 Then .FaceId = B_Face: .Tag = Tag: .OnAction = On_Action: .Caption = B_Caption: If Begin_Group Then .BeginGroup = True End With End Function Sub ФормированиеПанелиИнструментов() On Error Resume Next: Application.ScreenUpdating = False Application.CommandBars.Add(Name:=" Таскать").Visible = True For i = 1 To 1000: DoEvents: Next Set ShapesCB = Application.CommandBars("Таскать") For Each co In ShapesCB.Controls: co.Delete: Next ShapesCB.Visible = True: ShapesCB.Controls(1).BeginGroup = True If ShapesCB.Controls.Count = 0 Then Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True) bb1.Style = msoButtonCaption Add_Control_Ex ShapesCB, 1, 51, "Вкл_таскать", "Таскать вкл/выкл", True End Sub Последний раз редактировалось agregator; 16.02.2010 в 09:23. |
16.02.2010, 11:56 | #13 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 369
|
Если сформировать панель инструментов "Таскать", убрать удаление панели при закрытии Книги и изменить код так:
Public bb1 As CommandBarButton Function Add_Control_Ex(ByRef menu, ByVal B_Type As Integer, ByVal B_Face As Integer, _ ByVal On_Action As String, ByVal B_Caption As String, _ Optional ByVal Begin_Group As Boolean = False, Optional Tag As String = "") On Error Resume Next Set Add_Control_Ex = menu.Controls.Add(B_Type, , , 1) With Add_Control_Ex If B_Face > 0 Then .FaceId = B_Face: .Tag = Tag: .OnAction = On_Action: .Caption = B_Caption: If Begin_Group Then .BeginGroup = True End With End Function Sub ФормированиеПанелиИнструментов() 'On Error Resume Next: Application.ScreenUpdating = False 'Application.CommandBars.Add(Name:= "Таскать").Visible = True 'For i = 1 To 1000: DoEvents: Next Set ShapesCB = Application.CommandBars("Таскать") For Each co In ShapesCB.Controls: co.Delete: Next ShapesCB.Visible = True ': ShapesCB.Controls(1).BeginGroup = True If ShapesCB.Controls.Count = 0 Then Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True) bb1.Style = msoButtonCaption Add_Control_Ex ShapesCB, 1, 51, "Вкл_таскать", "Таскать вкл/выкл", True End Sub тогда нужная книга открывается. Можно ли сделать так, чтобы и панель "Таскать" формировалась и нужная книга открывалась? |
17.02.2010, 10:57 | #14 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 369
|
Добрый день!
После выполнения Sub ОбновитьПанелиИнструментов (выполняется автоматически при открытии книги), значок на первой кнопке невидимый пока на него не наведёшь курсор. Код такой: Public bb1 As CommandBarButton Function Add_Control_Ex(ByRef menu, ByVal B_Type As Integer, ByVal B_Face As Integer, _ ByVal On_Action As String, ByVal B_Caption As String, _ Optional ByVal Begin_Group As Boolean = False, Optional Tag As String = "") On Error Resume Next Set Add_Control_Ex = menu.Controls.Add(B_Type, , , 1) With Add_Control_Ex If B_Face > 0 Then .FaceId = B_Face: .Tag = Tag: .OnAction = On_Action: .Caption = B_Caption: If Begin_Group Then .BeginGroup = True End With End Function Sub ОбновитьПанелиИнструментов() Set ShapesCB = Application.CommandBars("Таскать") For Each co In ShapesCB.Controls: co.Delete: Next ShapesCB.Visible = True If ShapesCB.Controls.Count = 0 Then Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True) bb1.Style = msoButtonCaption Add_Control_Ex ShapesCB, 1, 51, "Вкл_таскать", "Таскать вкл/выкл", True End Sub Если его (ОбновитьПанелиИнструментов) не выполнять, то при выполнении bb1.Caption = "Хватай" пишет Debug: (bb1.Caption = <Object variable or With block variable not set>) Подскажите пожалуйста, что сделать, чтобы не было проблемы с bb1.Caption = "Хватай" и значок на кнопке было видно сразу. Последний раз редактировалось agregator; 17.02.2010 в 11:00. |
17.02.2010, 12:44 | #15 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 369
|
Уважаемые программисты, подскажите пожалуйста, какой код надо выполнить, чтобы при выполнении bb1.Caption = "Хватай" , не выходило Debug: (bb1.Caption = <Object variable or With block variable not set>).
|
17.02.2010, 14:18 | #16 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Это присвоение выполняет код Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True) Попробуйте заменить строку Код:
Код:
|
|
18.02.2010, 03:48 | #17 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 369
|
EducatedFool, здравствуйте. Записал код:
Sub ОбновитьПанелиИнструментов() Set bb1 = Add_Control_Ex(Application.CommandB ars("Таскать"), 1, 51, "", "<- Вкл. таскать", True) End Sub При его выполнении, на панеле слева добавляется ещё 1 кнопка со значком 51 и текстом, который меняется при изменении bb1. P.S. Изменил код: Sub ОбновитьПанелиИнструментов1() Set ShapesCB = Application.CommandBars("Таскать") For Each co In ShapesCB.Controls: co.Delete: Next ShapesCB.Visible = True If ShapesCB.Controls.Count = 0 Then Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True) bb1.Style = msoButtonCaption Add_Control_Ex ShapesCB, 1, 51, "Вкл_таскать", "Таскать вкл/выкл", True ShapesCB.Visible = False ShapesCB.Visible = True End Sub Теперь значок на кнопке видно сразу. |
18.02.2010, 13:11 | #18 |
Форумчанин
Регистрация: 09.05.2009
Сообщений: 369
|
Всем спасибо, вот что получилось.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как заставить код работать во всех книгах указанной папки | KNatalia | Microsoft Office Excel | 12 | 25.12.2012 11:32 |
О книгах | Halifath | Помощь студентам | 3 | 11.02.2010 08:00 |
список всех открытых файлов и папок. | Teleport | Общие вопросы Delphi | 4 | 22.06.2008 11:29 |
Список открытых портов | Баламут | Работа с сетью в Delphi | 3 | 21.05.2008 10:17 |
Список открытых файлов | ExcArt | Microsoft Office Excel | 3 | 30.03.2008 11:06 |