Excelで複数セルにワンクリックでカレンダーを表示し日付を設定するには、VBAマクロを活用すると便利です。本記事では、名前定義されたセル(DatePickCells)に対してカレンダーを呼び出すマクロの作成手順を解説します。
マクロの準備
まず、Alt + F11でVBAエディタを開き、挿入 → モジュールで新しいモジュールを作成します。ここにカレンダー表示用のマクロを記述します。
カレンダーのポップアップにはExcelのApplication.InputBoxやユーザーフォームを利用する方法がありますが、簡単な方法としてInputBoxで日付を取得する方法を紹介します。
具体的なマクロ例
Sub SetCalendar()
Dim rng As Range
Dim cell As Range
Dim selectedDate As Variant
Set rng = Range("DatePickCells")
selectedDate = Application.InputBox("日付を入力してください", Type:=2)
If IsDate(selectedDate) Then
For Each cell In rng
cell.Value = CDate(selectedDate)
Next cell
Else
MsgBox "有効な日付を入力してください"
End If
End Sub
このマクロでは、DatePickCellsに設定されたすべてのセルに指定した日付を入力できます。
ボタンからワンクリックで呼び出す
Excelシート上にボタンを配置し、作成したマクロに割り当てることで、クリック一回でカレンダー(InputBox)を表示可能です。
ボタンは「開発」タブ → 「挿入」 → 「フォームコントロールのボタン」で配置し、マクロに紐付けます。
ユーザーフォームを利用した高度なカレンダー
より見やすいカレンダーUIを作りたい場合は、ユーザーフォームにMonthViewコントロールを追加し、選択した日付をDatePickCellsに反映させる方法もあります。これにより、クリック操作だけで日付選択が可能になります。
MonthViewコントロールは「Microsoft MonthView Control」を参照設定して使用します。
まとめ
ExcelのDatePickCellsにワンクリックでカレンダーを設定するには、VBAマクロが便利です。InputBoxを利用する簡易版と、ユーザーフォームでのMonthViewを利用する高度版の2種類の方法があります。ボタンにマクロを割り当てれば、PC操作でも簡単に日付入力が可能になります。


コメント