アップダウンボタンを作成してマウスで値を増減させるには


ActiveXコントロールで上下のボタンを作成して、マウスでボタンをクリックすることにより日付や数値の値を増減させる方法を解説します。

注)ここで紹介するActiveXコントロールを使用するには、Visual Basic 6.0をインストールする必要があります。


  1. Access 2000を起動して新規データベース(MyDB.mdb)を作成します。

  2. データベースウインドウのフォームタブをクリックしたら新規作成のボタンをクリックして、デザインビューを表示させます。

  3. メニューからツールボックスを表示させたら、テキストボックスのアイコンをクリックして、受注日を入力するテキストボックス(txtOrderDate)を作成します。

  4. ツールボックスからコントロールの選択アイコンをクリックします。ActiveXコントロールの一覧から、Microsoft UpDown Control, version 6.0をクリックして受注日のテキストボックスの右側に貼り付けます。

    図1-ActiveXコントロールの一覧リスト

     

    図2-受注日の右側にUpDownコントロールを貼り付けた例


  5. UpDownコントロール(ctlUpDown)をダブルクリックしてUpDownのプロパティを表示させます。スクロールタブをクリックしたら、最大100に設定します。値、最小、スクロール幅は、デフォルト値を採用します。OKボタンをクリックしてプロパティを閉じます。


    図3-UpDownのプロパティを表示させてスクロールの値を再設定する


  6. フォームのプロパティを表示させて、読み込み時のイベントにリスト1Form_Loadのイベント処理をコピー&ペーストします。このイベント処理では、モジュールレベルのメモリ変数(mintSpinValue)と受注日を初期化します。

    UpDownコントロールのChangeイベントにリスト1のctlUpDown_Changeのイベント処理をコピー&ペーストします。このイベントでは、上下のボタン(
    ▼)のどちらをクリックしたか判断して、値を増減させます。

    最後に、モジュールレベルのメモリ変数(mintSpinValue)をモジュールの先頭に定義します。


    注)UpDownコントロールのイベント登録は、VBE(Visual Basic Editor)を起動して、イベントのコンボボックスから選択します。


    リスト1-フォームの各種イベント処理
    Private mintSpinValue As Integer
    
    Private Sub ctlUpDown_Change()
      With Me
        If .ctlUpDown.Value > mintSpinValue Then
            .txtOrderDate.Value = .txtOrderDate.Value + 1
        Else
            .txtOrderDate.Value = .txtOrderDate.Value - 1
        End If
        mintSpinValue = .ctlUpDown.Value
      End With
      
    End Sub
    
    Private Sub Form_Load()
      mintSpinValue = 50
      With Me
        .txtOrderDate = Date
        .ctlUpDown.Value = mintSpinValue
      End With
    End Sub
     


  7. フォームビューに切り替えたら、UpDownコントロールの上下のボタンをクリックして受注日が変わるか確認します。


    図4-受注日とUpDownコントロールを連動させた例


  8. フォームを frmUpDown の名称で保存します。