Как вытащить имеющиеся стандартные FaceID для того, чтобы использовать их как картинки кнопок в XML-тексте для Ribbon-интерфейса, я показывал ЗДЕСЬ А вот какие FaceID назначаются собственным картинкам-иконкам, когда-то разобрался, но сейчас не помню
Как вытащить имеющиеся стандартные FaceID для того, чтобы использовать их как картинки кнопок в XML-тексте для Ribbon-интерфейса, я показывал ЗДЕСЬ А вот какие FaceID назначаются собственным картинкам-иконкам, когда-то разобрался, но сейчас не помню Alex_ST
У MSForms.CommandButton нет свойства .FaceID. Так что напрямую использовать "встроенные иконки на кнопках" не выйдет.
Но вы, при желании, можете выгрузить (или найти) нужные вам иконки, а затем просто наложить на кнопку как рисунок. И даже в этом случае есть тонкости: если использовать .Picture самой кнопки, то происходят изменения размеров иконки (они привязываются к линейным размерам кнопки и надписи), а если наложить иконку как рисунок поверх кнопки - то надо писать отдельный класс или именовать контролы так, чтобы не потерять "связки". Можно, конечно, создать кнопки-рисунки (сделать Image кнопкой), но там тоже надо возиться со .SpesialEffect и т.п.
У MSForms.CommandButton нет свойства .FaceID. Так что напрямую использовать "встроенные иконки на кнопках" не выйдет.
Но вы, при желании, можете выгрузить (или найти) нужные вам иконки, а затем просто наложить на кнопку как рисунок. И даже в этом случае есть тонкости: если использовать .Picture самой кнопки, то происходят изменения размеров иконки (они привязываются к линейным размерам кнопки и надписи), а если наложить иконку как рисунок поверх кнопки - то надо писать отдельный класс или именовать контролы так, чтобы не потерять "связки". Можно, конечно, создать кнопки-рисунки (сделать Image кнопкой), но там тоже надо возиться со .SpesialEffect и т.п.AndreTM
Тут вроде рецепт без выгрузки, но я не проверял. [vba]
Код
With CommandButton1 .PicturePosition = fmPicturePositionLeftCenter .Picture = Application.CommandBars.FindControl(ID:=18).Picture End With With Label1 .PicturePosition = fmPicturePositionLeftCenter .Picture = Application.CommandBars.FindControl(ID:=4).Picture .TextAlign = fmTextAlignLeft End With
[/vba]
А вот проверил и естественно это не по FaceID :-( . значит как то искуственно сперва создать контрол, перелить иконку и удалить контрол [vba]
Код
Private Sub test() With CommandButton1 .PicturePosition = fmPicturePositionLeftCenter With Application.CommandBars("cell").Controls _ .Add(Type:=msoControlButton, temporary:=True) .FaceID = 613 CommandButton1.Picture = .Picture .delete End With End With End Sub
[/vba]
Что-то не выходит функцию сделать, возвращающую картику по FaceID.
Тормозил SET в Set GetPictureByFaceID = .Picture забыл [vba]
Код
Private Sub test2() With CommandButton1 .PicturePosition = PicturePositionLeftCenter .Picture = GetPictureByFaceID(128) End With End Sub
Function GetPictureByFaceID(FaceID) As Object With Application.CommandBars("cell").Controls _ .Add(Type:=msoControlButton, temporary:=True) .FaceID = FaceID Set GetPictureByFaceID = .Picture .Delete End With End Function
[/vba]
AndreTM,
Тут вроде рецепт без выгрузки, но я не проверял. [vba]
Код
With CommandButton1 .PicturePosition = fmPicturePositionLeftCenter .Picture = Application.CommandBars.FindControl(ID:=18).Picture End With With Label1 .PicturePosition = fmPicturePositionLeftCenter .Picture = Application.CommandBars.FindControl(ID:=4).Picture .TextAlign = fmTextAlignLeft End With
[/vba]
А вот проверил и естественно это не по FaceID :-( . значит как то искуственно сперва создать контрол, перелить иконку и удалить контрол [vba]
Код
Private Sub test() With CommandButton1 .PicturePosition = fmPicturePositionLeftCenter With Application.CommandBars("cell").Controls _ .Add(Type:=msoControlButton, temporary:=True) .FaceID = 613 CommandButton1.Picture = .Picture .delete End With End With End Sub
[/vba]
Что-то не выходит функцию сделать, возвращающую картику по FaceID.
Тормозил SET в Set GetPictureByFaceID = .Picture забыл [vba]
Код
Private Sub test2() With CommandButton1 .PicturePosition = PicturePositionLeftCenter .Picture = GetPictureByFaceID(128) End With End Sub
Function GetPictureByFaceID(FaceID) As Object With Application.CommandBars("cell").Controls _ .Add(Type:=msoControlButton, temporary:=True) .FaceID = FaceID Set GetPictureByFaceID = .Picture .Delete End With End Function