[[20200304101920]] 『1つのコマンドボタンで2つの処理』(ハイチュウ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『1つのコマンドボタンで2つの処理』(ハイチュウ)

失礼します。
メインのユーザーフォーム上に問合とゆうコマンドボタンと
TextBox1〜5があります。

問い合わせフォーム1と問い合わせフォーム2が別にあります。

メインフォームのTextBox1にカーソルがあるときに問合をクリックすると
問い合わせフォーム1を表示、TextBox2にカーソルがあるときに問合を
クリックすると問い合わせフォーム2を表示とさせたいのですが
コードがよくわかりません。
コマンドボタンをもう一つ増やせば済む話だと思うのですが、できれば1つで済ませたいと思い投稿させていただきました。

ご教授お願いします。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


う〜ん。たぶん無理じゃないですか?

フォーカスがあたっているオブジェクトを取得することはできるかもしれませんが(未検証)、コマンドボタンの「問合」をクリックした段階で、フォーカス移っちゃってますよね。

発想を変えて、TextBox1が空欄の時は問い合わせフォーム1、そうじゃないときは、問い合わせフォーム2としてみてはどうですか?

(もこな2) 2020/03/04(水) 11:00


1と2以外のテキストボックスだった場合はどうするのでしょうね。
とりあえず、こんな感じで判定してみては?
 Dim iNo As Long

 Private Sub CommandButton1_Click()
    Select Case iNo
    Case 1
        UserForm1.Show
    Case 2
        UserForm2.Show
    End Select
 End Sub

 Private Sub TextBox1_Enter()
    iNo = 1
 End Sub

 Private Sub TextBox2_Enter()
    iNo = 2
 End Sub
(???) 2020/03/04(水) 11:14

モジュールレベルの変数でもいいし、
ユーザーフォームのTagプロパティでもいいけど、
どっかに状態を保持しておけばいいかと。。。

Private Sub CommandButton1_Click()

    Select Case Me.Tag
        Case 1: MsgBox "問い合わせフォーム1"
        Case 2: MsgBox "問い合わせフォーム2"
    End Select
End Sub

Private Sub TextBox1_Enter()

    Me.Tag = 1
End Sub

Private Sub TextBox2_Enter()

    Me.Tag = 2
End Sub

???さんとほぼかぶってるけど。。。。一応。
(まっつわん) 2020/03/04(水) 12:00


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.