戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
CommandButtonのフォーカスを解除して、セルをアクティブにする

    [189311] CommandButtonのフォーカスを解除して、セルをアクティブにする-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ 5流クン -(2019/05/10(17:48))
    □U R L/

      B5に何か入力された場合、
      Me.CommandButton1.Activate
      で、
      CommandButton1にフォーカスするように設定してあります。


      これを、特定の条件の後に
      CommandButton1のフォーカスを解除して
      B5をアクティブな状態にしたいのですが、

      Worksheets("sheet1").Activate
      range("B2").Select

      だけでは、CommandButton1がフォーカスされたままで
      B2がアクティブな状態にはなりません。

      フォーカスを解除してから、B2アクティブな状態にするにはどうしたら良いのでしょうか?




    [189312] Re[1]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2019/05/10(21:03))
    □U R L/
      実験した限りでは、これを実行した後、CommandButton1のLostFocusイベントが発生しましたけどねぇ・・
                 ↓
      >Worksheets("sheet1").Activate
      
      再現手順を示していただかないと、テストできないです。




    [189313] Re[2]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    記事引用/メール受信=OFF■

    □投稿者/ 5流クン -(2019/05/11(16:47))
    □U R L/
          Rem B5に何か入力されたら処理を開始
          If Target.Address = "$B$5" Then
              Select Case Target.Text
                  Case ""
                  Case Else
                      datajyunbi
              End Select
              
               Me.CommandButton1.Activate
             End If
          End If
      
      これで、CommandButton1がフォーカスされます。
      
      
      その後、
      
      Sub datajyunbi()
      
      ----
      ----
      ----
      
          Set a = Nothing
          Worksheets("入力").Activate
           range("B2").Select
          
        If TypeName(Selection) = "Range" Then Msgbox "ok"
      
      End Sub
      
      okと表示され、この時点ではB2がアクティブになっていますが
      MsgboxのOKをクリックすると、
      CommandButton1がフォーカスしている状態に戻ってしまいます。
      
      If TypeName(Selection) = "Range" Then Msgbox "ok"
      の後にはEnd Subしかないので、
      何かがB5に入力されることはありえません。
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189315] Re[3]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2019/05/11(17:59))
    □U R L/
      >その後、
      
      「その後」とありますので、datajyunbi は二回実行されるんですね?
      
      2回目をどう実行しているのか分からないので、
      Application.Ontimeで実行してみましたが、
      普通にCommandButton1のフォーカスが外れた様に見えましたけども・・
      
      ’シートモジュール
      Private Sub Worksheet_Change(ByVal Target As Range)
          Rem B5に何か入力されたら処理を開始
          If Target.Address = "$B$5" Then
              Select Case Target.Text
                  Case ""
                  Case Else
                      datajyunbi
              End Select
              
               Me.CommandButton1.Activate
             End If
             
           Application.OnTime Now + TimeValue("00:00:03"), "datajyunbi"
      End Sub
      
      ’標準モジュール
      Sub datajyunbi()
          Dim a As Object
      '----
      '----
      '----
          Set a = Nothing
          Worksheets("入力").Activate
           Range("B2").Select
      
          If TypeName(Selection) = "Range" Then MsgBox Selection.Address & " is selected"
      End Sub

      この記事にはVBAのコードが含まれています。

      <FONT COLOR='green'>緑の太文字→注釈
      <FONT COLOR='brown'>茶色の太文字→条件分岐
      <FONT COLOR='red'>赤の太文字→ループ
      <FONT COLOR='BLUE'>青の太文字→その他


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189320] Re[4]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    記事引用/メール受信=OFF■

    □投稿者/ 5流クン -(2019/05/11(21:43))
    □U R L/
      2回実行されるのではなく、
          If Target.Address = "$B$5" Then
              Select Case Target.Text
                  Case ""
                  Case Else
                      datajyunbi
              End Select
              
               Me.CommandButton1.Activate
             End If
          End If
      
      このイベントで、CommandButton1がフォーカスされたのち、
      Enterキーを押して実行です。
      
      実行後、該当データがなかった場合は、
      最後に
          Set a = Nothing
          Worksheets("入力").Activate
           Range("B2").Select
      でB2が選択されているようにしてありますが、
      CommandButton1にフォーカスされた状態に戻ってしまいます。
      
      検証のため、
      If TypeName(Selection) = "Range" Then Msgbox "ok"
      を入れてありますが、
      この時点では、コマンドボタンではなく、
      B2が選択されているようです。
      
      なぜ、CommandButton1に戻るのか不明です。
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189321] Re[5]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    記事引用/メール受信=OFF■

    □投稿者/ 5流クン -(2019/05/11(21:54))
    □U R L/

      残念ながら、他にも不思議なことは時々起こっておりますので
      なぜ、戻るかという問題は横に置いておいても良いと思います。

      CommandButton1のフォーカスを、強制的に解除する方法があれば、
      いったん解除してから、B2を選択するようにしたいと考えておりますが、
      何か方法はありますでしょうか?




    [189322] Re[6]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2019/05/11(23:13))
    □U R L/
      >このイベントで、CommandButton1がフォーカスされたのち、
      >Enterキーを押して実行です。
      
      このCommandButton1って、ワークシート上にあるものですよね?(UserForm上のではなく)
      
      だとすると「Enterキー」イベント は存在しないです。
      なので、実行できていないハズですが?
      
      >CommandButton1のフォーカスを、強制的に解除する方法があれば、
      >いったん解除してから、B2を選択するようにしたいと考えておりますが、
      >何か方法はありますでしょうか?
      
      逆だと思うのですが、強制的にフォーカスさせているのが、
      これなので、そのステートメントを削除すればいいんじゃないですか?
        ↓
      >Me.CommandButton1.Activate
      
      ※ いまひとつ、そちらの意図が理解できていない気がしていますが。




    [189323] Re[7]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    記事引用/メール受信=OFF■

    □投稿者/ γ -(2019/05/12(06:54))
    □U R L/
      既に解決されているものと思いますが、念のため。
      
      datajyunbiを抜けてから
      Me.CommandButton1.Activate
      が実行されているので、至極当然の結果と思われます。
      datajyunbiを抜けた次の行で
      Exit Sub
      とするのも一法でしょう。
      
      私も
      >このイベントで、CommandButton1がフォーカスされたのち、
      >Enterキーを押して実行です。
      の意味が把握できていません。
      
      まだ提示されていないコードがありそうな気がします。
      質問にあたっては、Sub XXX から End Subまでを
      省略せずに書かれたほうが、双方にとって利益があると思います。
      
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189325] Re[8]: CommandButtonのフォーカスを解除して、セルをアクティブにする-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ 5流クン -(2019/05/12(13:41))
    □U R L/
      申し訳ございません。
      
      順番が間違っていただけでした。
      
          Worksheets("入力").Activate
           Range("B2").Select
      
      で、問題なく移動できます。


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G