• ベストアンサー

エクセル

セル「A1」に「=if(c1<>"",now(),"")」を指定し セル「c1」に文字が入力された時 セル「A1」にその時の時間を表示し 同じ様に セル「A2」に「=if(c2<>"",now(),"")」 セル「A3」に「=if(c3<>"",now(),"")」と使いたいのですが 例えば「C3」に入力した時 A1/A2の表示時間も再計算され A1~A3の表示が同じに成るのですが c3に入力した時に前に入力したA1/A2の時間が再計算されない方法が無いでしょうか(夫々の入力時間が違って残したいのです) アドバイスをお願い致します

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

関数では無理でしょう。再計算されると値が最新状態に変わってしましますから。 ショートカットのCtrl+;、Ctrl+:で日付、時刻を入力する方法もありますが「C列に値を入れたら自動で」とはいきません。マクロを利用するのが一般的な方法になります。「マクロはちょっと…」というのであればあきらめてください。 以下のマクロを入力するシートの「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けてください。ワークシート画面に戻ってC列に値を入れてみてください Private Sub Worksheet_Change(ByVal Target As Range) Dim r, rng As Range  Set rng = Intersect(Target, Columns("C:C"))  If Not rng Is Nothing Then   For Each r In rng    If r.Value = "" Then     Cells(r.Row, "A").ClearContents     Cells(r.Row, "A").NumberFormatLocal = "G/標準"    Else     Cells(r.Row, "A").Value = Date + Time     Cells(r.Row, "A").NumberFormatLocal = "yyyy/m/d hh:mm"    End If   Next  End If End Sub

yk_86bfe5d
質問者

お礼

欲しかった内容のアドバイスを有難う御座いました マクロはN88BASICの命令語で真似事をしていますが 頂いたプログラムがこんなにスッキリ出来るのに驚いています マクロでの質問が出来るのを教えて貰ったので 今後とも宜しくお願い致します

その他の回答 (1)

回答No.1

自動再計算をしない設定にすれば値はそのまま残ります。 ただし他のセルも再計算されなくなるので注意です。 または値が入ったセルでF2→F9を押すとデータが値として保存されます。 数式は消えてしまいますが、値は固定されます。 あとはマクロで自動化ですかね。 一度作ってしまえばこっちの方が楽だと思います。

yk_86bfe5d
質問者

お礼

有難う御座いました 「F2→F9」の方法は参考にさせて頂きました マクロを組むのが最良の様子ですね 勉強します

関連するQ&A