Excelで、指定した日付になったらプルダウンリストの選択肢を自動で切り替える方法は、VBAを使うことで実現可能です。標準機能だけでは自動変更はできませんが、簡単なマクロで管理できます。
VBAを使った自動変更の基本
まず、日付に応じてセルの値を判定し、条件に応じてプルダウンの値を更新するマクロを作成します。
例えば、プルダウンの選択肢が「開始前」「進行中」「終了」で、A列に期日が入力されている場合、以下のようなVBAコードを使用します。
実例コード
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Me.Range("B2:B100") 'プルダウンの範囲
Dim cell As Range
For Each cell In rng
If cell.Offset(0, -1).Value < Date Then '日付列が今日より前の場合
cell.Value = "終了"
End If
Next cell
End Sub
このコードでは、B列にプルダウンがあり、A列に日付が入力されている場合、今日以降の日付を判定して「終了」に自動変更します。
他の方法:数式による擬似自動変更
VBAを使わずに行いたい場合は、プルダウンではなく別のセルで条件付き表示を行う方法もあります。例えば、IF関数で日付に応じて表示を切り替え、見た目上プルダウンの値が変わるようにできます。
例: =IF(A2<TODAY(),"終了",B2)
注意点
・VBAを使用する場合はマクロ有効ブックとして保存する必要があります。
・ユーザーが手動で値を変更した場合、マクロの自動更新タイミングに注意してください。
まとめ
指定した日付でプルダウンリストを自動変更するには、VBAを使うのが最も直接的で柔軟です。数式での擬似自動変更も可能ですが、プルダウン自体の値を変えたい場合はVBAが推奨されます。


コメント