- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
他にも方法があったような気がしますが、とりあえず、こんな感じではどうでしょうか? シートタブを右クリックし、[コードの表示]で、開いた所(VBE)に以下を貼り付けます。 以下は、丸が、セルの大きさを越えないので、少し小さいかもしれません。 '// Private Sub Worksheet_Change(ByVal Target As Range) Dim shp As Shape Dim Lf As Double Dim Tp As Double Dim Wd As Double Dim Ht As Double If Target.Column <> 1 Then Exit Sub '1列目でなければ除外 If Target.Count > 1 Then Exit Sub If IsNumeric(Target.Value) = False Then Exit Sub '数字でなければ除外 With Worksheets("Sheet2") For Each shp In .Shapes If Not Intersect(shp.TopLeftCell, .Rows(Target.Row)) Is Nothing Then shp.Delete End If Next shp If Target.Value <= 0 Then Exit Sub With .Cells(Target.Row, Target.Value + 1) Lf = .Left: Tp = .Top: Wd = .Width: Ht = .Height '○の大きさは、WdとHtに、足して調整してください。 End With With .Shapes.AddShape(msoShapeOval, Lf, Tp, Wd, Ht) .Fill.Visible = msoFalse .Line.Weight = 1.5 '線の太さ End With End With End Sub
その他の回答 (1)
- masatsan
- ベストアンサー率15% (179/1159)
マクロの記録で記録したらいかがですか?
お礼
丁寧な回答感謝申し上げます。 勉強させていただきます。