• ベストアンサー

あるセルにデータが入力された日を表示

A列(A1)のセルにデータが入った場合、D列(D1)にそのセルに データが入力された日付を表示させたいのですが、どのように やったらいいでしょうか?TODAY関数を使うと毎回更新されて しまいます。 TEXT関数+TODAY関数で出来るかな?と思ったのですが、 =TODAY()を使うとセルに入力された日でなくて、ファイルを開いた 日付に毎回更新されてしまいます。 A列のセルにデータが入った時にD列にその入力日を表示させたい のです。こういう事は簡単に関数を使って出来ませんか?わかる方 がいれば教えてください。

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

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

#02です。 A列の値が変わったらD列に日付を入力するようにしました。A列の複数セルにいっぺんに入力する場合(Ctrl+Enterで入力)でも大丈夫です。 なおA列が空白になったらD列も空白にするようにしてあります Private Sub Worksheet_Change(ByVal Target As Range) Dim r, rng As Range On Error GoTo end0  If TypeName(Target) = "Range" Then   Set rng = Intersect(Target, Columns(1))   If Not rng Is Nothing Then    Application.EnableEvents = False    For Each r In rng     If r.Value = "" Then      r.Offset(0, 3).Value = ""     Else      r.Offset(0, 3).Value = Date     End If    Next r   End If  End If end0:  Application.EnableEvents = True End Sub

huaban
質問者

お礼

すぐ回答いただきまして、ありがとうございます。 上記のプログラムを入れましたら、自動に表示できるように なりました。助かりました。

その他の回答 (4)

noname#176215
noname#176215
回答No.5

ANo.1の者です。 > 試してみましたが、時間が表示されてしまいます。 Timeのところを Dateにして下さい。

huaban
質問者

お礼

ありがとうございます。 Dateにしたら、日付が表示できるようになりましたが、 A列部分空欄した時にD列部分の日付が消えないところが 難点です。 もう1人の方のプログラムでは、A列を空欄にした場合、 日付のところも空欄になる為、そちらを使わせてもらう 事にしました。何度も回答ありがとうございました。

noname#176215
noname#176215
回答No.3

ANo.1の者です。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo xErr If Target.Column = 1 And Target.Value <> "" Then Target.Offset(0, 3).Value = Time End If xErr: End Sub でできると思います。

huaban
質問者

お礼

すぐに回答いただきまして、ありがとうございます。 試してみましたが、時間が表示されてしまいます。

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

質問にある処理を行いたいシートのシート名タブを右クリックし「コードの表示」を選択したときに表示されるVBE画面に、以下のマクロを貼り付けてください。VBE画面を閉じて、A1の値が変更されるとD1に今日の日付がセットされます Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then  Range("D1").Value = Date End If End Sub でも実際にはA1を空白に戻したらどうするかなど、処理上は色々と考えなくてはならないと思います。その気があるならVBAも勉強してみてください。

huaban
質問者

お礼

回答ありがとうございます。 質問の仕方が悪かったのかもしれませんが、A列に どんどんデータが入ってきて、そのD列にその入力日 を表示させたいのです。プログラムしてもらったもの をコピーして、やってみたのですが、これはA1に限定 されてしまいますよね?1ヶ所の入力でしたら、自動 表示する必要がありませんが、件数が多い為、自動に 入力日を表示させたいのです。

noname#176215
noname#176215
回答No.1

この質問 本当に多いですね…… > こういう事は簡単に関数を使って出来ませんか? できません。VBAになります。 挿入した日付の自動更新を中止するには http://okwave.jp/qa953510.html 自動日付入力方法 http://okwave.jp/qa2289506.html このあたりを参考にされてはいかがでしょう。

huaban
質問者

お礼

回答ありがとうございます。 書き込みしていただいた自動日付入力方法を使ってみて、うまく 日付表示が出来るようになりましたが、入力間違えをして、A列~ B列(例えばA1:B4)を範囲選択して、deleteを押すと、B列~D列 (例えばB1:C4すべてのセル)にかけて、日付が表示されてしまうと いうおかしな現象が見られます。何が原因でしょうか? 入力間違えで範囲選択をして、deleteをする時が多々ありますので、 このような現象が出てきてしまうのも困ります。アドバイスをお願い します。

関連するQ&A

  • ☆Excelエクセルで入力した日の日付を表示したいです☆

    こんばんは!エクセルで、なにかデータを入力した横のセルに、その日の日付が自動的に入るような方法があれば、是非教えてくださいm(__)m横の列に手動で日付を入力すればよいといえばよいのですが^^;その列には、また別の日に、追加でデータを入力していきたいですので、前の日の日付もその日の日付も残るようにしたいんです。today関数とかじゃ全部その日になってしまいますよね。。。もし、データを入力しただけで、そのようなことができる方法があれば、是非教えてください。よろしくお願いしますm(__)m

  • セルに値をいれたら、いついれたか表示されるのVB

    すいません。質問です。 セルに値をいれたら、 その入力は、いつ入力したかの日付が表示されるのVBが知りたいです。 例としては A列に任意に数字を入れます。 そうすると、B列に日付が入ってほしいのです。 ↓↓↓↓↓↓↓↓↓↓↓    A    B    C 1 あお 1/12土 2 3 4 あか 1/15火 5 上記のように、A1に「あお」といれたらB1に「それを入力した日付」 上記のように、A4に「あか」といれたらB4に「それを入力した日付」 がいれたいです。(次にファイルを開いたときも、todayでなくその入力日の情報のままで) ここをみたら、 http://q.hatena.ne.jp/1184651644 できそうなんですが、 これ、A1とA2という単独のセルにに対してしかできなさそうで、 A列に対して、B列にずっと表示するには、どういうマクロをくめばよろしいのでしょうか? どうぞおしえてくださいませm(_ _)m

  • エクセル複数のセル内容変更したら更新日を自動表示

    エクセル初心者です。 B2列からG2列にBからG社名(計6社)が記入されてます。 B3列からG3列以降に上記各社の金額を随時入力します。 H2列からM2列のセルは上記B社からG社の更新日と記入しています。 A3列以降には品名が記入されています。 B3列からG3列のセルの内容を更新すると、それぞれ該当する社名の H3列からM3列のセルに更新日付が自動的に表示させたいと思っております。 例えば、 B社の「B5」へ新規に金額入力したり、金額更新した時に、該当するセル「H5」に その日の日付が自動で表示される。 D社の「D6」へ新規に金額入力したり、金額更新した時に該当する「J6」に その日の日付が自動表示される。 そして、違う日にもう一度、同じ欄に入力すれば、その入力した日付に随時更新されるようにするための方法を教えていただければ幸いでございます。 特定のセルの場合の方法は検索等で確認できましたが、複数の場合の方法が分かりません。 何卒、宜しくお願いいたします。

  • 西暦から、曜日を表示⇒何も入力されていない⇒土曜日

    タイトルの件、質問いたします。 下記の関数をご覧ください =TEXT(A1,"aaaa") A1に、日付が入力されていると、その曜日を返します 例A1⇒2013.1.31 B2に木曜日 しかし、A1に何も入力されていないと、土曜日と表示されます なぜでしょうか? やりたい事は、何も表示されていない場合は、B2セル【関数が入っているセル】にも 何も表示されないようにしたいです 以上、ご存知の方、いらっしゃいましたら、宜しくお願いします。

  • 開始日を入力したセルと終了日を入力したセルがあり関数で開催日全ての日程

    開始日を入力したセルと終了日を入力したセルがあり関数で開催日全ての日程をカンマ区切りでひとつのセルに表示させたいのです A1 2010/9/8  B1 2010/9/10  C1  2010/9/8,2010/9/9,2010/9/10 のように表示させたくて セルA1に開始日、セルB1に終了日、 セルC1に =CONCATENATE(A1,",",A1+1,",",B1) と入力したところ 「40429,40430,40431」と表示されてしまいました セルの表示形式は「日付」です 日付の形式で表示させるにはどうしたらいいのでしょうか また日程は3日だけでなく5日のものもあるので もっといい方法があったら教えていただけると助かります 1000行以上あるので面倒くさいんです。助けてください

  • VBA 検索したセルに入力

    ExcelのVBAを使用して データの入力されたファイルに行列から検索したセルに数値を入力したいのです。 例えば、名前(行)と、日付(列) 2つの条件で、セルを検索し、該当するセルに、データ(数字とか)を 入力したいのです ------------------------------------  6/1 6/2 6/3 6/4 ・・・ a b c ・ ・ ------------------------------------ 例えば、A5に名前、B5に日付、データエリアがB10:Z20の場合 =INDEX(B10:Z20,MATCH(A5,A10:A20,0),MATCH(B5,B9:Z9,0)) で、該当するセルを探すことはできたのですが、 このセルに、データを入力したいときは、 ROWやCOLUMNで、行番号、列番号を取り出して Cellsで、入力すればいいのかな?と考えていますが もっと簡単にできるのでしょうか? (FIND関数は、使ったことがなく、どうなんだろう?と) それでいいよ とか、こっちの方が簡単 とかあれば、教えてください 

  • エクセル2000:「半角数字で年/月/日と入力する」と表示され、入力できない

    会社で使用しているエクセルの書式があるのですが、日付が入っているセルに「=TODAY()」が入っていました。 自動的に今日の日付が入るわけですが、日付を入れたくなかったので、「=TODAY()」を消し、「平成  年  月  日」と入力すると、ダイアログが表示され、「半角数字で年/月/日と入力する。」と表示されます。 ここから困っているのですが、表示形式を日付から標準や文字列等に変えても、同じダイアログが出ます。入力する文字は、数字・アルファベット・ひらがな・漢字のどれを入力しても、全角・半角のどちらを入力してもダメでした。 半角で「2007/1/1」と入力してもダメです(泣) IFやSUM関数を入れても表示されないのですが、TODAYだけ、入力が出来ました。 私が作った書式ではないため、何が問題なのかさっぱり分かりません。 ちなみに、その書式にはマクロが入っています。(印刷の設定をマクロでしているようなのですが、書いてあることはよく分かりません。)これを無効にしても、ダメでした。 長くなり申し訳ありません。 「=TODAY()」しか入力を受け付けないのはどうしてなのでしょうか? どうすれば、通常の入力ができるのでしょうか? ご存知の方、よろしくお願いします。

  • 入力されるまで合計セルを空白にしたいのですが

    A5:A120にデータ入力し、A121に「Sum」で合計を だしています。B列からM列も同様になっています。 列のデータは1~0の数字だけです。 当該列のセルが未入力だと当然合計欄は「0」に表示 されています。 この場合、「0」が目障りなので、いずれかのセルにデータ が入力されない限り、空白表示にしておきたいのです。 どんな関数をどう使えば良いのでしょうか?

  • 特定セルの内容を更新したら、その更新日を自動的に表示する方法について

    エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させたいと思っております。 例えば『A1』へ新規に文字入力したり、セルの内容を更新した時に、セル『B1』にその日の日付が自動で表示される。 そして、違う日にもう一度、同じ欄に入力すれば、その入力した日付に随時更新されるようにするための方法を教えていただければ幸いでございます。 御手数ですが、エクセル関数またはVBA、マクロのいずれかで実現可能な方法があれば教えて下さい。 何卒、宜しくお願いいたします。

  • エクセルで、あと何日あるかを表示させる関数

    いつもお世話になります。 例えば、 Aのセルに『2006/1/12』という今日の日付データを入力します。 同じくBのセルに『2006/3/27』という未来の日付データを入力します。 Bの日付の「未来」まで、あと何日あるのか?という日にちをCのセルに表示させるには、 どのような関数を入力すれば良いのでしょうか? お詳しい方、何卒ご教授くださいませ。

専門家に質問してみよう