このサイト・インストラクターのネタ帳で、
「エクセル 値 残す 計算式 消す マクロ」
「値を残して数式を削除するマクロ」
といった検索が行われていることがあります。
計算結果を残して、数式・計算式を削除するVBA(Visual Basic for Applications)マクロを探している方の検索でしょう。
ループ処理で順番に数式を探してその結果を同じセルに張り付ければいいんだろう、と考えてしまう方もいらっしゃるかもしれませんが、そんな処理は一切必要ありません。
わかってしまうと驚くほど単純なコードで、計算結果を残して数式を削除するマクロはできてしまいます。
以下のようなマクロで、計算結果を残して数式を削除できてしまうのです。
Selection.Value = Selection.Value
End Sub「Selection.Value = Selection.Value」
というのは、選択されているセルの値をその値にしなさいといった意味です。
選択するときに、数式なのか、値なのかを気にする必要もありません。
値が入っているセルは値がそのまま入れられるだけですから何も変化しません。
数式が入っているセルだけ、数式が値に置き換わります。
選択範囲に対して有効なので、削除したい数式が入力されているセル範囲を選択して実行してください。
たった1行だけですからイミディエイトウィンドウから実行するのも簡単です。
「selection.value=selection.value」
とイミディエイトウィンドウに入力して[Enter]キーを押せば、計算結果が残り、数式は削除されます。
Home » Excel VBA Rangeオブジェクト » セル数式 » 計算結果を残して数式を削除するExcelマクロ