LoginSignup
3
2

Windows 10 Pro x64 + Excel2016 x86 VBA + DTPicker を試してみる

Last updated at Posted at 2019-01-26

#目的
Excel 2016 VBA でカレンダーコントロールを使用するときに
Microsoft Date and Time picker control 6.0 (SP6) を使う
という例があるけれど、試そうと思っても見つからないのはなぜ?
と思ったんだけど、そういう事か!? と思ったのでメモ
##VB6SP6 Runtime のインストール
Visual Basic 6.0 Service Pack 6 Runtime Set
よりDLした v6s6r135.zip v6s6r135.zip を適当なフォルダに解凍後、setup.exe を実行してデフォルトのままインストールする。
※ C:\Windows\System32 にインストールされる
※Excelが64Bit版の時は、どうなるのかな??
##ocxを参照設定に追加する
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 = "2019/01/27"
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

##参考にしたのは以下のサイト
Excel VBAでDatepicker(日付選択)コントロールを使う方法
VBA Datepickerを使うための参照設定の方法
VB6(Visual Basic 6.0)ランタイムのインストール方法

3
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2