EXCELの自動計算で特定のセルのみ自動計算をしない設定方法はあるか

このQ&Aのポイント
  • EXCELの自動計算で特定のセルのみ自動計算をしない設定方法について質問します。共有しているEXCELファイルのトップ部分にファイルの更新時間を表示させていますが、このセルのみオプションの自動計算の「手動(保存時に再計算)」にしたいです。
  • 共有しているEXCELファイルの特定のセルのみオプションの自動計算を無効にする方法について質問です。ファイルの更新時間を表示するセルは、オプションの自動計算が自動になっているため、EXCELを開くたびに再計算されます。他のセルは自動計算してもらいたいので、このセルのみ手動で再計算する方法を教えてください。
  • 共有しているEXCELファイルの特定のセルのオプションの自動計算を無効にする方法について教えてください。ファイルの更新時間を表示するセルはオプションの自動計算が自動になっているため、EXCELを開くたびに時間が再計算されてしまいます。他のセルは自動計算してもらいたいので、このセルのみ手動で再計算する方法があれば教えてください。
回答を見る
  • ベストアンサー

EXCELの自動(再)計算について

EXCELの自動計算について質問します。 EXCELの自動計算である特定のセルのみ自動計算をしないように設定することは出来るのでしょうか? 具体的には、ある共有しているファイルがありまして、そのトップ部分にファイルの更新時間を表示させております。 NOW()関数をそのセルに設定しているのですが、オプションでの自動計算が自動になっていると EXCELを開いた瞬間にこのファイル更新時間が再計算されてしまいますが、ここの更新時間表示の関数のみ オプションの自動計算の「手動(保存時に再計算)」にしたいのです。 この共有しているEXCELの他のセルには様々な関数が設けてあるのですが、それについては自動で再計算してもらわないと とても困るのです。(コンピュータを余り知らない方々も操作することもあるので、F9を押して再計算して下さいと混乱を招く 様な事はしたくないと言うこともあるので…) 何か良い方法がありますでしょうか?

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

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

こんばんは。 >ただ、私が欲しい事柄は、エクセルファイルを上書き保存したときに >更新日時を表示しているセルにその時の日時を変更したいと言う事なので、 そういうつもりで作っています。 ただし書きを付けるというのは、ダメだったとおっしゃっているのでしょうか? >「エクスプローラから取得できる更新日時」ですと、また更新前の時間に戻ってしまいませんでしょうか? この意味が良く理解できていません。なぜ、更新前の時間に戻るのでしょうか?実害のないコードですから、試してみた上で問題が発生しているなら理解できるのですが、使った様子もないままに、同じ内容を繰り返し要求されるとなると、こちらは、ご質問者様の反応に疑問を持ってしまいます。 エクスプローラから取れるプロパティには、 作成日時、更新日時、アクセス日時 というものがあります。その中の更新日時です。保存した後に、それが、更新前に戻るということはありえません。 補足の最後に、再度要求していますが、 >(更新日時を表示しているセル<A1>のみ、オプションにある手動<保存前に再計算>をしたいのです) 現実はに、保存前にその部分だけ再計算させるということなら、 ユーザー定義関数は一切やめて、以下のように、ThisWorkbook モジュールに保存の際に走るマクロを置くことになります。 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)  With CreateObject("Scripting.FilesystemObject")  Set objFile = .GetFile(ThisWorkbook.FullName)  Worksheets("Sheet1").Range("A1").Value = Format$(objFile.DateLastModified, "yyyy/mm/dd hh:mm:ss") End With End Sub ということになります。保存の際に、ひとつのセルだけ再計算させて、他は再計算させないというようなこと自体は、Excelとしては、無意味なことのようにも感じますが、一体、どのようなことをしているのでしょうか。 私が書いていることに不安や疑いを持って実行できないようでしたら、VBAやマクロのご使用はお勧めできません。私は、良心を持って回答をしている以上、100%の保証も、「自信あり」の表示もしません。万が一のご希望どおりでない可能性も加味して回答しています。どうぞ、その点をご理解になって、ご判断ください。

yumetsuba
質問者

お礼

Wendy02さん こんばんは。 まず始めに私の補足部分のコメントで不愉快な感じを受けさせてしまって申し訳ありません。 私が申し上げた >「エクスプローラから取得できる更新日時」ですと、また更新前の時間に戻ってしまいませんでしょうか? と言うのは、エクスプローラの更新日時を参照するとなると当該ファイルを開く前回に更新した日時を参照すると思っていたので、開いて編集した後の上書き保存時にその前回更新日時が表示されてしまうと思ったからなのです。頭の中では上書き保存→エクスプローラの更新日時を参照→エクスプローラの更新日時の更新と言う順番だと思ったのです。 しかし、今回教えていただきましたマクロで「まさしく、コレ!」と言う結果が出ました。嬉しいです。 また、「不安や疑いを持って・・・」とありますが、とんでもないです。私の拙い文章説明、申し訳ありませんでした。 Wendy02さんのご良心、とてもありがたく思っております。 本当にありがとうございました。

yumetsuba
質問者

補足

お礼で申し上げるのを忘れてしまいました。 >保存の際に、ひとつのセルだけ再計算させて、他は再計算させないというようなこと自体は、Excelとしては、無意味なことのようにも感じますが、一体、どのようなことをしているのでしょうか。 とのことですけど、会社にてあるファイルを共有して利用しております。その共有ファイルをweb上に載せようとしていて、ある商品の在庫を更新する必要があるのです。その商品の横には商品コードに基づいた価格を自動で引っ張ってくる様にしているのですが、この価格を自動で参照するところでvlookupを利用して自動再計算をさせる必要があります。しかし、そのファイルは前回いつ更新してあるものなのかを一目で知りたいと言う話になりました。=now()ですとエクセルを開いた瞬間の日時が表示されてしまって前回更新日時が分からないので、ここのセルのみを自動再計算させず、上書き保存する時にその時の時間を表示するようにしたかったのです。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問者は何を以って、ファイル更新されたと見るのか、ということではないですか。単純に安易に=NOW()をセルに入れるのでなく、質問者がイメージする「データが変更されたとき」、その日付を、その質問のセルの日付を変える、と考える(改める)と良いのでは。 例えば http://www.nurs.or.jp/~ppoy/access/excel/xlM039.html のような記述(問題)がありますが、それは役立ちませんか。 シートのChange イベントは、 セルにデータを入力されると該当する。 VBAで値を変えても該当しない。 自動計算で値が変わっても該当しない。 設定の変更などは該当しない。 コピー貼り付けは該当する。 ようなのでこれを捉えるのが一番近いかなと思うが。

yumetsuba
質問者

お礼

情報提供ありがとうございました。また、参考URLもありがとうございました。 私が欲しい事柄は、エクセルファイルを上書き保存したときに 更新日時を表示しているセルにその日時を変更したいと言う事なのです。ある範囲を変更したとかでは無く、単純にファイルを上書き更新した時の日時が欲しいのです。 (更新日時を表示しているセル<A1>のみ、オプションにある 手動<保存前に再計算>をしたいと言うことです)

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

こんばんは。 以下は、ファイルから更新日時を出す関数マクロです。 エクセルのプロパティとは若干違う可能性があるけれども、エクスプローラから取得できる更新日時とは一致しているはずです。 '------------------------------------------- '標準モジュール Public Function LastModifiedTime() As String '更新時間   Dim myF As String   Dim objFile As Object   myF = Application.Caller.Parent.Parent.FullName   With CreateObject("Scripting.FilesystemObject")   Application.Volatile   Set objFile = .GetFile(myF)   LastModifiedTime = Format$(objFile.DateLastModified, "yyyy/mm/dd hh:mm:ss")   End With   Set objFile = Nothing End Function '------------------------------------------- ※標準モジュールへの取り付け方: Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、 Alt + Q で、画面を閉じます。 '------------------------------------------- ワークシートには、どこにでもよいので、 = LastModifiedTime() とします。 ファイルを開くと、最初このコードが読み込まれないので、#NAME! とエラーが発生してから、ファイルを読んで、元のファイルから、更新日を探してくるという仕組みです。もし、エラーを見たくないのですと、アドインなどにしなくてはなりません。

yumetsuba
質問者

お礼

マクロをご提供いただきましてありがとうございます。 私ではゼッタイに思い浮かばないマクロです。 (マクロは無知なもので…。) ただ、私が欲しい事柄は、エクセルファイルを上書き保存したときに 更新日時を表示しているセルにその時の日時を変更したいと言う事なので、「エクスプローラから取得できる更新日時」ですと、また更新前の時間に戻ってしまいませんでしょうか? (更新日時を表示しているセル<A1>のみ、オプションにある 手動<保存前に再計算>をしたいのです)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>ある特定のセルのみ自動計算をしないように設定することは そのような設定はできません。 NOW()関数は、どうやっても自動計算されてしますので、別の方法(マクロ等)で記入すべきかと思います。 自動計算して貰いたく無い場所に、自動計算する関数を使うのは仕様上の誤りがあると思います。 また、Ctrl + [;] [スペース] Ctrl + [:] という手順で記入すれば、NOW関数と同じ形式で入力出来ます。

yumetsuba
質問者

補足

そうなんですか…。設定できないんですね。 マクロはどうやって記入すれば良いんでしょうか?マクロは全くの無知なので…。 Ctrl+[;],[:]等のキー操作は全く知らない他の方々に対して周知させるのが難しいです。

関連するQ&A

  • EXCELの自動計算について

    ある項目を自動計算でセット後に,値を変更したくないので,そのエクセルファイルの設定を ツール→オプション→計算方法 で手動に変更しました。 その状態で格納しましたが,別のファイルで自動計算のファイルを開けてる状態で,上記のファイルウィ開けると自動計算に変わり,計算されてしまいます。 計算させないような設定はありませんか?

  • A1セルに入力したら、入力時間をA2セルに自動挿入

    こんにちはtmgmです。 Excelでちょっと困っています。 「A1セルに文字を入力したときの時間をA2セルに表示する」ということがやりたいのですが、 実際やってみるとなかなか出来ませんでした。 A2セルの書式をhh:mmなどにして、セルに=if(A1<>"",NOW(),"")と書きました。 これで一応A1セル入力でA2セルに時間は挿入されますが、Excelの自動計算機能により、一度閉じてまた開いた場合や他のセルで自動計算を行うような入力をした際などに時間が更新されてしまいます。 時間が更新されてしまってはだめなんです。 かといってツール→オプションから自動計算を手動にすると、その他の計算(例えばSUM関数など)の自動計算に影響がでて、使い勝手が違ってくるし。。。。 どうすればよろしいんでしょうか? お分かりになる方ご返答宜しく御願い致します。

  • エクセルの複数シート間の計算について

    エクセルについてです。複数のシート間でVLOOKUP関数やSUMPRODUCT関数を使用しています。データ量が大きくなるにつれて、あるセルの数字を変更しただけで、全体の自動計算にとても時間がかかってしまいます。メニュー→ツール→オプションの計算方法タグにて、手動計算にすればいちいち全体の自動計算をさせずに済むのですが、これだと作業シート内の計算も更新されません。作業シート内の計算だけ自動にして、他のシートへの計算は後で行うような方法ってあるのでしょうか?]

  • エクセルで「ブックの計算」が「自動」になりません

    エクセル2007を使っています。 「エクセルのオプション」→「数式」→「計算方法の設定(ブックの計算)」のところで、 何度も「自動」を選択するのですが、一旦、OKを押して、もう一度、「エクセルのオプション」を開けると、「手動」に戻っています。 どうすればよろしいでしょうか。

  • 一つのセルだけを自動計算または手動計算にしたい

    Excel2007利用です。 一つのセルだけを自動計算もしくは手動計算にするということはできないのでしょうか? 「数式」タブの「計算方法の設定」では「自動」「手動」の切り替えができますが、一つのセルだけを自動または手動にはできないのでしょうか? たとえばA1とA2に関数式が入っているとしますが、A1を手動にするとA2が計算されません。ひとつの設定に対して全体が作用されます。一つのセルだけを指定して自動または手動にすることはできないのでしょうか?

  • エクセルの自動計算設定について教えてください。

    毎回エクセルシートを開いて、ツール→オプション→計算式を、手動から自動に変えています。 毎回自動で計算してほしいのですが、いつも終わってまた開くと手動に戻ってしまっております。 どのように自動に固定できるのでしょうか? どうぞ教えて下さい。 PS.余談ですが、なぜ手動の機能があるのでしょうか? 自動であってこそのエクセルだとおもうのですが、手動機能のメリットがナゾです(・・?

  • Excelの自動計算について

    Excelの自動計算に関しての質問です。 計算方法はちゃんと「自動」になっているにも関わらず、関数が入力されているセルを1度アクティブにし、Enterを押さないと計算されません。 どうすれば、自動計算できるようになるのでしょうか?

  • エクセルで自動計算を解除したいのですが?

    エクセルを使っています。たくさんの長い数式を使っておりシートの数も5つくらいあります。それで、最近ひとつのセルに数字を打ち込むだけでも自動計算?が勝手に働くみたいなので、ツールのオプションで計算を「手動」にし、開く時にマクロを「無効」にしているのですが、やはり数字を入力するだけでも自動計算?みたいなのが働いているようでしばらく何にも操作ができない状態になってしまいます。そこで質問なのですが、エクセルを使う上で、まったく計算が働かないようにすることはできるのでしょうか?できれば数値だけをずらずらっと先に打って後でいっきに計算したいんのですが?

  • エクセルの計算方法について

    エクセル2000の計算方法(オプション)についてご教授お願いします。 ファイルを保存するときに計算方法を自動にした場合でも、何らかの原因で手動になることはありえますか?(オプション→計算方法を開かずに) 私の勘違いかもしれませんが、自動→手動になってしまったケースがあります。 よろしくお願いします。

  • エクセルファイルが重くなり、自動計算に時間がかかる

    OS: WindowsXP Pro SP3 Office: Microsoft Excel 2003 SP3 CPU: Pentium 2.8GHz メモリ: 2GB 社内の人から質問があり、困っています。 一つのエクセルファイルに複数の関数が組み込まれています。 一ファイル内に5~7シートあり、このファイル自体重たいファイルです。 また、関数の一部は外部サーバーから参照するものもあります。 これまで長年使っていたファイルなのですが、ある日をさかいに計算に時間がかかるようになりました。 計算は、自動計算で行っていましたが、これまで計算にかかる時間に負担は感じていませんでしたが、今はかなり時間がかかります。 仮想メモリを増やしたのですが、解消されません。 データは、1日1行増えて行きますので、過去半年分の数式を値ベースにしてデータ量を軽くすれば、 以前のように自動計算設定にしても問題なく更新されるのではないかと思い試したのですが、解消されませんでした。 仕方ないので今は自動計算ではなく、手動計算にて行っています。 参照している外部サーバーに関しては、何ら変更していませんし、社内ネットワークも変更は行っておりません。 これまで通り自動計算にして使用したいと思っています。 他の対策方法や、原因と思われるような事がありましたら、教えてください。 よろしくお願いします。

専門家に質問してみよう