• ベストアンサー

エクセル A列のセルをクリックするとフォームが出て

A列のセルをクリックするとフォームAが出てリストBOXの値をクリックするとA列のクリックしたセルに値を返す また同じようにB列のセルをクリックすると違うフォームBが出てリストBOXの値をクリックするとB列のクリックしたセルに値を返す そんなことが実現出来るのでしょうか ご指南ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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 といった具合です

tompapa56
質問者

お礼

あまり ルールが理解出来ていないようで ご迷惑をおかけしています お陰さまで解決いたしました。 ありがとうございます。

tompapa56
質問者

補足

わーーーーぁい  ありがとうございます 出来ました すいません ご回答頂く前に質問してしまいました ほんとうにありがとうございます 恐れ入りますが  もう一つご指南ください フォームを閉じてシートに戻るとき最初にWクリックしたセルの右隣のセルに戻りたいのですが どのようにすればよいでしょうか よろしくお願いいたします。

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

やって出来ないことは無いですが操作性に少々問題がありそうです 普通に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 といった具合でしょう ・・・

tompapa56
質問者

お礼

ありがとうございました 解決 しましたが 開いたUserFormを閉じるのはバツでしか無理でしょうか リストを選択した後UserFormを閉じる様にしたいのですが どのように しましたら良いでしょうか ご指南をお願いします いろいろ UserFormのイベントを試しているのですが 解りません

tompapa56
質問者

補足

イベントでWorksheet_BeforeDoubleClickがあるのですが そこで実行してはいけないでしょうか デバックになってしまいます ご指南ください

  • asapinya
  • ベストアンサー率36% (40/109)
回答No.1

回答でなはいのですが、フォームを出す必要性はあるのでしょうか? 入力規制([データ]→[入力規制] [リスト])ではだめ?

関連するQ&A