• ベストアンサー

エクセルです。日付に紐づく処理をしたい。

いつもお世話になります。 今回ご教授いただきたいことは、あるセルに(仮にA1とします)に何がしかの入力がなされた際に、別のセル(C1)に処理を行った「その日」を表示させたいのですが、そんなことがたとえば、関数を使ってできますでしょうか。 TODAY関数ですと、永遠に「今日」を表示してしまいますし、、、。 よろしくお願い致します。

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

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

こんにちは。 あえて、こういうイベントドリブン型でなくてもできるはずだと思いますが、一般的な方法です。 除外項目は、良くみて、必要なければ省いてください。 現在の場合は、貼り付けにする場合は、1セルのみです。複数セルにするには、コードを換えなくてはなりません。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub 'A列以外は不可 If Target.Count > 1 Then Exit Sub 'セルが複数の場合は不可 If Target.HasFormula Then Exit Sub '数式は不可 If Target.Value = "" Then Exit Sub '削除する場合は不可 If Target.Offset(, 2).Value <> "" Then Exit Sub 'C列に文字がある場合は不可 Application.EnableEvents = False   Target.Offset(, 2).Value = Date Application.EnableEvents = True End Sub

perikan2
質問者

補足

ありがとうございます。早速試してみます!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

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

関数のメリットは、いつも、引数が変更されれば、再計算するという仕組みにあります。 ですから1回限りセルの値を決めて、2回目から働かない(計算や処理をしない、ができません。 ですからエクセルの現在の関数ではできません。 ーー VBAで実行した日の日付をセットするしかないでしょう。 場合によれば、セルの変更イベントではなくて、ブックを閉じるとき、日付をセットするロジックで、できる場合もあるかもしれない。 ーー 私は CTRL+; をお勧めします

perikan2
質問者

補足

ありがとうございます。なんでも関数で、というのは違うのですね。

全文を見る
すると、全ての回答が全文表示されます。
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

手動で Ctrl + ; Ctrl + : をすれば、現在の日時を入力できますが、 自動でとなると、VBAになるとおもいます。 シートモジュールに記述します。 Private Sub Worksheet_Change(ByVal Target As Range) 'A1セル以外が変更されたら何もしない If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Range("C1").Value = Now End Sub

perikan2
質問者

補足

そうですかぁ、やっぱりVBAなのですね。 ありがとうございます。 ところで、それをA2・A3・A4・・・・とずっと続ける場合はVBAの記述はどのようにしたらよろしいのでしょうか。。。 初歩的な質問で申し訳ございません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで 一ヵ月後の日付を

    A1のセルに =TODAY()と入力 反すと 2003/7/19 C1のセルに =A1+1ヶ月後の2003/8/19を反したいのですが、どのような関数と式を入力すれば良いのか教えてください。よろしくお願いします。

  • エクセルで文字列と日付け関数を組合せた時の表示

    いつもお世話になっております。 エクセル2010で、文字列&関数で使用したいのすが、today()関数を組み合わせると日付けが数字になってしまいます。 「今日は 2017/07/10 です」を1つのセルに表示させたいのですがうまく行きません。

  • エクセル 関数 MONTH

    いつも大変御世話になっております。 WindowsXP環境でエクセル2003を使用しています。 C5セル内に以下文字を入力して「test_201111.txt」を表示しています。 ※YEAR(TODAY()):YYYY / MONTH(TODAY()):MM ="test_"&YEAR(TODAY())&""&MONTH(TODAY())&".txt" これは10~12月は関数箇所は表示されるんですが 1~9月はMONTH(TODAY())自体が頭に"0"がつかないので困っています。 これはもうどうしようもないのでしょうか? 1~9月には頭に0をつけたいのです。 マクロを使ったり、他のセルにYYYYMMを記載してそこから日付を読み込ますようなものは 作成せずに、上記関数だけでどうしても解決したいのですが可能でしょうか? もしご存知の方がいらっしゃるようでしたら、ご教授願いますでしょうか? 以上、何卒宜しくお願い致します。

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

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

  • Excelの日付処理について

    いつも大変お世話になっております。 次の処理について教えて下さい。 Aセルに"平成15年9月17日"と表示してあり、Bセルに1年後年月を表示させるにはどうすればよろしいでしょうか。 この場合は"平成16年9月"と表示させたいのです。 お手数ですがよろしくお願いいたします。

  • EXCELで質問です。

    EXCELで質問です。 セルB1に値があると、セルA1に今日の日付(2010/5/5みたいに、、、。)を、表示させるようにしたいのですが、どなたか教えていただいてもよろしでしょうか?? 現在【CTRL】 + 【;】 で入力しているのですが、どうしても関数などで自動表示にしたいです。 TODAY関数を用いたりなどして、うまくできませんでしょうか? 検索サイトで、2時間程調べてみましたが、意外と情報がありませんでした。。。 申し訳ございませんが、どなたかご教授お願いいたします。m(_ _)m

  • EXCELの日付入力で・・・

    A1セルに「050602」と入力すると B1セルに「05」(年) C1セルに「06」(月) D1セルに「02」(日) を返してくれる関数の入力方法を教えてください!! また、A1セルに「050602」と入力すると A1セルが「2005/6/2」という表示になる関数はあるでしょうか??

  • エクセルで日付け

    TODAY関数ですと、月日が入力されますが、日にちだけ自動的に表示される関数教えてください。(例)11/21を21だけ自動表示したい。

  • エクセル関数で日付データを扱うには

    SUBSTITUTE関数を使って以下のような条件で得たい結果を求める場合 C2セルに「=SUBSTITUTE($B2,$B$1,$A2)」と入力すると「今日の日付は42875です」 という表示になってしまうのですが、日付形式で「今日の日付は2017/5/20です」 と表示させるにはどうしたらいいでしょうか? ■条件 得たい結果(C2セル) 今日の日付は2017/5/20です A2セル 2017/5/20 B1セル 置換 B2セル 今日の日付は置換です

  • エクセル2002関数について

    いつもお世話になります。A1のセルに100,000と入力、B1のセルに150,000と入力、C1のセルにA1とB1の値を比較し、少ないほうの値100,000と表示したいのですが、どのような関数を使えばいいでしょうか。教えてください。 よろしくお願いします。

インクが探知できない
このQ&Aのポイント
  • インクが探知できませんと表示される問題について相談します。
  • 純正インクを使用しているにもかかわらず、表示が消えないトラブルに困っています。
  • 試したことやエラーの詳細を教えてください。
回答を見る

専門家に質問してみよう