ブライアンは、月と日だけを入力して日付を入力したいと考えています。

Excelは、その年を現在の年と想定していますが、その年を次にその日付が発生する年にすることを望んでいます。たとえば、今日が6/1/18で、ブライアンが7/1と入力した場合、Excelは自動的に2018年を想定します。ブライアンが同じ日に5/1と入力した場合、Excelは2019年を5/1と想定する必要があります。すでに過去です。ブライアンは、数式を使用して別のセルに日付を表​​示できることを知っていますが、セルに日付を入力しているときに、Excelでこのアプローチをデフォルトにする方法を考えています。

システムの日付をいじったり、入力後の日付を編集したりする以外に、ソリューションではマクロを使用する必要があります。次のイベントハンドラーがトリックを実行します:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target = "" Then Exit Sub

If IsDate(Target) Then         If Target < Date Then             If Year(Target) = Year(Date) Then                 Application.EnableEvents = False                     Target.Value = DateAdd("yyyy", 1, Target)

Application.EnableEvents = True             End If         End If     End If End Sub

このマクロをワークブックに追加するには、ワークシートを機能させたい場所のタブを右クリックして、[コードの表示]を選択します。表示されるコードウィンドウで、上記のマクロを追加します。

これで、ワークシートに変更を加えるたびに、それが日付であるかどうかがチェックされます。そうであり、日付が今日の日付より前の場合、日付に年が追加されます。コードは、入力された日付の年が現在の年と同じであることを確認するためにチェックすることに注意してください。このチェックがないと、過去の日付(何年も前の日付であっても)が増分されます。これはおそらく意図されていないので、チェックが含まれています。

マクロは、一度に複数のセルに入力された日付には影響しません。また、テキスト値として入力された日付にも影響しません。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13601)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。