• ベストアンサー

ExcelのTODAY関数についての疑問

ExcelのTODAY関数を設定した時に、なぜか??翌日に日付が変わらず、 前日のままになっている事があります。 基本こういった時は、【ツール】【オプション】【計算方法】の中の 【手動】にチェックが入っているのを、【自動】へ変更して直しているのですが、 根本的な解決にはなりません。 いったいどういった事で、このような現象が起きるのか? 何か他に未然防止する方法は無いのか? どなたか教えて頂けないでしょうか? 宜しく御願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 #2の回答者です。 >いったいどういった事で、このような現象が起きるのか? #3 の方が、揮発性関数に触れていたので、私のほうからも書いておくと、まず、TODAY()関数というのは、システムから日付情報取り出して、それをExcelに表示しているものです。そのためには、「値を取得せよ(Calculate)」という命令が必要なのです。その命令のことを、"Calculate Event(カリキュレート・イベント)"と呼んでいます。通常、ブックを開いたときや、他の値を変更したときには、このイベントが走ります。 --------------------------------------------------------- ・手動で、開いているブックに、イベントを走らせる場合は、「F9」、 ・開いているすべての数式を計算させる場合は、「Ctrl + Alt + F9 」を押します。(*大きなブックでは注意が必要です) --------------------------------------------------------- これは、いろんな関数があるので、直接、参照で依存関係(Direct Dependence)関わっているところだけ、値を取るように設計されています。しかし、TODAY()関数は、Excelの他のセル等とは直接関わっているのではないので、「値を取得しなさい」という命令がないと、値をとっていません。 これは、いくらメモリやCPUが大きくなっても、画面の切り替わりなど物理的な変化も含まれますので、関数が、一斉に値を取得し始めたら、機能的にパンクしてしまいます。(これは、Microsoft社の表計算の設計のコンセプトだと思います。) 言い換えると、「値を取得せよ(Calculate)」という命令がないと動かない関数のことを「揮発性関数(Volatile Formula)」と呼んでいます。蒸発するわけではないし、実際には、確保された値は、ブック内に封じ込められているのですが。 #2で書いたのは、上記のショートカットとは違って、その数式のみを計算させる特殊な命令です。 (ここに、出てくる英語は、主に、VBAで出てくる関係の用語です) 参考文献: [XL]変更していないブックを閉じる際保存するか尋ねられる場合

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;402644

その他の回答 (3)

  • kawajisan
  • ベストアンサー率30% (53/171)
回答No.3

揮発性関数を調べる。 例: Excel(エクセル)基本講座:Excelの用語解説(か行) http://www.eurus.dti.ne.jp/~yoneyama/Excel/dic/dic02a.html 注:既定の「自動計算」なら関数がはたらく。「手動計算」ならうごかん。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 今、回答を書いていて、途中で気がついたのですが、 >【ツール】【オプション】【計算方法】の中の >【手動】にチェックが入っているのを、【自動】へ変更 ということは、通常は「自動」にしていないということでしょうか? もし、そうなら、矛盾してしまっています。片方で、値を変更するな、と命令しておいて、値の変更をしないという問題を提示しているわけですからね。 もし、そのままですと、その解決方法としては、マクロによる処理ということになるかと思います。毎回、ワークブックを開けるたびに数式の値の取り直しです。 これはサンプルです。 標準モジュール(VBE-挿入-標準モジュール)に貼り付けてください。 ただし、セキュリティ設定は、「中」以下です。 '標準モジュール 'たとえば、Sheet1 のF1 に、TODAY()関数がある場合 Sub Auto_Open()   Worksheets("Sheet1").Range("F1").Calculate End Sub

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>なぜか??翌日に日付が変わらず、前日のままになっている事があります。 システムの日付は翌日に変更されているわけですよね? 或いは新規でブックを作成(TODAY関数使用)して、双方の変化を見比べるとか?

関連するQ&A