すぐに役立つ3行マクロ26回

数式を値に変換するマクロ

Excelを使っていて、再計算が行われないように、セルの計算式を消して結果の値だけを残したい場合、数式を値に変換する必要があります。
値の貼り付けを行うのが普通だと思いますが、Sheetが複数あったり、計算式が大量にある場合などは、マクロで行う方法が早くて簡単です。
マクロの記録機能で、値の貼り付けをするマクロも作成することができます。方法は、こちらでマクロ講座16回紹介しています。
今回は、コードで書いてしまうので、もっとシンプルになってしまいます。
(サンプルファイルは、こちらから 3行マクロ26回サンプルデータ

選択範囲の数式を値に変換するマクロ

選択範囲の数式を値に変換します。
下の行にセミナーの出席者の合計表示されています。この式を削除して計算結果の値のみ表示することにします。
Selection.Value
選択した範囲の数式を値に変換したい時は、
Sub 数値を残して数式削除()
    Selection.Value = Selection.Value
End Sub
実行すると、
数式を値に変換するマクロ

特定のセル範囲の数式を値に変換するマクロ

いつも、Sheet1の結果をSheet2にコピーしていて、その数式を消して結果だけ残したい場合は、このような式にすれば、毎回選択する必要がなくなります。
Sub 数値を残して数式削除2()
    Range("Sheet2!B7:G7").Value = Range("B7:G7").Value
End Sub

このように書くこともできます。
Sub 数値を残して数式削除3()
    With Worksheets("Sheet2").Range("B7:G7")
        .Value = .Value
    End With
End Sub
Selection.Value = Selection.Valueという前後一緒の式では、一見何もしていないように見えますが、数式が入力されているセルから値を取得して、同じ範囲に代入しなさいという操作をしています。
数式を値で上書きしていることになりますね。

スポンサーリンク
スポンサーリンク
おすすめコンテンツ