Excel VBA(マクロ)で図形の塗りつぶしにテクスチャ・模様を適用する方法/PresetTexturedメソッドの使い方

IT

PresetTexturedメソッドを使うと、Excelにあらかじめ用意されたテクスチャを図形に適用することができます。Preset=「あらかじめ決められた」テクスチャ、ということですね。
VBAを使わずに図形をテクスチャで塗りつぶすには

スポンサーリンク

PresetTexturedメソッドの使い方

図形をテクスチャで塗りつぶす
Shapeオブジェクト(またはShapeRangeコレクション).Fill.PresetTextured (PresetTexture)
vba 図形 presettextured 1
まず一回やってみます。こうした図形に対し、
' vba
ActiveSheet.Shapes(1).Fill.PresetTextured 1
Shapeオブジェクトを取得し、Fill(塗りつぶし)に対してPresetTextured 1と指定すると、
vba 図形 presettextured 2
このように図形がテクスチャで塗りつぶされます。
' vba
ActiveSheet.Shapes(1).Fill.PresetTextured msoTexturePapyrus
値は数値もしくはMsoPresetTextured列挙型定数で指定でき、定数で表記するとこういった値になります。
' vba
ActiveSheet.Shapes(1).Fill.PresetTextured PresetTexture:= msoTexturePapyrus
フィールド名で言えば、値はPresetTextureで指定できます。

MsoPresetTextured列挙型定数および値

テクスチャは全24種類です。ちょっと手抜きコードですが、

' vba
l = 2
m = 0
For i = 1 To 24
ActiveSheet.Shapes.AddShape(1, Cells(2, l).Left, Cells((i * 3) - m, 2).Top, _
Cells(2, 2).Width * 2, Cells(2, 2).Height * 3). _
Fill.PresetTextured PresetTexture:=i
ActiveSheet.Shapes(i).TextFrame.Characters.Text = i
If i = 8 Then
l = 4
m = 24
ElseIf i = 16 Then
l = 6
m = 48
End If
Next
vba 図形 presettextured 4
上のコードを実行すると、図形一覧表(番号付き)を作ることができます。
vba 図形 presettextured 5
定数付きの表は下記のコードで作成できます。
' vba
For i = 1 To 24
ActiveSheet.Shapes.AddShape(1, Cells(2, 2).Left, Cells(i * 3, 2).Top, _
Cells(2, 2).Width * 2, Cells(2, 2).Height * 3). _
Fill.PresetTextured PresetTexture:=i
Next

Cells(3, 4).Value = "1 Papyrusテクスチャ(msoTexturePapyrus)"
Cells(6, 4).Value = "2 キャンバステクスチャ(msoTextureCanvas)"
Cells(9, 4).Value = "3 デニムのテクスチャ(msoTextureDenim)"
Cells(12, 4).Value = "4 編みマットのテクスチャ(msoTextureWovenMat)"
Cells(15, 4).Value = "5 水滴テクスチャ(msoTextureWaterDroplets)"
Cells(18, 4).Value = "6 ペーパーバッグのテクスチャ(msoTexturePaperBag)"
Cells(21, 4).Value = "7 魚の化石テクスチャ(msoTextureFishFossil)"
Cells(24, 4).Value = "8 砂のテクスチャ(msoTextureSand)"
Cells(27, 4).Value = "9 緑色の大理石のテクスチャ(msoTextureGreenMarble)"
Cells(30, 4).Value = "10 白い大理石のテクスチャ(msoTextureWhiteMarble)"
Cells(33, 4).Value = "11茶色の大理石のテクスチャ(msoTextureBrownMarble)"
Cells(36, 4).Value = "12 花崗岩のテクスチャ(msoTextureGranite)"
Cells(39, 4).Value = "13 Newsprintテクスチャ(msoTextureNewsprint)"
Cells(42, 4).Value = "14 リサイクルされた紙のテクスチャ(msoTextureRecycledPaper)"
Cells(45, 4).Value = "15 Parchment テクスチャ(msoTextureParchment)"
Cells(48, 4).Value = "16 文房具のテクスチャ(msoTextureStationery)"
Cells(51, 4).Value = "17 青い組織の紙のテクスチャ(msoTextureBlueTissuePaper)"
Cells(54, 4).Value = "18 ピンクのティッシュペーパーのテクスチャ(msoTexturePinkTissuePaper)"
Cells(57, 4).Value = "19 紫色のメッシュテクスチャ(msoTexturePurpleMesh)"
Cells(60, 4).Value = "20 ブーケテクスチャ(msoTextureBouquet)"
Cells(63, 4).Value = "21 コルクテクスチャ(msoTextureCork)"
Cells(66, 4).Value = "22 クルミのテクスチャ(msoTextureWalnut)"
Cells(69, 4).Value = "23 オークテクスチャ(msoTextureOak)"
Cells(72, 4).Value = "24 中程度の木のテクスチャ(msoTextureMediumWood)"
Excel(エクセル):図形
Excelでは、図形という機能を使うことで四角形や丸、矢印などのオブジェクトをシート状に配置することができます。セルの形状を無視して配置できるので、フローチャートや装飾、注釈などアイデア次第でさまざまな用途に利用できます。 図形作成・操作...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

コメント