- ベストアンサー
エクセルでの、日付の自動入力について
- エクセルで週間の業務日報を作成する際に、業務内容を入力すると自動的に日付が入力される方法を教えてください。
- ファイルを開いた際に前日の日付がそのまま表示されるようにする方法も知りたいです。
- 完成イメージは、日付と業務内容が連携した形式で作成することを希望しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
単純にIF関数とTODAY関数の組み合わせとイメージしてしまいますが、これでは日が変わることでセルの内容が変わってしまいますね。そこで、関数ではなく、値としてセルに日付を書き込む必要があるわけですが、これを「自動で」という話になってくるとVBAで実現するしかありません。 下記はサンプルコードです。ご参考までに。 【手順】 1. EXCEL画面下のシート選択タブで、対象シートを選択し右クリック 2. [コードの表示]をクリック 3. 開いた画面右のスペースに下記コードを貼り付け 4. ウインドウを閉じ、EXCELに戻ります 【以下コード】 Private Sub Worksheet_Change(ByVal Target As Range) '変数の宣言 Dim R As Long, C As Integer '設定------------------------------ R = 5 '処理対象の行番号 5行目以降 C = 2 '処理対象の列番号 B列=2 '---------------------------------- 'Target = このイベントにおいて変化のあったセルを表す With Target '開始行以降で、B列であれば処理実行 If .Row >= R And .Column = C Then 'セルへアクセスすることによるイベント2重発生停止 Application.EnableEvents = False If .Value <> "" Then 'セルが空でなければ、B列の1つ右側=A列に今日の '日付を書き込み .Offset(0, -1).Value = Date Else 'セルが空ならば、B列の1つ右側=A列も空にする .Offset(0, -1).ClearContents End If 'イベント発生停止を解除 Application.EnableEvents = True End If End With End Sub
お礼
ありがとうございます! 希望通りの結果が得られました。 じつは今、VBAを勉強し始めたばかりなのですが、 アドバイス頂いたコードの書き方、とても参考になりました。 わかりやすく書くことの重要性も、すごく良くわかりました。(^^)