ExcelマクロでワンクリックカレンダーをDatePickCellsに設定する方法

Visual Basic

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操作でも簡単に日付入力が可能になります。

コメント

タイトルとURLをコピーしました