ExcelVBA: VBAで使えるカレンダーを作った
2018/04/30
ExcelでVBAを組んでいると、プログラミング用パーツとして時々カレンダーがほしくなったりします。探しても個人的にドンピシャなものがないので、自分で作ってみました。
こちらからダウンロードできます。
[ad#top-1]
これが完成したカレンダーです。日付をクリックすると年月日が戻ってきます。こういう単純な部品ってあんまり転がっていないんですよね。
フォームの「Run」ボタンを押すとカレンダーが現れ、日付をクリックすると右フォームのテキストボックスに日付が入ります。
コマンドボタンを押したときのイベント処理として以下の3行だけ書けばOK。これで使えます。
3行目のCalendarForm.setCallBackControlは、どこに値を戻していいか指定するためのものです。今回はUserFormのTextBoxですが、これがLabelでもOKです。
Private Sub CommandButton1_Click() Call CalendarForm.setDate(TextBox1.Text) Call CalendarForm.setCallBackControl(TextBox1) CalendarForm.Show End Sub
で、このカレンダーフォームのポイントとして、戻り値(日付)をシートのセルにすることも可能なんです。
以下が例です。カレンダーのB2セルに値を戻しています。
このパターンを使う場合は以下のようなコードを書きます。
3行目のCalendarForm.setCallBackCellが、シートのセルに戻すことを明示し、且つB2セルに戻すことを指定しているわけです。
Sub sample_cell() Call CalendarForm.setDate(Range("B2")) Call CalendarForm.setCallBackCell("B2") CalendarForm.Show End Sub
ご自由にお使いください。
[ad#ad-1]
スポンサーリンク