|
▼show さん:
▼show さん:
おはようございます
セルの中の文字の位置の把握は(私のレベルでは)非常にやっかいなテーマです。
前提として、
・運転・停止 の文字がセルの中の横位置、縦位置で左右均等、上下均等に表示されている。
・シートで図形を挿入したときに、塗りつぶしなしが初期値設定されている。
・最初に、そのセルには、○囲み図形は置かれていない。
で、クリックという操作は、エクセル上では、扱いづらいので、ダブルクリックで。
ということを前提にして、かつ、『あたらずとも遠からず』というコードです。
シートのタブを右クリックしてコードの表示を選ぶとでてくるシートモジュールという場所に
以下を貼り付けてみてください。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim ovlName As String
Dim l As Double, t As Double, w As Double, h As Double
Cancel = True
With Target
l = .Left
t = .Top
w = .Width
h = .Height
End With
ovlName = "ovl" & Target.Address(False, False)
If Not IsObject(Evaluate(ovlName)) Then
ActiveSheet.Shapes.AddShape msoShapeOval, l, t, w / 2, h
DoEvents
ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name = ovlName
Else
With ActiveSheet.Shapes(ovlName)
If Not .Visible Then
.Visible = True
.Left = l
Else
If .Left = l Then
.Left = .Left + w / 2
Else
.Visible = False
End If
End If
End With
End If
End Sub
|
|