dポイントプレゼントキャンペーン実施中!

Win2000エクセル2000です。
下記のMacro11はTEST11のようにWith~End Withでくくれると思うのですがエラーになります。
どこがおかしいのでしょうか?

Sub Macro11()
ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120).Select
Selection.ShapeRange.Line.Weight = 0.75
Selection.ShapeRange.Line.ForeColor.SchemeColor = 64
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10
Selection.ShapeRange.Fill.OneColorGradient msoGradientFromCorner, 1, 0.59
Selection.ShapeRange.Adjustments.Item(1) = 0.3016
Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD7
Selection.ShapeRange.ThreeD.PresetMaterial = msoMaterialMetal
Selection.ShapeRange.ThreeD.Depth = 144#
End Sub

Sub TEST11()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120)
.ShapeRange.Line.Weight = 0.75
.ShapeRange.Line.ForeColor.SchemeColor = 64
.ShapeRange.Fill.ForeColor.SchemeColor = 10
.ShapeRange.Fill.OneColorGradient msoGradientFromCorner, 1, 0.59
.ShapeRange.Adjustments.Item(1) = 0.3016
.ShapeRange.ThreeD.SetThreeDFormat msoThreeD7
.ShapeRange.ThreeD.PresetMaterial = msoMaterialMetal
.ShapeRange.ThreeD.Depth = 144#
End With
End Sub

A 回答 (3件)

こんにちは。

maruru01です。

>出来ればSelectしないでShapeRangeの属性を一括変更したいのですが・・・。
Selectしないならこうです。


Sub TEST12()
With ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120)
.Line.Weight = 0.75
.Line.ForeColor.SchemeColor = 64
.Fill.ForeColor.SchemeColor = 10
.Fill.OneColorGradient msoGradientFromCorner, 1, 0.59
.Adjustments.Item(1) = 0.3016
.ThreeD.SetThreeDFormat msoThreeD7
.ThreeD.PresetMaterial = msoMaterialMetal
.ThreeD.Depth = 144#
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!
思ったように出来ました。
わたしが最初に書いたものでは「ShapeRange」が余分だったのですね。
どうしてかわかりませんが助かりました。
ありがとうございました。

お礼日時:2004/05/20 17:03

くくれません。



くくるんだったらこうです。

Sub TEST11()
ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120).Select
With Selection.ShapeRange
.Line.Weight = 0.75
.Line.ForeColor.SchemeColor = 64
.Fill.ForeColor.SchemeColor = 10
.Fill.OneColorGradient msoGradientFromCorner, 1, 0.59
.Adjustments.Item(1) = 0.3016
.ThreeD.SetThreeDFormat msoThreeD7
.ThreeD.PresetMaterial = msoMaterialMetal
.ThreeD.Depth = 144#
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
くくれました。

でも、どうしてもSelectしなければいけませんか?
出来ればSelectしないでShapeRangeの属性を一括変更したいのですが・・・。

よろしくお願いします。

お礼日時:2004/05/20 16:38

Withは、



With object
[statements]
End With

と、objectを指定してくださいという事になっています。

> With ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120)

AddShapeはオートシェイプを追加するメソッドです。

--
Sub Macro11()
' オートシェイプを追加して選択
ActiveSheet.Shapes.AddShape(msoShapeSun, 450, 150, 120, 120).Select
' 選択されたSelectionのShapeRangeの属性を一括変更
With Selection.ShapeRange
.Line.Weight = 0.75


.ThreeD.Depth = 144#
End With
End Sub

では?確認していませんが…
    • good
    • 0
この回答へのお礼

ありがとうございました。
くくれました。

でも、どうしてもSelectしなければいけませんか?
出来ればSelectしないでShapeRangeの属性を一括変更したいのですが・・・。

よろしくお願いします。

お礼日時:2004/05/20 16:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!