これは、あなたが要求したことを行うための抜粋です。方法を知る必要があると言ったので、これがどのように機能するかを完全に明確にするために、数行の前にいくつかのコメントを追加しました。
Option Explicit
'Declare a private variant to store the range formulas
'Variable is declared as private so that it remains in scope within the module
'Variable could also be declared as static within the sub with the same results.
Private rangeFormulas As Variant
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
'Transfer the range formulas to the variant.
rangeFormulas = Range("H5:H38").Formula
Range("H5:H38").Value = Range("H4").Value
Else
'Restore the formulas from the private variant variable.
Range("H5:H38").Formula = rangeFormulas
End If
End Sub
技術的には、 と を使用することもできrangeFormulas = Range("H5:H38").Value
ましRange("H5:H38").Value = rangeFormulas
たが、代わりに数式を元に戻した方が同じ結果が得られるのではないかと考えました。