Панель инструментов
Когда создается пользовательская панель инструментов, её можно расположить в любом месте экрана. Так вот когда распологаешь ее сбоку надписи на кнопках пореворачиваются вертикально, как можно сделать чтобы они были горизонтально?
Sub CreateNewLeftBar()
With Application.CommandBars.Add("NewLefBar", , False, True)
.Visible = True
.Position = msoBarLeft
With .Controls
With .Add(msoControlButton)
.Style = msoButtonWrapCaption
.Caption = "Кнопка"
.OnAction = "Macros1"
End With
With .Add(msoControlButton)
.Style = msoButtonIconAndWrapCaption
.Caption = "Макрос"
.FaceId = 92
.OnAction = "Macros2"
End With
End With
End With
End Sub
Обратите внимание на то, что эта возможность реализована начиная с MS Excel 2000 и выше. И второе, чем больше символов Вы используете в свойстве Caption, тем меньше у Вас остаётся рабочего/свободного пространства.
Цитата:
Originally posted by pashulka
Попробуйте воспользоваться нижеприведённым кодом :
Sub CreateNewLeftBar()
With Application.CommandBars.Add("NewLefBar", , False, True)
.Visible = True
.Position = msoBarLeft
With .Controls
With .Add(msoControlButton)
.Style = msoButtonWrapCaption
.Caption = "Кнопка"
.OnAction = "Macros1"
End With
With .Add(msoControlButton)
.Style = msoButtonIconAndWrapCaption
.Caption = "Макрос"
.FaceId = 92
.OnAction = "Macros2"
End With
End With
End With
End Sub
Попробуйте воспользоваться нижеприведённым кодом :
Sub CreateNewLeftBar()
With Application.CommandBars.Add("NewLefBar", , False, True)
.Visible = True
.Position = msoBarLeft
With .Controls
With .Add(msoControlButton)
.Style = msoButtonWrapCaption
.Caption = "Кнопка"
.OnAction = "Macros1"
End With
With .Add(msoControlButton)
.Style = msoButtonIconAndWrapCaption
.Caption = "Макрос"
.FaceId = 92
.OnAction = "Macros2"
End With
End With
End With
End Sub
Спасибо большое всё работает!!!
Встречный вопрос, как можно малой кровью просмотреть все доступные FaceId, изображения?
Sub CreateIconFaceId()
With Application.CommandBars.Add("FaceId", , False, True)
.Visible = True
With .Controls
For iFace = 1 To 3518
' в MS Excel 97 существует - 3518 ID, но существуют и "пустышки"
'
' Для визуального просмотра лучше создать несколько панелей
' инструментов, т.е. разбить этот цикл на несколько частей
'
' Обратите внимание на то, что каждая панель инструментов должна
' иметь своё уникальное имя.
With .Add(msoControlButton)
.Style = msoButtonIconAndCaption
.Caption = iFace
.FaceId = iFace
End With
Next
End With
End With
End Sub
P.S. А что означает термин встречный вопрос ? Я вроде Вам вопросов пока не задавал ?
Цитата:
Originally posted by pashulka
P.S. А что означает термин встречный вопрос ? Я вроде Вам вопросов пока не задавал ?
P.S. А что означает термин встречный вопрос ? Я вроде Вам вопросов пока не задавал ?
Это было не правильно употребление термина.
У меня к вам ещё вопросы:
1)как можно изменять размеры иконки на кнопке и шрифта, только на данной кнопке?
2)как можно, и можно ли вообще задать жестко размеры панели инструментов, чтобы она не меняла свои размеры под кнопки?
3) как можно на боковой панели расположить 2 кнопки рядом по горизонтали?
Заранее благодарен!!!
как панель созданную с помощью макроса сохранить в книге, чтобы при её открытии панель сама открывалась, а не после запуска макроса?
P.S. попытка вложить панель в книгу была неудачной
По вашему мнению это возможно сделать, чтобы я знал?
Дело в том, что Вы задали четыре вопроса и я полагал, что пока я не вспомню/найду решения Вашей задачи опубликовывать часть ответов не нужно. Но если Вы настаиваете на блиц ответе, то пожалуйста :
Cозданную нестандартную панель управления можно вложить в рабочую книгу, но для этого при создании панели .Add необходимо Temporary указать как False, т.е.
With Application.CommandBars.Add("NewLefBar", , False, False)
Примечание :
Temporary используется для того чтобы при закрытии приложения, нестандартная панель управления была удалена автоматически, без дополнительных программных действий, поэтому если Вы установили Temporary как False, то Вам придётся удалять панель программно, например при закрытии рабочей книги.
Цитата:
Originally posted by pashulka
Здравствуйте, corvin
With Application.CommandBars.Add("NewLefBar", , False, False)
Здравствуйте, corvin
With Application.CommandBars.Add("NewLefBar", , False, False)
Спасибо! Просто мне показалось что я задаю элементарные вопросы на которые и не отвечают.
И в тоже время я рад что сам нашел решение на ваш последний ответ.
Буду с нетерпением искать сам и ждать от вас ответа!
Application.CommandBars.LargeButtons = true