- ベストアンサー
エクセル A列のセルをクリックするとフォームが出て
A列のセルをクリックするとフォームAが出てリストBOXの値をクリックするとA列のクリックしたセルに値を返す また同じようにB列のセルをクリックすると違うフォームBが出てリストBOXの値をクリックするとB列のクリックしたセルに値を返す そんなことが実現出来るのでしょうか ご指南ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Worksheet_BeforeDoubleClickでもかまわないですよ ご質問時に『ダブルクリックで』起動と明記されていなかったのでSelectionChangeを薦めたわけです 選択はどのように行いますか? やるならUserFormのイベントではなく ListBoxのイベントで処理します MouseUp,KeyUp あたりでしょう Private Sub ListBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn And Shift = 0 Then Unload Me End If End Sub Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 1 And Shift = 0 Then Unload Me End If End Sub といった具合です
その他の回答 (2)
- redfox63
- ベストアンサー率71% (1325/1856)
やって出来ないことは無いですが操作性に少々問題がありそうです 普通にExcelで用意されているイベントを使うとするとセルをクリックというイベント外ので、セルの選択が変更された場合になるかと思います Sub Sheet1_SelectionChange( byVal Target As Range ) if Target.Cells.Count = 1 then Select case Target.Column case 1 ' A列の場合 UserFormA.ListBox1.ControlSource = Target.Address UserFormA.Show case 2 ' B列の場合 UserFormB.ListBox1.ControlSource = Target.Address UserFormB.Show end select end if End if といった具合でしょう ・・・
お礼
ありがとうございました 解決 しましたが 開いたUserFormを閉じるのはバツでしか無理でしょうか リストを選択した後UserFormを閉じる様にしたいのですが どのように しましたら良いでしょうか ご指南をお願いします いろいろ UserFormのイベントを試しているのですが 解りません
補足
イベントでWorksheet_BeforeDoubleClickがあるのですが そこで実行してはいけないでしょうか デバックになってしまいます ご指南ください
- asapinya
- ベストアンサー率36% (40/109)
回答でなはいのですが、フォームを出す必要性はあるのでしょうか? 入力規制([データ]→[入力規制] [リスト])ではだめ?
お礼
あまり ルールが理解出来ていないようで ご迷惑をおかけしています お陰さまで解決いたしました。 ありがとうございます。
補足
わーーーーぁい ありがとうございます 出来ました すいません ご回答頂く前に質問してしまいました ほんとうにありがとうございます 恐れ入りますが もう一つご指南ください フォームを閉じてシートに戻るとき最初にWクリックしたセルの右隣のセルに戻りたいのですが どのようにすればよいでしょうか よろしくお願いいたします。