エクセル雑感
いくつかの数式の計算中にリソース不足になりました。

ExcelマクロVBAとエクセル関数についての私的雑感
公開日:2023-12-28 最終更新日:2023-12-28

いくつかの数式の計算中にリソース不足になりました。


365のエクセルで最近になって急に出始めたエラーメッセージです。
いくつかの数式の計算中にリソース不足になりました。そのため、これらの数式の値を求められません。
何が原因で出力されるメッセージなのでしょうか・・・
どのような対処をしたら良いのでしょうか・・・



エラーメッセージの詳細

かつて見た覚えのないメッセージです。
最近になって急に出始めたエラーメッセージです。

いくつかの数式の計算中にリソース不足になりました。そのため、これらの数式の値を求められません。

いくつかの数式の計算中にリソース不足になりました。そのため、これらの数式の値を求められません。

最初に見た時は、何が原因なのかちょっと悩みました。
当該ファイルの最近の修正内容から思い当たることはあるのですが・・・

リソース不足
この言葉はエクセルではあまり見かけません。
「リソース不足のため、このタスクを完了することができません…」
このようなメッセージは見かけることはありますかね。
これは本当にメモリ不足だったりするわけで、
まずはエクセルを再起動してみる。
それでダメならPCを再起動してみる。
それでもダメなら、
よりメモリの多い高スペックのPCを使うとか、ブック・シートのサイズを小さくするとかで対応することになると思います。
※ブック・シートのサイズを小さくするには、
・データを少なくする。
・数式を減らす。
・書式を減らす。
・目に見えないゴミデータにも気をつける。
等々を複数対応する。


このメッセージが出る時の状況

はっきりとは限定出来ないのですが、、、
このメッセージが出るのはマクロ(VBA)で保存する前に何らかの変更を行う時に発生しているようでした。
(手動操作時にもメッセージ出力されることはあった気もするのですが…)
VBAでは、不要になったデータを消去した後にブックを保存しています。
ご存じのように、
セル値を変更すれば再計算が行われます。
また、エクセルではブックが保存されるときは事前に自動で再計算されます。
これらの再計算の最中にこのメッセージが出ているようでした。

原因となる特定のVBAコードが常にエラー発生するのなら調べようもあるのですが、状況によって発生したりしなかったり・・・
このメッセージが出た後でも、エクセルを再起動するとしばらくは出なくなります。
でも、さらに使い続けるとまた出るようになります。
そして一度メッセージが出ると、その後はほぼ確実にでるようになってしまいます。

メッセージには「OK」ボタンしかないので当然「OK」をクリックします。
すると特に問題もなくそのまま進みます。
ただし、保存されてVBAが終了るまでに数度このメッセージが出ますので。結構煩わしいです。

保存されたブックを開いて確認しても特に問題は見当たりません。
再計算されていないセルがあるかどうかまでは、全シート確認しきれないのですが・・・
VBAでセル値を変更しているのは特定のセルだけなのですが、これらのセルに間違いは見当たらないのですよね。


このメッセージが出る原因は何か

ある意味ここからが本題になります。
このメッセージが出るのは困りますので、何らかの対応をしてメッセージが出ないようにしなければなりません。
それには、そもそも何が原因なのかが分からないと対処できません。

当該ブックに対して最近行った変更は・・・
ちょっと重めのスピル数式を追加したことです。
スピルについて
2019年にOffice365のExcelに実装された革新的な機能としてスピルがあります。数式を入力したセルから結果があふれて隣接したセルにも出力されるのがスピルです。今までは数式を入れたセルにしか結果を出せませんでしたが、スピルでは隣接するセルにまで結果が表示されます。
前々からスピル数式自体は使っていたのですが限定的な使い方だけでした。
今回の変更では最初にUNIQUE関数でキー値を取り出し、
その後はスピル範囲演算子(#)を使ってその前の計算結果の範囲を次々に引き継いでいく数式を追加したのです。

A列のデータをUNIQUE関数でB列に出力、C列ではB1#で処理、D列ではC1#で処理・・・
この連鎖が数段階になっている作りになっています。
いくつかの数式の計算中にリソース不足になりました。そのため、これらの数式の値を求められません。

いくつかの数式の計算中にリソース不足になりました。そのため、これらの数式の値を求められません。

※画像の数式は特に意味のないサンプルです。

スピル範囲演算子(#)は時々で(データによって)データ範囲が可変になります。

スピル範囲演算子は非常に便利な機能です。
スピル範囲演算子はスピルならではの機能です。

はっきりとは言い切れないのですが、スピル範囲演算子は再計算時には結構重い計算になってしまう可能性を含んでいると思います。
もちろん数式とデータによるのですが、便利だからと言って多用すると結構危険かもしれません。
やたらに重いブックになったり、今回のような謎のメッセージがでたり・・・

つまりメッセージが出る時の直接的な処理内容は、、、
スピル範囲演算子の範囲が大きく変更されるようなデータ変更が行われたときに出ていました。
具体的には、最初のデータ範囲のデータを消去した時ですね。
最初のデータ範囲のデータが無くなる事で、その後のスピル範囲演算子の範囲が次々に変更になっていきます。
この時に、
いくつかの数式の計算中にリソース不足になりました。そのため、これらの数式の値を求められません。
このメッセージが出力される場合があるのです。
複数のスピル範囲演算子を連鎖的に使っていると複数回メッセージが出力される可能性があります。
ただしメッセージが出ない場合もあるので、スピル範囲演算子の数だけメッセージが出るとはかぎりません。

ということで今回追加したスピル数式の部分を、VBAで数式設定して計算後に数式を削除して値にするように対処しました。
これでとりあえずブック自体が大分軽くなりました。
スピル数式を追加してからは手動操作時にも大分重く感じていたのですが、それらが大分軽く感じるようになりました。
そしてメッセージも出なくなりました。
これで一応症状は出なくなったので、しばらく様子を見てみることにします。

_人人人人人人人人人人_
> スピル範囲演算子 <
> 使いすぎに注意! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄




同じテーマ「エクセル雑感」の記事

VBAが消えてしまった!マクロが壊れて動かない!
スピらない スピル数式 スピらせる
難しい数式とは何か?
いくつかの数式の計算中にリソース不足になりました。
無効な前方参照か、コンパイルされていない種類への参照です。
エクセルが起動しない、Excelが立ち上がらない
情報システムとは:業務ルールでデータを処理する仕組みです。
変数名に意味は本当に必要か? 層ごとに変わる重要性
脱Excelか、真のExcel活用か:現場実態の二者択一
【スピルの勧め】スピル数式と生成AIが変えるExcel業務の新標準
2の補数表現で表された負の2進数を10進数に変換する方法


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ