CommandBarButton.Mask Property (Office)
Published: June 15, 2012
Gets or sets an IPictureDisp object representing the mask image of a CommandBarButton object. The mask image determines what parts of the button image are transparent. Read/write.
The following example sets the image and mask of the first CommandBarButton that the code returns. To make this work, create a mask image and a button image and sustitute the paths in the sample with the paths to your images.
Sub ChangeButtonImage() Dim picPicture As IPictureDisp Dim picMask As IPictureDisp Set picPicture = stdole.StdFunctions.LoadPicture( _ "c:\images\picture.bmp") Set picMask = stdole.StdFunctions.LoadPicture( _ "c:\images\mask.bmp") 'Reference the first button on the first command bar 'using a With...End With block. With Application.CommandBars.FindControl(msoControlButton) 'Change the button image. .Picture = picPicture 'Use the second image to define the area of the 'button that should be transparent. .Mask = picMask End With End Sub
The following example gets the image and mask of the first CommandBarButton that the code returns and outputs each of them to a file. To make this work, specify a path for the output files.
Sub GetButtonImageAndMask() Dim picPicture As IPictureDisp Dim picMask As IPictureDisp With Application.CommandBars.FindControl(msoControlButton) 'Get the button image and mask of this CommandBarButton object Set picPicture = .Picture Set picMask = .Mask End With 'Save the button image and mask in a folder. stdole.SavePicture picPicture, "c:\image.bmp" stdole.SavePicture picMask, "c:\mask.bmp" End Sub