エクセルの数式を一括で値に変換する方法|基本、ショートカット、VBA

エクセルの数式を一括で値に変換したいときはないでしょうか。

特に見積書など金額を社外へ提示する時に多いかと思います。

けど、そんな中で悩むことは、

・エクセルの数式を一括で値に変換したいがやり方がわからない。
・ショートカットやVBAで効率的に行いたいがやり方がわからない。

ですよね。

今回はそんなお悩みを解決する
エクセルの数式を一括で値に変換する方法について
まとめます!


エクセルの数式を一括で値に変換する基本操作

数式があるセルを選択します。

右クリックし[コピー]を選択します。

右クリックし、[形式を選択して貼り付け]>[値]を選択し[OK]をクリックします。

または[ホーム]>[値の貼り付け]>[値]を選択します。

数式が値に変換されました。

数式が値に変換されましたね。




エクセルの数式を一括で値に変換するショートカット

エクセルの数式を一括で値に変換するショートカットは以下の順序で実施します。

数式を値に変換

計算式のセルを選択
Ctrl + C

Alt + H

Alt + V

Alt + V

もしくは

Ctrl + C

Ctrl + Alt + V

[値]を選択し[OK]をクリック

もしくは

計算式のセルをWクリック

F9

タカヒロ
タカヒロ
「F9」キー操作の場合は、複数選択の変換はできませんのでご注意ください。




エクセルの数式を一括で値に変換するVBA

エクセルVBAでエクセルの数式を一括で値に変換する方法について説明します。

サンプルのVBAは以下の通りです。

数式を値に変換(シート全体選択)

Cells.Selectですべてを選択します。
次に、Selectionで選択範囲を対象とし、
PasteSpecialメソッドで数式を値に変換します。

Sub 数式を値に変換_シート全体選択()
    'すべて選択
    Cells.Select

    'コピー
 Selection.Copy
    
    '数式を値に変換
     Selection.PasteSpecial Paste:=xlPasteValues    
End Sub

PasteSpecialメソッドのパラメータ「Paste」に値変換のプロパティを設定していますが、値以外にも設定は可能です。

貼り付け対象 プロパティ
すべて xlPasteAll(既定) -4104
数式 xlPasteFormulas -4123
xlPasteValues -4163
書式 xlPasteFormats -4122
コメント xlPasteComments -4144

数式を値に変換(シートとレンジ指定)

数式を値に変換したいシート及びセルの範囲が決まっている場合は以下のようにします。

ThisWorkbook.Worksheets(“<シート名>”).Range(“<セルの範囲>”).ClearContents

Sub 数式を値に変換_シートとレンジ指定()
    
    '数式を値に変換_シート指定
    ThisWorkbook.Worksheets("Sheet1").Range("C1:D8").Select

    'コピー
    Selection.Copy
    
    '数式を値に変換
     Selection.PasteSpecial Paste:=xlPasteValues
End Sub

数式を値に変換(ブック全体)

数式を値に変換する対象をブック全体とする場合は、存在するシート分処理を繰り返すようにします。
Sheets.Countプロパティでシートの件数を取得し、
Sheets(num)でシートのインデックスを指定し、指定レンジ「”C1:D8″」を対象に書式をクリアにします。
なお、コピーメソッドはシートをアクティブにしないと機能しないため、都度Sheets(num).Selectメソッドで選択しています。


Sub 数式を値に変換_ブック全体()
    
    Dim num As Integer
    
    '数式を値に変換_ブック全シート対象
    For num = 1 To Sheets.Count
    
        'シート選択
        Sheets(num).Select
        
        'レンジ選択
        Sheets(num).Range("C1:D8").Select

        'コピー
        Selection.Copy
   
        '数式を値に変換
        Selection.PasteSpecial Paste:=xlPasteValues

    Next
    
End Sub

タカヒロ
タカヒロ
こちらを実行する場合はブック全体の書式設定がクリアされますので、実行前にバックアップをしたほうがよいでしょう。

VBAの実装手順

実装手順は以下の通りです。

今回はExcel側にこのVBAを実装します。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。
※完了メッセージやステータス管理など必要に応じて実装してもらえばと思います。


さいごに

いかがでしょうか。

今回は、
エクセルの数式を一括で値に変換する方法について
まとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です