次のコードがあります。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim btn As Button
Dim t As Range
Dim i As Integer
i = Target.Row
If Not Intersect(Target, Range("$B10:$B103")) Then
If Target.Value <> "" Then
For Each btn In ActiveSheet.Buttons
If btn.Name = "I" & i Then
btn.Delete
End If
Next btn
Set t = ActiveSheet.Range(Cells(i, 9), Cells(i, 9))
Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
With btn
.OnAction = "imageshow"
.Caption = "View Images"
.Name = "I" & i
End With
Else
For Each btn In ActiveSheet.Buttons
If btn.Name = "I" & i Then
btn.Delete
End If
Next btn
End If
End If
End Sub
実行すると、B10:B103 に入力された値が整数の場合は機能しますが、テキストまたはテキストと数値の組み合わせ (ここに入力されたデータはこの形式になります) を使用する場合は機能しません。仕事。