You could consider using a style sheet that does this automatically instead of post-processing afterwards. For example:
Notebook[{
Cell[StyleData[StyleDefinitions -> "Default.nb"]],
Cell[StyleData["HideInput", StyleDefinitions -> StyleData["Input"]],
CellEpilog:>With[{obj = EvaluationCell[]}, {cell = NotebookRead[obj]},
NotebookWrite[
obj,
Cell[
BoxData @ ButtonBox[
"\"Press me\"",
ButtonFunction :> NotebookWrite[EvaluationCell[], cell],
Evaluator -> Automatic
],
"Input"
]
]
],
MenuSortingValue->1501
]
},
FrontEndVersion->"11.0 for Mac OS X x86 (32-bit, 64-bit Kernel) (July 28, 2016)",
StyleDefinitions->"PrivateStylesheetFormatting.nb"
]
Install the style sheet, and then use the "Hide Input" style. After evaluating the "Hide Input" cell, the CellEpilog replaces the cell with a "Press me" button.