|
こんにちは。
解説といっても苦手なのですが・・・
まず
クラスモジュールの使用理由
テキストボックスが10個あるとして
全てに同じMouseUpイベントを記述しなければなりません。
そこで
クラスモジュールを利用すると
クラスモジュール内に一個イベントを書くだけですみます。
それをふまえて
ユーザーフォームのInitializeイベントで行っていることは
1,クラスモジュールのインスタンスをテキストボックスの数分作成
2,ポップアップメニューの作成
です。
>Set TxtBoxes(LngX) = New TxtBoxCLs
でクラスのインスタンスが一個できます。
そのTxtプロパティにTextBoxを設定すると
クラスモジュールに書かれたイベントが使えるようになります。
プップアップメニュー作成は
まずメニューバーを作って
そこにカット、コピー、ペーストのボタンを乗っけます。
ここで乗っけたボタンを
>Private WithEvents CopyBtn As Office.CommandBarButton
>Private WithEvents CutBtn As Office.CommandBarButton
>Public WithEvents PasteBtn As Office.CommandBarButton
とWithEventsキーワードをくっつけて宣言しておくと
イベントプロシージャが使えるようになります。
コピーボタン、カットボタン、貼り付けボタン
とコメントがあるプロシージャがそれです。
実行される手順
TextBoxの上で右クリック
クラス内のMouseUpイベントイベント起動
ユーザーフォームモジュールに対象TextBoxを渡しておいて
そのテキストボックスのCanPasteプロパティにより
貼り付けボタンのEnabledを設定
メニュー出現
メニューの操作は各ボタンのイベントが担当
(渡されたTextBoxを対象に)
ユーザーフォームモジュールを閉じるときに
メニューの削除と
各変数の初期化を実行
という感じです。
※意味がわからないところはヘルプを調べて下さい。
|
|