ShapeオブジェクトからPictureFormatオブジェクトを取得し、ColorTypeプロパティを変更することで図形内の画像を白黒やグレーに変換することができます(公式)。
PictureFormatオブジェクト
PictureFormatオブジェクトの取得
Shapeオブジェクト.PictureFormat
Shapeオブジェクト.PictureFormat
![vba pictureformat2](https://sunagitsune.com/wp-content/uploads/2021/12/vba-pictureformat2.png)
Shapeオブジェクトの後にPictureFormatプロパティをくっつけると、PictureFormatオブジェクトという対象を選択したことになります。
ColorTypeプロパティは「PictureFormatオブジェクトのプロパティ」なので、使用するには先にオブジェクトを取得する必要があります。そういう文法がある、というだけの話です。
ColorTypeプロパティは「PictureFormatオブジェクトのプロパティ」なので、使用するには先にオブジェクトを取得する必要があります。そういう文法がある、というだけの話です。
ColorTypeプロパティ
図形内の画像にイメージコントロールをかける
PictureFormatオブジェクト.ColorType = 値
※値は数値またはMsoPictureColorType列挙型定数で指定
PictureFormatオブジェクト.ColorType = 値
※値は数値またはMsoPictureColorType列挙型定数で指定
![vba pictureformat1](https://sunagitsune.com/wp-content/uploads/2021/12/vba-pictureformat1.png)
元の画像はこちら。
' vba
'規定の色。ColorType = msoPictureAutomaticでも同じ意味
ActiveSheet.Shapes(1).PictureFormat.ColorType = 1
PictureFormatオブジェクトのColorTypeプロパティに既定の値を入れることで、画像を白黒にするなどのイメージコントロールが行えます。
値が1またはmsoPictureAutomaticの場合は、元々の色が適用されます。
値が1またはmsoPictureAutomaticの場合は、元々の色が適用されます。
![vba pictureformat4](https://sunagitsune.com/wp-content/uploads/2021/12/vba-pictureformat4.png)
値が2またはmsoPictureGrayscaleの場合、画像はグレースケールに変換されます。
![vba pictureformat3](https://sunagitsune.com/wp-content/uploads/2021/12/vba-pictureformat3.png)
値が3またはmsoPictureBlackAndWhiteの場合、画像は白黒に変換されます。
![vba pictureformat5](https://sunagitsune.com/wp-content/uploads/2021/12/vba-pictureformat5.png)
値が4またはmsoPictureWatermarkの場合、画像は透かしに変換されます。
関連記事
通常操作で図形に画像を表示する方法です。
VBAを使って図形に画像を表示する方法です。
同じPictureFormatオブジェクトのBrightnessプロパティでは、画像の明るさを変更することができます。
![](https://sunagitsune.com/wp-content/uploads/2021/05/innovation-561388_1280-160x90.jpg)
Excel(エクセル):図形
Excelでは、図形という機能を使うことで四角形や丸、矢印などのオブジェクトをシート状に配置することができます。セルの形状を無視して配置できるので、フローチャートや装飾、注釈などアイデア次第でさまざまな用途に利用できます。
図形作成・操作...
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント