frmCOMChooseItemクラスについて

 frmCOMChooseItemクラスは、String型配列(正確にはItemがすべてString型であるCollectionオブジェクト)の
中から複数個(0個以上)をユーザに選択させる画面です。

項目選択画面
図1 frmCOMChooseItemの画面とプロパティ

使用方法:
  1. インスタンスを生成する
  2. タイトルを設定する(Titelプロパティ)
  3. 説明文を設定する(Explanationプロパティ)
  4. 項目一覧を設定する(Itemsプロパティ)
  5. 選択済みにしたい項目があれば、選択する(AllSelectメソッド または SelectByPatternMatchingメソッド)
  6. 画面を表示する(Showメソッド(※1))
    ※1:必ずモーダルで画面を表示してください。
    Office 97やMac版Officeの場合はVBAのバージョンが5なのでモーダルでしかユーザフォームを表示できません。
    なので気にしなくてよいです。
    Windows版Officeで2000以上を使用している場合はVBAのバージョンが6なので、
    ユーザフォームをモードレスで表示する事ができますが、このクラスに関しては必ずモーダルで表示してください

  7. ユーザがアイテムを選択し、画面が閉じられる
  8. 何のボタンを押して画面を閉じたのかを調べる(HideModeプロパティ)
  9. 選択した項目を取得する(SelectedItemsプロパティ)
  10. 画面をアンロードする
注意:
  1. ユーザが画面を閉じたとき、画面はアンロードされません。
  2. 項目は何個でも選択できます。(※1)
    ※1:リストボックスのMultiSelectプロパティ値は fmMultiSelectExtended です。
    この値を変更するプロパティは作成していません。


プロパティの定義
Public Property Get Title() As String
Public Property Let Title(ByVal strNewTitle As String)
タイトルの取得と設定(ウィンドウのキャプション)
Public Property Get Explanation() As String
Public Property Let Explanation(ByVal strNewExp As String)
説明文の取得と設定
Public Property Get Items() As Collection
Public Property Set Items(ByVal objNewItems As Collection)
選択項目一覧の取得と設定
Public Property Get SelectedItems() As Collection
選択した項目の取得
Public Property Get HideMode() As Integer
何のボタンがおされて画面が閉じられたのかを返します


メソッドの定義
Public Sub AllClear()
すべての選択を解除します
Public Sub AllSelect()
すべての項目を選択します
Public Sub SelectByPatternMatching(ByVal strPattern As String)
パターンに一致するものをすべて選択します

プロパティとメソッドの詳細
Title
Public Property Get Title() As String
Public Property Let Title(ByVal strNewTitle As String)


プロパティの説明:
タイトルの取得と設定(ウィンドウのキャプション)
デフォルト値:"アイテムの選択"
注意:
画面を表示する前に設定してください。

Explanation
Public Property Get Explanation() As String
Public Property Let Explanation(ByVal strNewExp As String)


プロパティの説明:
説明文の取得と設定
デフォルト値:"アイテムを選択してください。"
注意:
画面を表示する前に設定してください。
あまり長い文字列は設定しないでください。
(長さにより、表示スペースを大きくするような機能はありません。
あまり長いと、すべて表示できなくなります。)
Items
Public Property Get Items() As Collection
Public Property Set Items(ByVal objNewItems As Collection)


プロパティの説明:
選択項目一覧の取得と設定

Itemプロパティを設定する前に取得すると、
コレクション数が0のCollecetionオブジェクトへの参照を返します。
注意:
画面を表示する前に設定してください
必ずString型のコレクションを設定してください
スローするエラー:
91:Nothingを設定しようとした場合
?:String型以外のコレクションを設定した場合
 String型のコレクションでない場合でもエラーとはならない場合があります。
 (String型へ自動変換できる場合や、規定のメソッドorプロパティがString型へ
 自動変換できるものである場合はエラーとはなりません)

SelectedItems
Public Property Get SelectedItems() As Collection

プロパティの説明:
選択した項目の取得
選択した項目がない場合でもNothingは返しません。
また、HideModeプロパティ値が0(画面表示前)や1([キャンセル]ボタンor[閉じる]ボックス押下)の場合でも
選択した項目を返します。

HideMode
Public Property Get HideMode() As Integer

プロパティの説明:
何のボタンがおされて画面が閉じられたのかを返します。

0:画面表示前
1:[キャンセル]ボタンor画面上部の[閉じる]ボックス押下
2:[OK]ボタン押下

AllClear
Public Sub AllClear()

メソッドの説明:
  すべての選択を解除します。
AllSelect
Public Sub AllSelect()

メソッドの説明:
  すべての項目を選択します。
SelectByPatternMatching
Public Sub SelectByPatternMatching(ByVal strPattern As String)

メソッドの説明:
  パターンに一致するものをすべて選択します。
in引数:
strPattern:パターン(パターンについてはVBAのヘルプのLike演算子の項を参照してください。)
備考:
比較モードはバイナリモードです。
※パターンに一致しない項目でも、既に選択済みの項目はそのままです。(選択解除されません。)