TechNote

事務屋のおぼえがき

Excel2010以降のカレンダーコントロール(DatePicker)周辺事情

社内にOffice2003、2007、2010、2013などが混在するような環境の方もたくさんいるだろう。このような環境で意外に苦しむのが、社内開発等で多用されるカレンダーコントロールである。これについて一通りまとめておく。


1.Excel2007までのカレンダーコントロール

ExcelでDatePickerを実装する場合、Accessに付属の「カレンダーコントロール」を使用することになる。このため、Accessがインストールされていることが必須となる。

細かくいうと、Access 付属の「MSCAL.ocx」がカレンダーを表示するためのコントロール

Excelでこれを使用する場合は、UserFormを一つ作成し、MSCALを貼り付けて使用するという方法がExcel2007までは一般的であった。


2.Excel2010以降のカレンダーコントロール

Access2010からMSCAL.ocx というものがなくなった。以下はMicrosoftが公開している「Excel2010での変更点」

カレンダー コントロール (mscal.ocx) は、Access ワークシートで使用できる Microsoft Access の機能でした。Access 2010 ではカレンダー コントロールが削除されており、Excel 2010 で使用できません。

当たり前だが、旧バージョン(~Excel2007まで)でカレンダーコントロールを実装し、それをExcel2010端末で開いてカレンダーを起動しようとしても以下のようにエラーとなる。

このため次の代替策が必要となる。



3.代替策

「Excel2010での変更点」(上記の続き)にはこうある。

代わりに、日付の選択を使用するか、独自のカスタム カレンダー コントロールを使用します。

まず上記の「日付の選択」とは何か?
実はAccess2007およびExcel2007からはMSCAL.ocx の代わりとして「日付選択コンテンツコントロール」が 追加されており、この日付選択コンテンツコントロールのことを「日付の選択」と呼んでいるようである。



ではもう一方の「独自のカスタム カレンダー コントロール」とは何か?
これはそのまま「カレンダーコントロールくらい自作したら?」ということである。「excel カレンダーコントロール 自作」などでググってみると自作の参考になるサイトはいくらでも出てくるだろう。

参考サイト
http://ponto.jp/tools/calendar.html



以上のように、MicrosoftOfficeのバージョンアップによる仕様変更で、過去に作り込んでいた機能が急に使えなくなるというのはよくある話なので、その都度
Office (IT 担当者向け)などを参照するようにしておくとよい。



あわせて読みたい

kojikoji75.hatenablog.com
kojikoji75.hatenablog.com
kojikoji75.hatenablog.com