プロが教える店舗&オフィスのセキュリティ対策術

エクセルのマクロについて
エクセルでセルや結合セルに丸を付ける質問はどれも見ましたが私にとって難題なものがありましたので、教えて下さい。 
結合セルをマクロを使用して丸を付けるものがありますが、どなたか教えては頂けないでしょうか。初心者です、すいません。

1、ダブルクリックで結合セルに文字上に丸(太さ0.75)がつく。
2、ダブルクリックでそのセルから丸が消える。

同じ操作で1,2が繰り返される。

さらにここでもう一つ。
同シート内の※別の場所の結合セルに【データ】の【入力規制】で(リスト)を選択し、リスト内に【■,○,空白,】等の内容を含んでいます。

この上の二つがどちらもちゃんと使える方法が分かりません。
教えては頂けないでしょうか。

ちなみに参考までにマクロはこれを使っています。
正しいマクロを教えて下さい。

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 Target.Address = Shp.TopLeftCell.Address Then
Select Case Shp.Line.DashStyle
Case 1: Shp.Delete: 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

これと入力規制を使おうとしたら、マクロがデバックになってしまい使用できません。
入力規制は残ったままですが、マクロが使えなくなってしまいました。
解決策、何か違うところ、教えて下さい。

A 回答 (1件)

こんにちわ



Line.DashStyleの値が、-2「マイナス2」のとき、エラーになっていたので、
先に判定するようにしました。


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

Select Case Shp.Line.DashStyle
Case 1, 4
If Split(Target.Address, ":")(0) = Shp.TopLeftCell.Address Then
Shp.Delete
Exit Sub
End If
End Select

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
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています