I asked you about the button type, but no answer. So, I will provide solutions for both types (Form or ActiveX). Please, check the next pieces of code:
In case of an ActiveX button (more probable, according to its name):
Sub changeActiveXButtonCaption()
Dim bt As MSForms.CommandButton
Set bt = ActiveSheet.OLEObjects("CommandButton4").Object
bt.Caption = "In Stock"
End Sub
In case of a Form button, please check/use the next code:
Sub changeFormButtonCaption()
Dim bt As Button
Set bt = ActiveSheet.Buttons("CommandButton4")
bt.Caption = "In Stock"
End Sub
Any of the above controls do not have a TextFrame property. Such a property, usually, belongs to a shape. Is your, so named, "CommandButton4" button a shape?