Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


70080 / 76738 ←次へ | 前へ→

【11169】Re:text boxについて
回答  Jカーター  - 04/3/2(火) 9:29 -

引用なし
パスワード
   こんにちは。
解説といっても苦手なのですが・・・

まず
クラスモジュールの使用理由

テキストボックスが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を対象に)

ユーザーフォームモジュールを閉じるときに
メニューの削除と
各変数の初期化を実行


という感じです。


※意味がわからないところはヘルプを調べて下さい。
0 hits

【11101】text boxについて NH 04/2/28(土) 10:03 質問
【11102】Re:text boxについて ichinose 04/2/28(土) 10:10 回答
【11126】Re:text boxについて NH 04/2/28(土) 21:10 質問
【11132】Re:text boxについて IROC 04/2/29(日) 1:11 回答
【11138】Re:text boxについて クウガ 04/2/29(日) 11:55 発言
【11140】Re:text boxについて ichinose 04/2/29(日) 12:07 発言
【11147】Re:text boxについて Jカーター 04/3/1(月) 13:10 回答
【11149】Re:text boxについて Jカーター 04/3/1(月) 13:15 回答
【11165】Re:text boxについて NH 04/3/1(月) 20:32 質問
【11169】Re:text boxについて Jカーター 04/3/2(火) 9:29 回答
【11178】Re:text boxについて IROC 04/3/2(火) 11:43 回答
【11214】Re:text boxについて NH 04/3/2(火) 18:23 お礼

70080 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free