・やりたいこと
sheet1がアクティブな状態でマクロを実行させて、sheet2の選択セルの範囲にAddShapeで生成したオートシェイプに対して塗りつぶしなし(輪郭線は黒色)の丸付け処理をさせたい。
Selection以外に何かエラーを解決できる方法があればお教え頂きたいです。
・現状
sheet2がアクティブな状態であればマクロが正常に動作する段階ではある。
・前提
変数typeは別のサブプロシージャにて定義済
type_Check()は別のサブプロシージャ内でCallされる
実行時エラー '438'
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
VBA
1' 選択されているセルに丸を付けるマクロ 2Sub type_Check() 3Application.ScreenUpdating = False 4 5If Not type = "" Then 6 7 If type = "A" Then 8 With ThisWorkbook.Worksheets("sheet2").Range("C6:D6") 9 Worksheets("sheet2").Shapes.AddShape _ 10 (msoShapeOval, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height).Select 11 Selection.ShapeRange.Fill.Visible = msoFalse 'この行でエラー 12 End With 13 14 ElseIf type = "B" Then 15 With ThisWorkbook.Worksheets("sheet2").Range("E6:F6") 16 Worksheets("sheet2").Shapes.AddShape _ 17 (msoShapeOval, Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height).Select 18 Selection.ShapeRange.Fill.Visible = msoFalse 'この行でエラー 19 End With 20 21 End If 22 23 'オートシェイプの線を黒くする 24 With Selection.ShapeRange.Line 25 .Visible = msoTrue 26 .ForeColor.ObjectThemeColor = msoThemeColorText1 27 .ForeColor.TintAndShade = 0 28 .ForeColor.Brightness = 0 29 .Transparency = 0 30 End With 31Else 32 MsgBox ("データが存在しないか間違っています。") 33End If 34 35End Sub
以上、よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。