数式を値に変換するマクロ、シートの数式全部値に一括変換
動画でExcelマクロ解説
数式を値に変換するマクロ
動画版「数式から値に変換」です。
Excelを使っていて、再計算が行われないように、セルの計算式を消して結果の値だけを残したい場合、数式を値に変換する必要があります。
値の貼り付けを行うのが普通だと思いますが、Sheetが複数あったり、計算式が大量にある場合などは、マクロで行う方法が早くて簡単です。
マクロの記録機能で、値の貼り付けをするマクロも作成することができます。方法は、マクロ講座入門編12回で紹介しています。
今回は、最初からコードで書いてしまうので、もっとシンプルになってしまいます。
(サンプルファイルは、こちらです。 数式を値に変換するマクロサンプル)
シートの計算式をすべて値に変換、数式がぎっしり詰まった重たいシート
https://youtu.be/QTG6iLv9eAs
数式を値に変換、シートの計算式をすべて値に変換マクロ
動画で紹介しているシートの計算式をすべて値に変換などのコード
'============================================================== '=3行マクロ、奥が深い 代入の式、Selection.Value = Selection.Value '============================================================== Sub 数式を値に変える() Selection.Value = Selection.Value End Sub Sub 文字列一括入力() Selection.Value = "登録おねがいします" End Sub Sub 選択セルの背景はプラム() Selection.Interior.Color = rgbPlum End Sub Sub レンジのバリューは色() Dim rng As Range For Each rng In Selection rng.Interior.Color = rng.Value Next End Sub Sub レンジのバリューは2つ隣の色() Dim rng As Range For Each rng In Selection rng.Offset(0, -2).Interior.Color = rng.Value Next End Sub Sub シートの数式を値に全部変える() Dim ws As Worksheet Dim rng As Range ' アクティブなワークシートで実行 Set ws = ActiveSheet ' シートの使用中の範囲UsedRange内でループする For Each rng In ws.UsedRange If rng.HasFormula Then ' セルの数式を値に変換 rng.Value = rng.Value End If Next rng End Sub