- ベストアンサー
エクセル
セル「A1」に「=if(c1<>"",now(),"")」を指定し セル「c1」に文字が入力された時 セル「A1」にその時の時間を表示し 同じ様に セル「A2」に「=if(c2<>"",now(),"")」 セル「A3」に「=if(c3<>"",now(),"")」と使いたいのですが 例えば「C3」に入力した時 A1/A2の表示時間も再計算され A1~A3の表示が同じに成るのですが c3に入力した時に前に入力したA1/A2の時間が再計算されない方法が無いでしょうか(夫々の入力時間が違って残したいのです) アドバイスをお願い致します
- みんなの回答 (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
その他の回答 (1)
- death_note
- ベストアンサー率32% (61/189)
自動再計算をしない設定にすれば値はそのまま残ります。 ただし他のセルも再計算されなくなるので注意です。 または値が入ったセルでF2→F9を押すとデータが値として保存されます。 数式は消えてしまいますが、値は固定されます。 あとはマクロで自動化ですかね。 一度作ってしまえばこっちの方が楽だと思います。
お礼
有難う御座いました 「F2→F9」の方法は参考にさせて頂きました マクロを組むのが最良の様子ですね 勉強します
お礼
欲しかった内容のアドバイスを有難う御座いました マクロはN88BASICの命令語で真似事をしていますが 頂いたプログラムがこんなにスッキリ出来るのに驚いています マクロでの質問が出来るのを教えて貰ったので 今後とも宜しくお願い致します