PR

【VBA】テクスチャ効果(図形塗りつぶし)を使用する

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
視覚的に表現する際に図形の塗りつぶしを行うことは多々ありますが、用途によってはテクスチャを設定したいこともあるかと思います。その場合はPresetTexturedメソッドを利用することで対応できますので、今回はその内容について書いていきます。

スポンサーリンク

1.サンプル概要

Sheet1上に準備した図形に対し、PresetTexturedメソッドを利用してテクスチャ設定を行います。

下の画像は「紙袋のテクスチャ」を設定したものです。

このようにPresetTexturedメソッドに定数を指定することでテクスチャ設定を行うことができます。

2.サンプルコード

Sub Sample1()

 '図に「紙袋のテクスチャ」を設定する
 Worksheets("Sheet1").Shapes(1).Fill _
 .PresetTextured msoTexturePaperBag

End Sub

構文:PresetTextured(PresetTexture)

サンプルコードではシート上の図形に対して「紙袋のテクスチャ」を設定していますが、その他の指定する値は以下の通りです。

定数 内容 テクスチャー
msoTextureDenim 3 デニムテクスチャ  
msoTextureBouquet 20 ブーケテクスチャ  
msoTextureBrownMarble 11 茶色の大理石のテクスチャ  
msoTextureBlueTissuePaper 17 青いティッシュペーパーテクスチャ  
msoTextureCanvas 2 キャンバス テクスチャ  
msoTextureCork 21 コルクテクスチャ  
msoTextureFishFossil 7 魚の化石テクスチャ  
msoTextureGranite 12 花崗岩テクスチャ  
msoTextureGreenMarble 9 緑の大理石のテクスチャ  
msoTextureMediumWood 24 中程度の木材テクスチャ  
msoTextureNewsprint 13 Newsprint テクスチャ  
msoTextureOak 23 オークのテクスチャ  
msoTexturePaperBag 6 紙袋のテクスチャ  
msoTexturePapyrus 1 パピルス テクスチャ  
msoTextureParchment 15 羊皮紙テクスチャ  
msoTexturePinkTissuePaper 18 ピンクのティッシュペーパーテクスチャ  
msoTexturePurpleMesh 19 紫色のメッシュ テクスチャ  
msoTextureRecycledPaper 14 リサイクルされた紙のテクスチャ  
msoTextureSand 8 砂のテクスチャ  
msoTextureStationery 16 文房具テクスチャ  
msoTextureWalnut 22 クルミのテクスチャ  
msoTextureWaterDroplets 5 水滴テクスチャ  
msoTextureWhiteMarble 10 白い大理石のテクスチャ  
msoTextureWovenMat 4 編まれたマットのテクスチャ  

指定する場合は.PresetTextured msoTexturePaperBagの形で指定する、または数値での指定でもOKなので.PresetTextured 6 でも同じ結果になります。

◆参考:オリジナルの図をテクスチャとして設定したい場合

定数以外でも画像ファイルを指定して設定することでオリジナルのテクスチャを設定することが可能です。

下のサンプルコードは実行ファイルと同じ場所に保存された画像ファイルをテクスチャとして設定するものです。

Sub Sample2()

 Worksheets("Sheet1").Shapes(1).Fill _
 .UserTextured ThisWorkbook.Path & "\usertextured_smp.jpg"

End Sub

画像の通り、定数以外でも画像ファイルを指定してオリジナルテクスチャとすることができます。

3.まとめ

画像にテクスチャ設定するようなケースでは、定数から選択するよりも自身の画像ファイルなどから設定したいことが多そうな気がします。



その場合はUserTexturedメソッドを利用することで可能となりますので、機会があればぜひご活用くださいませ。

以上、テクスチャ効果(図形塗りつぶし)を使用する方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました