数式を値に変換する
3行マクロ 26回
数式を値に変換するマクロ
Excelを使っていて、再計算が行われないように、セルの計算式を消して結果の値だけを残したい場合、数式を値に変換する必要があります。
値の貼り付けを行うのが普通だと思いますが、Sheetが複数あったり、計算式が大量にある場合などは、マクロで行う方法が早くて簡単です。
マクロの記録機能で、値の貼り付けをするマクロも作成することができます。方法は、こちらでマクロ講座16回紹介しています。
今回は、コードで書いてしまうので、もっとシンプルになってしまいます。
(サンプルファイルは、こちらから 3行マクロ26回サンプルデータ)
Excelバージョン:
選択範囲の数式を値に変換するマクロ
選択範囲の数式を値に変換します。
下の行にセミナーの出席者の合計表示されています。この式を削除して計算結果の値のみ表示することにします。
下の行にセミナーの出席者の合計表示されています。この式を削除して計算結果の値のみ表示することにします。
選択した範囲の数式を値に変換したい時は、
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 SubSelection.Value = Selection.Valueという前後一緒の式では、一見何もしていないように見えますが、数式が入力されているセルから値を取得して、同じ範囲に代入しなさいという操作をしています。
数式を値で上書きしていることになりますね。