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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2010, 15:46   #11
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Снимите все галочки.
Кинте Файл в папку XLSTART,и будет все отлично
Изображения
Тип файла: jpg 32.jpg (17.7 Кб, 66 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 16.02.2010, 09:09   #12
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 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.
agregator вне форума Ответить с цитированием
Старый 16.02.2010, 11:56   #13
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 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
тогда нужная книга открывается.
Можно ли сделать так, чтобы и панель "Таскать" формировалась и нужная книга открывалась?
agregator вне форума Ответить с цитированием
Старый 17.02.2010, 10:57   #14
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 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.
agregator вне форума Ответить с цитированием
Старый 17.02.2010, 12:44   #15
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Уважаемые программисты, подскажите пожалуйста, какой код надо выполнить, чтобы при выполнении bb1.Caption = "Хватай" , не выходило Debug: (bb1.Caption = <Object variable or With block variable not set>).
agregator вне форума Ответить с цитированием
Старый 17.02.2010, 14:18   #16
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
какой код надо выполнить, чтобы при выполнении bb1.Caption = "Хватай" , не выходило Debug
Надо, чтобы переменной bb1 было присвоено значение (точнее, ссылка на кнопку)
Это присвоение выполняет код Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True)

Попробуйте заменить строку
Код:
If ShapesCB.Controls.Count = 0 Then Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True)
на
Код:
Set bb1 = Add_Control_Ex(ShapesCB, 1, 51, "", "<- Вкл. таскать", True)
EducatedFool вне форума Ответить с цитированием
Старый 18.02.2010, 03:48   #17
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 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
Теперь значок на кнопке видно сразу.
agregator вне форума Ответить с цитированием
Старый 18.02.2010, 13:11   #18
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Всем спасибо, вот что получилось.
Вложения
Тип файла: zip Итог.zip (13.7 Кб, 9 просмотров)
agregator вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить код работать во всех книгах указанной папки 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