ここから本文です

【500枚】エクセルで、セルの入力時刻を表示する事はできますか? もしくはそんな...

kok********さん

2010/12/604:58:02

【500枚】エクセルで、セルの入力時刻を表示する事はできますか?
もしくはそんなフリーソフト探してます!

具体的な例を挙げると、
A1に何か文字や数字を入力した時、B1に入力した時刻が出る様な…

用途として、いつ、誰が、なんの作業をしたのか管理をしたいのですが、
今の所「エクセルでメモできるかなぁ?」くらいの考えでいます。
紙に書いても良いのですが、何度も入力しなおしたいのと用紙代等が気になるので…

もしくはそれに近い事のできる良いフリーソフトなんかがあれば教えて下さい!

無知で申し訳ありませんが、よろしくお願いします。

閲覧数:
25,442
回答数:
5
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

エコじいさん

2010/12/606:40:53

先の回答者様同様にマクロです。こちらはシートモジュールで、シートの見出しタブ右クリック→コードの表示、で表示されるVBEditorウィンドウの広い部分にコードをコピペして利用。A列の入力があった場合に、隣のB列に日時を書き込むマクロです。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Target.Offset(0, 1) = Now
End Sub

質問した人からのコメント

2010/12/10 06:36:10

降参 皆さんありがとうございました!
さまざまな意見を参考にさせて頂いて、ホントは皆さんにベストアンサーを差し上げたいですが…
今回は目的と私のレベルに一番合っていたecojiji2さんにさせて頂きました。
選ぶ事のできなかった皆さんも本当にありがとうございます。
でもマクロってスゴいんですね!
エクセルの奥深さに少し触れる事ができた気がします。

ベストアンサー以外の回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

hNoppoさん

編集あり2010/12/711:09:13

入力履歴を記録するマクロを作ってみました。
「ThisWorkbook」モジュールに次のコードをコピーしてください。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Sh0 As Worksheet
Dim rNum As Long

If Sh.Name = "入力履歴" Then Exit Sub
On Error GoTo AddSheet
Set Sh0 = Worksheets("入力履歴")
On Error GoTo 0
Sh0.Range("A1").Value = "入力日時"
Sh0.Range("B1").Value = "シート名"
Sh0.Range("C1").Value = "セル番地"
Sh0.Range("D1").Value = "入力内容"
rNum = Sh0.Range(Sh0.Cells(Rows.Count, 1).End(xlUp), Sh0.Cells(Rows.Count, 1)).Find _
(What:="", LookAt:=xlWhole).Row
Sh0.Cells(rNum, 1).NumberFormat = "yyyy/m/d h:mm:ss"
Sh0.Cells(rNum, 1).Value = Now
Sh0.Cells(rNum, 2).NumberFormat = "@"
Sh0.Cells(rNum, 2).Value = Sh.Name
Sh0.Cells(rNum, 3).NumberFormat = "@"
Sh0.Cells(rNum, 3).Value = Target.Address(False, False)
If Target.Count = 1 Then
Sh0.Cells(rNum, 4).NumberFormat = Target.NumberFormat
Sh0.Cells(rNum, 4).Value = Target.Value
End If
Exit Sub

AddSheet:
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "入力履歴"
Sh.Activate
Resume
End Sub

どこかのセルに入力があると、シートタブの最後尾に「入力履歴」シートが追加され、A~D列に入力日時、シート名、セル番地、入力内容が記録されます。

なお、オートフィルタを設定すれば、入力履歴をシート名やセル番地等で絞り込むことも可能です。

※ 「入力履歴」シートにオートフィルタを設定したままでもマクロが正しく動作するように修正しました。

kei_jun_kuuさん

2010/12/611:00:22

マクロ案も出てしまって、、
関数案も出ましたね。。
でも、hareyaka_skyさん、A1だけにしか入力するのなら良いのですが、、
他のセルを「編集」すると、すべてのNOW関数が作動しちゃいます。。

わたしの提案は、まず「ショートカットキー」です。
セルを選択して、「Ctrl」キーを押下したまま「:」を押すと、「10:50」のように現在の時間が入力されます。。
「Ctrl」キーを押下したまま「;」を押すと「2010/12/6」のように今日の日付が入力できます。
もうひとつは、エクセルではありませんが、
「すべてのプログラム」→「アクセサリー」の中の「メモ帳」です。
適当に文章を入力後、「F5」を押下すると「10:54 2010/12/06」のように、現在の日付と時刻が入力されます。

har********さん

編集あり2010/12/607:59:53

シート関数で
B1に

=IF(A1<>"",NOW(),"")
後はセルの書式設定で時刻で出来ます

下にコピーで完成です。

ドリさん

2010/12/605:12:06

セルA1限定ならば次のコマンドを入力することで実施できます。
'====================================================
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Range("A1") <> "" Then Range("B1") = Now
End Sub
'====================================================
入力する場所はAlt+F11を押して下さい。
VBEが立ち上がりますので、左にあるプロジェクト内のThisWorkbookを右クリック
コードの表示を選択すると、右側に白いページが表示されます。
その白いページに上記コマンドをコピーペーストをして貼り付けてください。
その後、どのシートでもいいので、A1に文字か数字を入力すると、B1に日時が入ります。
B1の日時が#####となった場合は、B1のセル幅を広げてください。


これは、マクロという機能です。
上記コマンドはVBAという言語を使用して記述しています。
他にも、細かい作業等ができて便利なので、良ければこれを気に勉強されてはいかがでしょうか。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる