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]