Windows 10 Pro_x64 + Excel2013_x86 VBA + DTPicker を試してみる

Windows 10 Pro_x64 + Excel2013_x86 VBA + DTPicker を試してみる

 

Excel 2013 VBA でカレンダーコントロールを使用するときに

Microsoft Date and Time picker control 6.0 (SP6) を使う

という例があるけれど、試そうと思っても見つからないのはなぜ?

と思ったんだけど、そういう事か!? と思ったのでメモ

 

参考にしたのは以下のサイト

Excel VBAでDatepicker(日付選択)コントロールを使う方法

VBA Datepickerを使うための参照設定の方法

 

Visual Basic 6.0 Service Pack 6 Runtime Set

よりDLした v6s6r135.zip v6s6r135.zip を適当なフォルダに解凍後、setup.exe

を実行してデフォルトのままインストールする。

※C:\Windows\System32 にインストールされる

Excelが64Bit版の時は、どうなるのかな??

 

VBAの画面より

・ツール

  ->参照設定

   ->参照ボタンをクリック

    ->C:\Windows\System32\mscomct2.ocx を選択後OKをクリック

・挿入

 ->ユーザーフォームで フォームを追加する

ツールボックスを表示

  ->ツールボックス上で右クリックして その他コントロール を選択する

   ->表示/選択された項目のみ のチェックを外す

    ->Microsoft Date and Time picker control 6.0 (SP6) をチェック後OKをクリックする

ツールボックスより DTPicker を選択して フォームにドロップする

※最低限のサンプルになるのかな?

※まぁ色々な状況で使ってみないとな

'
'DTPicker、TextBox、CommandButtonを適当に UserForm に配置した状態
'
Option Explicit

Private Sub UserForm_Initialize()
    '
    '   必要に応じてデフォルト表示を行う
    '   ・入力画面の初期設定とか
    '   ・DBから取込んだ日付とか
    '   ・あくまで例なので仕様に応じた箇所で
    '
    TextBox1.Text = "2018/04/12"
End Sub

Private Sub CommandButton1_Click()
    '
    '   TextBoxの日付をDTPickerに設定できるかの確認    '
    DTPicker1.Value = CDate(Trim(TextBox1.Text))
    
End Sub

Private Sub DTPicker1_CloseUp()
    '
    '   ドロップダウン後、指定した日付が
    '   TextBoxに出力できるかを確認
    '
    TextBox1.Text = Format(DTPicker1.Value, "yyyy/mm/dd")
End Sub