- ベストアンサー
エクセルVBAでオートシェイプの属性を取得する方法を教えてください。
お世話になります。VBAについてほとんど理解していないので、ピントはずれな質問かも知れませんがよろしくお願いします。 エクセルのシートに四角形のオートシェイプが10個ほどあります。このなかの、1つを選択して色やパターンなどの属性を取得するのに次のように書いてみました。 Sub test() MsgBox Selection.ShapeRange.Fill.ForeColor.SchemeColor MsgBox Selection.ShapeRange.Fill.Patterned End Sub 1行目の色についてはメッセージボックスに表示されるのですが、パターンが表示されません。 パターンの属性を取得する方法を教えてください。 エクセルのバージョンは:EXCEL2002です。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Selection.ShapeRange.Fill.Patternedは、メソッドなので、この様な使い方で値を取得する事はできません。 自動記録してみると、 Selection.ShapeRange.Fill.Patterned msoPatternShingle 等となり、= が無いことが分かります。 これは、Selection.ShapeRange.Fill.Patterned(msoPatternShingle) とも書けます。 パターンの属性は、 MsgBox Selection.ShapeRange.Fill.Pattern で値が取得できます。 いじってみると、 Selection.ShapeRange.Fill.Pattern = msoPattern10Percent は、「値の取得のみが可能なプロパティに値を設定することはできません」というエラーになりました。 値の設定はメソッドPatternedで行い、取得はプロパティPatternで行う様になっていることが分かります。
その他の回答 (1)
- kybo
- ベストアンサー率53% (349/647)
MsgBox Selection.ShapeRange.Fill.Pattern としてみてください。
お礼
早速、解答していただき、ありがとうございました。 今後ともよろしくお願いします。
お礼
mitarashiさん 早速解答していただきありがとうございました。 VBAはまだまだ初心者なのでこれから勉強して行きたいと思います。 無事にパターンの値が取得できました。 でも、値が"msoPatternShingle"ではなく数字なのですね。ちょっと驚きました。 ありがとうございました。