アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

フォームコントロールの動作を決めるコードを記述する

フォームコントロールの動作を決めるコードを記述する


  フォームを活用することで使いやすいユーザーインターフェースを持たせることが
  できます。

  サンプルアプリケーションで使用しているブックやシートを選択する
  フォームのコントロールの動作を決めるコード部分の紹介です。


  example3 で説明します。

  VBEのメニューで、[表示]−[コード] を実行してください。

  右側にコードウィンドウが表示されます。

  コードウィンドウの上の左側はオブジェクトボックスで、
  右側がプロシージャーボックスです。

コードウィンドウ/オブジェクトボックス/プロシージャーボックス

  プロシージャーボックスを Click にして、オブジェクトボックスで
  OKButton,CancelButton, を順番に選択してください。


  オブジェクトボックスを UserForm にして、プロシージャーボックスで
  Initializeを選択してください。
    
オブジェクトボックスからのコード展開

  上記操作の過程で、 Sub UserForm_Click() が挿入されるかも知れませんが、
  使わないので削除してかまいません。


  挿入されたコードに実際の動作を追記します。
Private Sub UserForm_Initialize()

    'リストボックスに Book または sheet の一覧を表示します
    If SelectInit_Book_or_Sheet = 0 Then
        For i = 1 To Workbooks.Count
            Me.Controls("ListBox1").AddItem (Workbooks(i).Name)
        Next
    Else
        For i = 1 To Sheets.Count
            Me.Controls("ListBox1").AddItem (Sheets(i).Name)
        Next
    End If

End Sub

  ◇Sub UserForm_Initialize
    Sub UserForm_Initialize は、フォームを表示する最初に Call されます。
    ここで、リストボックスに Book または sheet の一覧を表示しています。
    
    Me とは、UserForm のことです。
    
    SelectInit_Book_or_Sheet はグローバル変数として定義してあります。

    SelectInit_Book_or_Sheet=0 でリストボックスに Book の一覧を表示して
    います。それ以外は sheet の一覧を表示させています。




Private Sub OKButton_Click()

    '上から何番目の Book または sheet を選択したかを SelIndex に代入
    SelIndex = Me.Controls("ListBox1").ListIndex + 1
    'UserForm1をメモリから開放します
    Unload Me

End Sub

  ◇Sub OKButton_Click()
     OKボタンがクリックされると、Sub OKButton_Click が Call されます。
    
     SelIndex はグローバル変数として定義してあります。
    
     SelIndex = Me.Controls("ListBox1").ListIndex + 1
     上から何番目の Book または sheet が選択されたかを SelIndex に代入し
     ます。ListIndex は ゼロから始まるので + 1 をしています。
    
     Unload Me で最後にメモリからフォームオブジェクトを開放します。




Private Sub CancelButton_Click()

    'Cancelボタンがクリックされたので、SelIndex に -1 を代入します
    SelIndex = -1
    'UserForm1をメモリから開放します
    Unload Me

End Sub
    
  ◇Sub CancelButton_Click()
    OKボタンがクリックされると、Sub OKButton_Click が Call されます。
    
    キャンセルボタンが押された場合には、SelIndex に -1 を代入します。
    フォームから抜けたときにキャンセルが押されたことを分かるようにして
    おきます。
    



Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.