ここから本文です

エクセルでダブルクリックしたセルを○で囲いたいのですが、

adi********さん

2014/8/3100:20:45

エクセルでダブルクリックしたセルを○で囲いたいのですが、

以下のマクロですと入力規則よりドロップダウンリストを設定したシートでは6行目 「If Not Intersect(Target, Shp.TopLeftCell) Is Nothing Then」でエラーが発生してしまいます。

また、破線での○はいらないのですが・・・・



Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Shp As Shape
Cancel = True
If ActiveSheet.Shapes.Count <> 0 Then
For Each Shp In ActiveSheet.Shapes
If Not Intersect(Target, Shp.TopLeftCell) Is Nothing Then
Select Case Shp.Line.DashStyle
Case 1: Shp.Line.DashStyle = 4: Exit Sub
Case 4: Shp.Delete: Exit Sub
End Select
End If
Next
End If
With ActiveSheet.Shapes.AddShape(msoShapeOval, Target.Left, Target.Top, Target.Width, Target.Height)
.Fill.Visible = msoFalse
.Line.Weight = 0.75
End With
End Sub

よろしくお願いいたします。

閲覧数:
238
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

vcx********さん

2014/8/3100:56:59

adil0030さん

ご自分で書かれたのでは無いようですね。
こんな感じに修正するとか。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Shp As Shape
Cancel = True

For Each Shp In Me.Shapes
If Shp.AutoShapeType = msoShapeOval Then
If Not Intersect(Target, Shp.TopLeftCell) Is Nothing Then
Shp.Delete: Exit Sub
End If
End If
Next

With ActiveSheet.Shapes.AddShape(msoShapeOval, Target.Left, Target.Top, Target.Width, Target.Height)
.Fill.Visible = msoFalse
.Line.Weight = 0.75
End With

End Sub

質問した人からのコメント

2014/8/31 10:20:47

そうなんです。ネット検索で同じようなのを探してきたもので・・・

エラーなく動くようになりました、、破線もなくなりました。 ありがとうございます。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる