| 
    
     |  | 大変遅くなりました m(_ _)m 
 解説、添削ありがとうございます
 
 
 >コントロールツールボックスではそうなるようです。
 >色々問題のあるコントロールなので、昔ながらのフォームのボタンを使われたらどうでしょう。
 普段、VBのツールバーを表示しているので、これを使用していました
 フォームのコントロールはあまり使用したことはないです
 ただ、こちらには、トグルボタンはありました
 どうするか、もう少し検討してみます
 
 
 >以下のかんじくらいにはなると思います。
 コードのご提示ありがとうございます
 全然、違いますね、1/4ぐらいになっているし・・・
 
 Parentあまり使用したことはありません
 また、自分の理解が足りていないことが原因で無駄が多いこと理解できました
 ありがとうございました
 
 
 >取りあえず、トグルボタンで動作、マウスAPI抜き(組み込んでも動作しました)
 >コードは、下記で希望の操作かないました
 は勘違いでした
 別ブックを起動すると、マウス移動でのウインドウの切り替えは出来なくなりました
 
 yoshiさんのコードにマウスのAPIを追加してみましたが
 やはり、別ブックを起動すると、
 マウス移動でのウインドウの切り替えは出来なくなりました
 
 そこで、色々、StartSample、StopSampleを散りばめて記述してみましたが (*o*)\baki
 うまく出来ませんでした
 
 つらつら思うに、別ブックの起動を含めた制御を行うには
 アプリケーションレベルでの制御が必要になると思い
 理解が乏しくあまり使用したことがないのですが下記のクラスを使用してみました
 
 ------------------------------------------------------
 'Class1
 
 Option Explicit
 
 Public WithEvents appevent As Application
 
 Private Sub appevent_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window)
 
 'MsgBox ActiveWindow.Caption
 'MsgBox Parent.Caption
 
 If Mid(ActiveWindow.Caption, Len(ActiveWindow.Caption) - 1, 1) = ":" Then
 MsgBox ActiveWindow.Caption
 End If
 
 End Sub
 
 
 ------------------------------------------------------
 'Module1
 
 Option Explicit
 
 Dim myobject As New Class1
 
 Sub Test()
 Set myobject.appevent = Application
 End Sub
 
 
 Testを実行すると、複数ブック、複数ウインドウを開いて
 マウスでブックを選んだとき、タスクバーで選択したときとか
 タイトルバーのキャプションをメッセージ出来ました
 
 >>この辺の処理、トラウマで、いつも、コードが動くように
 >>訳もわからず改変していって??になってしまいます
 ウインドウズの操作が苦手(いつも??)で闇雲コードとなっていましたが
 これと、APIでHwndが扱えれば、かなりのことが出来そうな気がしてきました
 ↑
 気がしているだけですが・・・
 
 
 ここまでの理解で下記してみましたが
 他ブック選択後、2画面ブックにもどってマウスでウインドウの切り替えは出来ませんでした
 
 Private Sub appevent_WindowActivate(ByVal Wb As Workbook, ByVal Wn As Window)
 
 'MsgBox ActiveWindow.Caption
 'MsgBox Parent.Caption
 
 If Mid(ActiveWindow.Caption, Len(ActiveWindow.Caption) - 1, 1) = ":" Then
 'MsgBox ActiveWindow.Caption
 mouse_monitore_Start
 Else
 mouse_monitore_Stop
 
 End If
 
 End Sub
 
 
 TimerProcが理解できていないためのような気もしますが
 上記アプローチが悪いためかもしれません
 
 アドバイス頂けるとうれしいです
 
 よろしくお願いいたします
 
 |  |