「Excelのユーザーフォームでカレンダーボタンをつけたい」 「Date and Time Picker Controlが一覧にない!」 「64ビット版Officeだと使えないって本当?」
こんな悩みで困っていませんか?
実は、Microsoft Date and Time Picker Control(日付と時刻の選択コントロール)は、最新のOfficeでは標準搭載されていません。でも、諦める必要はありません!
この記事では、Date and Time Picker Controlを使えるようにする方法から、より良い代替手段まで、すべての解決策を分かりやすく解説します。読み終わる頃には、あなたも日付選択のプロになっているはずです!
📅 Date and Time Picker Control って何?なぜ必要?

そもそもどんな機能?
Date and Time Picker Control(DTPicker)は、カレンダーから日付を選択できるActiveXコントロールです。
こんなイメージです:
- テキストボックスの横に📅ボタン
- クリックするとカレンダーが表示
- 日付をクリックで選択
- 手入力不要でミスなし!
なぜみんな探しているの?
DTPicker が人気の理由:
メリット | 説明 | 効果 |
---|---|---|
入力ミスゼロ | カレンダーから選ぶだけ | 2025/13/32 みたいな間違いなし |
使いやすい | 誰でも直感的に操作可能 | 説明書不要 |
見た目がプロ | 本格的なアプリみたい | ユーザー満足度アップ |
曜日も分かる | カレンダー表示で曜日確認 | 「金曜日を選びたい」が簡単 |
範囲制限可能 | 過去・未来の日付を制限 | 予約システムなどに最適 |
⚠️ なぜ Date and Time Picker Control が使えないの?
原因1:64ビット版 Office の問題
32ビットと64ビットの違い:
Office版 | DTPicker対応 | 理由 |
---|---|---|
32ビット版 | △(追加で対応可) | MSCOMCT2.OCX が32ビット用 |
64ビット版 | ❌(基本的に非対応) | 64ビット版OCXが存在しない |
自分のOfficeが何ビット版か確認する方法:
- Excel を開く
- ファイル → アカウント → Excelのバージョン情報
- 「32ビット」or「64ビット」の表示を確認
原因2:Windows 10/11 では削除された
Windowsバージョン別の状況:
- Windows 7/8:一部のエディションに含まれる
- Windows 10:標準では含まれない
- Windows 11:標準では含まれない
Microsoftが古い技術(ActiveX)から移行を進めているためです。
原因3:必要なファイルがない
Date and Time Picker を使うにはMSCOMCT2.OCXというファイルが必要ですが:
- 最新のOfficeには含まれていない
- Windows Updateでも配布されない
- 手動でインストールが必要
🔧 解決方法1:Date and Time Picker Control をインストールする
32ビット版 Office の場合(成功率高い!)
ステップ1:MSCOMCT2.OCX をダウンロード
⚠️ 重要な注意:
- 公式な配布は終了
- サードパーティサイトからのダウンロードはリスクあり
- ウイルスチェック必須
- 企業環境では IT 部門に相談
ステップ2:ファイルを適切な場所に配置
32ビット Windows の場合:
C:\Windows\System32\MSCOMCT2.OCX
64ビット Windows の場合:
C:\Windows\SysWOW64\MSCOMCT2.OCX
ステップ3:管理者権限でコマンドプロンプトを開く
- スタートメニューで「cmd」と入力
- 「コマンドプロンプト」を右クリック
- 「管理者として実行」
ステップ4:OCX ファイルを登録
32ビット Windows:
regsvr32 C:\Windows\System32\MSCOMCT2.OCX
64ビット Windows:
regsvr32 C:\Windows\SysWOW64\MSCOMCT2.OCX
成功すると「DllRegisterServer は成功しました」と表示されます。
ステップ5:Excel で確認
- 開発タブ → 挿入 → ActiveXコントロール
- 「Microsoft Date and Time Picker Control」が表示されればOK!
64ビット版 Office の場合(基本的に不可)
残念ながら、64ビット版OfficeではDTPicker は使えません。
理由:
- 64ビット版のMSCOMCT2.OCXが存在しない
- 32ビットのActiveXは64ビットOfficeで動作しない
対策: → 次の「代替方法」を使いましょう!
💡 解決方法2:おすすめ代替方法5選
方法1:VBA でカレンダーフォームを自作(最もおすすめ!)
メリット:
- 完全無料
- カスタマイズ自由
- 配布も簡単
- 64ビット版でもOK
簡単な実装例:
' ユーザーフォームに配置
Private Sub CommandButton1_Click()
' カレンダーフォームを表示
UserForm2.Show
' 選択された日付を取得
TextBox1.Value = UserForm2.SelectedDate
End Sub
作り方の概要:
- 新しいユーザーフォームを作成
- ラベルでカレンダーの見た目を作る
- 月の移動ボタンを配置
- 日付クリックで値を返す
方法2:入力規則のリストで簡易実装
設定方法:
- データ → データの入力規則
- 「リスト」を選択
- 元の値に日付リストを設定
自動で今月の日付リストを作る数式:
=TEXT(TODAY(),"yyyy/mm/")&ROW(A1:A31)
シンプルだけど、意外と実用的!
方法3:コンボボックスを3つ使う方法
実装イメージ:
- 年選択:コンボボックス1(2020〜2030)
- 月選択:コンボボックス2(1〜12)
- 日選択:コンボボックス3(1〜31)
VBAコード例:
Private Sub UserForm_Initialize()
' 年のリスト
For i = 2020 To 2030
ComboBox1.AddItem i
Next i
' 月のリスト
For i = 1 To 12
ComboBox2.AddItem i
Next i
End Sub
方法4:Windows Forms の MonthCalendar を使う
.NET Framework を利用する方法:
- より本格的なカレンダー
- プログラミング知識が必要
- 企業向けアプリに最適
方法5:サードパーティ製アドインを使う
有料・無料のアドイン:
- Kutools for Excel(有料)
- XLSTAT(有料)
- 各種フリーアドイン
ただし、セキュリティとサポートを要確認。
🎯 実践:シンプルな日付選択フォームを5分で作る

Excel VBA で今すぐ使える簡単カレンダー
ステップ1:ユーザーフォームを作成
- Excel を開く
- Alt + F11 でVBAエディタを開く
- 挿入 → ユーザーフォーム
ステップ2:テキストボックスとボタンを配置
- TextBox1:日付表示用
- CommandButton1:カレンダー表示用
ステップ3:簡単なコードを追加
Private Sub CommandButton1_Click()
' InputBoxで簡易的に日付入力
Dim inputDate As String
inputDate = InputBox("日付を入力してください (yyyy/mm/dd)", _
"日付選択", Format(Date, "yyyy/mm/dd"))
' 入力チェック
If IsDate(inputDate) Then
TextBox1.Value = Format(CDate(inputDate), "yyyy/mm/dd")
Else
MsgBox "正しい日付を入力してください"
End If
End Sub
ステップ4:さらに便利にする追加機能
' 今日の日付ボタン
Private Sub CommandButton2_Click()
TextBox1.Value = Format(Date, "yyyy/mm/dd")
End Sub
' 明日の日付ボタン
Private Sub CommandButton3_Click()
TextBox1.Value = Format(Date + 1, "yyyy/mm/dd")
End Sub
' 1週間後ボタン
Private Sub CommandButton4_Click()
TextBox1.Value = Format(Date + 7, "yyyy/mm/dd")
End Sub
これだけでも十分実用的!
🔍 トラブルシューティング:よくあるエラーと対処法
エラー1:「オブジェクトライブラリは登録されていません」
原因: OCXファイルが正しく登録されていない
解決方法:
- 管理者権限でコマンドプロンプト起動
regsvr32 /u MSCOMCT2.OCX
(一度解除)regsvr32 MSCOMCT2.OCX
(再登録)
エラー2:「ActiveXコンポーネントを作成できません」
原因: 32ビット/64ビットの不一致
解決方法:
- 64ビット版Officeなら代替方法を使う
- 32ビット版に変更を検討
エラー3:参照設定でエラー「参照不可」
原因: 必要なライブラリがない
解決方法:
- VBAエディタ → ツール → 参照設定
- 「参照不可」のチェックを外す
- 「Microsoft Windows Common Controls-2」を探す
- なければOCXファイルの再インストール
エラー4:配布先のPCで動かない
原因: 配布先にOCXファイルがない
解決方法:
- 配布先でもOCXをインストール
- または、VBAで自作カレンダーに変更
💼 用途別ベストプラクティス
ケース1:個人用の簡単な日付入力
おすすめ: 入力規則 + リスト
- 設定が簡単
- 追加ファイル不要
- すぐに使える
ケース2:社内配布するExcelツール
おすすめ: VBA自作カレンダー
- 環境依存なし
- カスタマイズ可能
- メンテナンスしやすい
ケース3:本格的な業務システム
おすすめ: .NET や Web技術を活用
- より高機能
- セキュリティ対策可能
- 長期的なサポート
ケース4:Access データベース
おすすめ: Access標準の日付選択
- 標準機能で十分
- 追加設定不要
- 安定動作
❓ よくある質問(FAQ)

Q1:なぜMicrosoftは削除したの?
A: 主に3つの理由があります:
- セキュリティ:ActiveXは脆弱性のリスクが高い
- 互換性:64ビット対応が困難
- 技術革新:より新しい技術(.NET、Web)への移行促進
将来的にはActiveX自体が廃止される可能性も。
Q2:32ビット版Officeに戻すべき?
A: 状況によります:
32ビットに戻すメリット:
- DTPicker が使える
- 古いアドインも動く
デメリット:
- メモリ制限(2GB)
- 大きなファイルで遅い
- 将来性がない
基本的には64ビット版のまま、代替方法を使うことを推奨。
Q3:Web版のExcelでは使える?
A: 残念ながら使えません。
- Web版はActiveX非対応
- VBAも制限あり
- Office ScriptsやPower Automateを検討
Q4:Mac版Excelでは?
A: Mac版も非対応です:
- ActiveXはWindows専用
- VBAで代替実装が現実的
- Numbers(Apple製)なら日付選択機能あり
Q5:もっと簡単な方法はない?
A: 実は、最も簡単なのは:
セルをダブルクリックで今日の日付を入力するVBA:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then ' A列の場合
Target.Value = Date
Cancel = True
End If
End Sub
これだけでも意外と便利です!
🚀 まとめ:今すぐできる3つのアクション
長い記事を最後まで読んでいただき、ありがとうございます!
Date and Time Picker Control が使えなくても、代替方法はたくさんあります。大切なのは、あなたの用途に合った方法を選ぶことです。
今すぐ試せる3ステップ
ステップ1:現状確認(1分)
- Officeのビット数を確認
- 32ビット → OCXインストールを検討
- 64ビット → 代替方法へ
ステップ2:簡単な代替を試す(3分)
- セルのダブルクリックで日付入力
- 入力規則でリスト作成
- どちらか試してみる
ステップ3:本格実装を検討(10分)
- VBAでカレンダー作成に挑戦
- または既存のテンプレート活用
レベル別おすすめアプローチ
初心者: → 入力規則やダブルクリックVBAから始める
中級者: → VBAでシンプルなカレンダーを自作
上級者: → .NETやWebAPIを活用した本格実装
最後にアドバイス
Date and Time Picker Control にこだわる必要はありません。むしろ、これを機会により良い方法を見つけるチャンスと考えてください。
VBAで自作すれば、自由にカスタマイズできて、配布も簡単。結果的に、DTPicker より使いやすいものが作れるかもしれません。
困ったときは、この記事を見返してください。あなたの日付入力問題が解決することを願っています!
コメント