本記事には広告(PR)が含まれます。 くわしくは プライバシーポリシー をご確認ください。
Excelで抽選や乱数を使った表を作っていて、
「せっかく決めた結果が勝手に変わってしまった…」
と困ったことはありませんか?
RAND関数やRANDBETWEEN関数は便利ですが、Excelの再計算によって、入力や再読み込みのタイミングで値が更新されてしまうことがあります。
くじ引きやルーレット、ランダムな当番表などでは、結果を固定したい場面も多いですよね。
実はExcelでは、
- 値のみ貼り付けで固定する方法
- 手動計算モードで再計算を止める方法
- 反復計算で数式を残したまま値を保持する方法
- VBAで固定や復元を自動化する方法
など、いくつかの対策があります。
この記事では、Excelで再計算を防ぎ、値を固定する方法を初心者向けにわかりやすく解説します。
「抽選結果を固定したい」「数式を残したまま値を保持したい」という方は、ぜひ参考にしてみてください。
やりたいこと別ガイド
Excelの再計算を防ぐ方法とは?マクロや関数を活用して値を固定する方法を解説!
Excelで再計算を防ぐ方法とは?
Excelの再計算とは、セルの値が自動的に更新される仕組みです。たとえば、以下の関数は再計算のたびに異なる値を返します。
=RAND()→ 0以上1未満のランダムな小数を生成=RANDBETWEEN(1,10)→ 1~10の範囲でランダムな整数を生成=TODAY()→ シートを開くたびに現在の日付に更新
この再計算は通常便利ですが、くじ引きやルーレット機能をExcelで作成する際には不便です。たとえば、一度決定した当選者の結果が、F9キーを押したりExcelを閉じて再度開いたりすると変わってしまいます。これを防ぐための方法を5つ紹介します。
くじ引き・ルーレットの作成方法についてはこちらをご参考ください。
Excelで再計算を防ぐ5つの方法
1. 値のみ貼り付けで固定する(最も簡単な方法)
再計算を防ぐ最も簡単な方法は、「値のみ貼り付け」を使うことです。関数をそのままにしておくと再計算されてしまうため、関数の結果を「値」に変換することで固定できます。
値のみ貼り付けの手順
- 関数のあるセルを選択
- Ctrl + C(コピー)
- [右クリック] → [値の貼り付け] を選択

これで、数式が削除され、表示された値のみが保持されます。
ショートカットキーで値を貼り付ける方法
- Ctrl + C(コピー)
- Ctrl + Alt + V(形式を選択して貼り付けを開く)
- V(値)を選択してEnterキー
これにより、元の関数が削除され、固定された値のみが残ります。
メリットとデメリット
メリット
メリットとしては、一度決定した値を変更せずに固定できることです。また、誰でも比較的簡単に実行しやすいため、初心者向けの方法といえるでしょう。
デメリット
デメリットとしては一度貼り付けると、元の関数は消えてしまいます。再度利用する場合は、関数を入力し直す必要があるため、手間と感じる方もいるかもしれません。
もし、後で再利用したい場合は、エクセルの設定・機能を利用したり、VBAを使って自動で貼り付ける方法を活用しましょう。
2. 手動計算モードに切り替える
Excelのデフォルト設定では、シートの数式は「自動計算」モードになっています。しかし、これを「手動計算」モードに変更すれば、Excelが勝手に再計算を行わなくなります。
手動計算モードにする手順
- [数式] タブを開く
- [計算方法の設定] → [手動] を選択
- 必要に応じて F9キー で再計算を実行

メリットとデメリット
メリット
手動計算モードに変更した場合は、すべての関数の再計算を防げます。計算を行いたいときは、手動でF9キーを押せば更新できます。
関数を多用したために動作が重くなったエクセルファイルには有効といえるでしょう。
デメリット
デメリットとしては他の数式も計算されなくなってしまいます。
すべてのシートに影響を及ぼすため、使いどころを選ぶ必要があります。
3. 反復計算を活用する
Excelの「反復計算」機能を使うと、関数を消さずに値を固定することができます。
反復計算を有効にする手順
- [ファイル] → [オプション] → [数式]
- [計算方法の設定] → [反復計算を有効にする] にチェックを入れる
- 最大反復回数 を1に設定
関数の書き方
以下のようなIF関数を使うと、一度決定した値はそのまま維持されます。
=IF(A1="",RAND(),A1)
これは、A1セルに値がなければRAND()を計算し、一度値が入力されたらそのまま固定するという仕組みです。
メリット
反復計算を使うと、Excelの関数を自動で繰り返して値を少しずつ変えながら計算できます。そのため、手動で何度も数式を入力し直さなくても、条件に合った値を求めることができます。
デメリット
設定を間違えると、無限に計算が続いてしまい、Excelがフリーズすることがあります。また、計算が重くなり、Excelの動作が遅くなることもあるので注意が必要です。
4. VBAで「値のみ貼り付け」を自動化する
関数をそのまま使うと再計算されるため、値のみを固定すれば再計算を防げます。ただし、手作業で「値のみ貼り付け」を行うのは面倒なので、VBAを使って自動化すると便利です。
※VBAを設定するには初期設定などの事前準備が必要です。
詳しくはこちらからご確認ください。
値を固定するVBAコード
Sub 値を固定()
Dim rng As Range
Set rng = Range("B2:B11") ' 固定したい範囲を指定
rng.Value = rng.Value ' 関数を削除して値のみを保持
End Sub
このマクロを実行すると、B2:B11 の範囲にある関数が値のみに置き換わります。
ボタンを作成し、このマクロを割り当てると、クリックするだけで再計算を防げます。
↓値を固定マクロを実行する前

実行するマクロを選択し、実行ボタンを押します。

指定した場所の値が関数から実際の数値に固定されました。

実際にルーレットなどで値を固定する場合はマクロ登録したボタンを設置するなどして、簡単にマクロを実行できるようにした方が実用的でしょう。
マクロボタンの設置方法についてはこちらをご確認ください。
5. VBAで数式を復元する
「値のみ貼り付け」で固定すると関数が消えてしまうため、VBAを使って数式を復元できるようにしておくと便利です。
数式を復元するVBAコード
Sub 数式を復元()
Dim rng As Range
Set rng = Range("B2:B11") ' 数式を復元する範囲を指定
rng.Formula = "=RAND()" ' 復元したい数式を指定
End Sub
このマクロを実行すれば、数式が復活するので、再度くじ引きやルーレットを実施できます。
「関数やマクロ、少し難しい…」と感じた方へ
再計算やVBAも、基本を押さえると理解しやすくなります。
▼Excelの基本から学びたい方はこちら
👉 エクセルが難しい人必見!独学でできる勉強法はこちら
▼VBAも学んでみたい方はこちら
👉 VBAを独学で学ぶ手順まとめ
まとめ
Excelの再計算機能は便利ですが、場合によっては意図しない更新が発生するため防ぐ必要があります。
手動計算モード、VBA、反復計算などの方法を活用すれば、用途に応じた最適な方法を選ぶことができます。
- 簡単に防ぎたい → 値のみ貼り付け
- すべての計算を制御したい → 手動計算モード
- 関数を消さずに固定したい → 反復計算を活用
- 完全に値を固定したい → VBAで値のみ貼り付け
- 後で復元もしたい → VBAで数式を復元
用途に合わせて、最適な方法を選び、Excelの作業効率を向上させましょう!
よくある質問(FAQ)
Excelで再計算を止める一番簡単な方法は?
Excelで再計算を完全にオフにできますか?
関数を消さずに値を固定する方法はありますか?
値のみ貼り付け後に元の数式へ戻せますか?
【関連記事】
- エクセルでルーレットを作る方法と活用術を徹底解説
- Excelでマクロを作るなら最初にやるべきVBAの基本設定とは?
- 初心者でも簡単!Excelマクロボタンの設定と実践的な活用法
- エクセルで座席表の作り方|初心者でも簡単&自動化する方法を解説
