Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


20344 / 76732 ←次へ | 前へ→

【61809】Re:新しいウインドを開くのウインドウを閉じるときイベント
質問  ON  - 09/6/5(金) 19:10 -

引用なし
パスワード
   ▼yoshi さん:
>どういう不都合が出ているのか、どうしたいのか↑の説明ではさっぱり分かりません。
>09/5/30(土) 16:19 ←に示したマクロで、複数ブックを開いても、それぞれウィンドウの切替は出来ましたけど...
>タスクバーのクリックでも、メニューのウィンドウからの切替でも出来ました。

お手数かけます よろしくお願い致します
以下のようにしてみました

新規ブック開く
上記にコード貼り付け、トグルボタン追加
エクセル保存、終了
上記起動

トグルボタン 実行
マウス移動でウインドウの切替動作 良好
ファイル開くで、新規ブック作成
新規ブックが全画面で表示
タスクバーで、マクロブック選択
マクロブック2画面で表示される
マウス移動で、2画面の切替が出来ない
VBEの画面を見てみると、VBEのタイトルバーがちかちかしている
Module1 mouse_monitore_Stop を実行すると VBEのタイトルバーがちかちかが停止

上記で
マクロブック2画面で表示される
マウス移動で、2画面の切替が出来ない

マウス移動で、アクティブウインドウの切替が出来ないものかと思っています

よろしくお願い致します

貼り付けコード
--------------------------------------------------------
'Sheet1モジュール
Option Explicit

Private Sub ToggleButton1_Click()
 Dim ww!
 'If ToggleButton1.Value = True Then
 If ActiveWorkbook.Windows.Count = 1 Then
  ToggleButton1.Caption = "戻 る"
  Parent.Unprotect
  ActiveWindow.NewWindow
  With Windows(Parent.Name & ":1")
   .Activate
   ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical
   ww = .Width + 2 - 240
   .Width = 240
  End With
  With Windows(Parent.Name & ":2")
   .Activate
   .Left = .Left - ww: .Width = .Width + ww
  End With
  Sheets("Sheet2").Select
  Parent.Protect Structure:=False, Windows:=True
  
  mouse_monitore_Start
  
 Else
  ToggleButton1.Caption = "DTセット(2画面表示)"
  Parent.Unprotect
  Windows(Parent.Name & ":2").Close
  ActiveWindow.WindowState = xlMaximized
  
  mouse_monitore_Stop
  
  
 End If
End Sub


--------------------------------------------------------
'ThisWorkbook

'ブックモジュール(ThisWorkbook)
Option Explicit

Private Sub Workbook_Activate()
 Dim wn As Window, aw As Window
 Set aw = ActiveWindow
 If ActiveWorkbook.Windows.Count > 1 Then
  For Each wn In ActiveWorkbook.Windows
   wn.Activate
  Next
  aw.Activate
 End If
End Sub

Private Sub Workbook_Deactivate()
 ActiveWindow.WindowState = xlMaximized
End Sub

--------------------------------------------------------
'Module1

'Module1モジュール


Option Explicit

Private Type POINTAPI
  x As Long
  y As Long
End Type
Private Declare Function SetTimer Lib "user32" ( _
  ByVal Hwnd As Long, ByVal nIDEvent As Long _
  , ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Sub KillTimer Lib "user32" ( _
  ByVal Hwnd As Long, ByVal nIDEvent As Long)
Private Declare Sub GetCursorPos Lib "user32" ( _
  lpPoint As POINTAPI)
Private Declare Function WindowFromPoint Lib "user32" ( _
  ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetParent Lib "user32" ( _
  ByVal Hwnd As Long) As Long

Private Const ERROR_SUCCESS As Long = 0

Private myTimerId As Long


Sub TimerProc(ByVal Hwnd As Long, ByVal uMsg As Long _
  , ByVal idEvent As Long, ByVal dwTime As Long)
  Static myX As Long, myY As Long
  Dim myPoint As POINTAPI
  Dim myHwnd As Long
  GetCursorPos myPoint
  With myPoint
    If .x = myX And .y = myY Then Exit Sub
    myX = .x: myY = .y
  End With
  myHwnd = WindowFromPoint(myX, myY)
  myHwnd = GetParent(myHwnd)
  If myHwnd = ERROR_SUCCESS Then Exit Sub
  myHwnd = GetParent(myHwnd)
  If myHwnd <> Application.Hwnd Then Exit Sub
  Debug.Print myX, myY
 
 
  If ActiveWindow.WindowState <> xlMaximized Then
 
    If myX < 350 Then
      On Error Resume Next
      Windows(ActiveWorkbook.Name & ":1").Activate
      On Error GoTo 0
    Else
      On Error Resume Next
      Windows(ActiveWorkbook.Name & ":2").Activate
      On Error GoTo 0
    End If
  
  End If
 
 
End Sub

Sub mouse_monitore_Start()
  myTimerId = SetTimer(0&, 0&, 0&, AddressOf TimerProc)
End Sub

Sub mouse_monitore_Stop()
  KillTimer 0&, myTimerId
End Sub

1 hits

【61498】新しいウインドを開くのウインドウを閉じるときイベント ON 09/5/13(水) 17:57 質問
【61504】Re:新しいウインドを開くのウインドウを閉... n 09/5/13(水) 22:40 発言
【61507】Re:新しいウインドを開くのウインドウを閉... yoshi 09/5/14(木) 2:26 お礼
【61515】Re:新しいウインドを開くのウインドウを閉... neptune 09/5/14(木) 10:19 発言
【61604】Re:新しいウインドを開くのウインドウを閉... ON 09/5/21(木) 16:18 お礼
【61615】Re:新しいウインドを開くのウインドウを閉... neptune 09/5/21(木) 22:31 回答
【61619】Re:新しいウインドを開くのウインドウを閉... n 09/5/22(金) 1:37 発言
【61624】Re:新しいウインドを開くのウインドウを閉... yoshi 09/5/22(金) 11:59 回答
【61690】Re:新しいウインドを開くのウインドウを閉... ON 09/5/27(水) 18:44 お礼
【61723】Re:新しいウインドを開くのウインドウを閉... ON 09/5/29(金) 21:15 お礼
【61737】Re:新しいウインドを開くのウインドウを閉... yoshi 09/5/30(土) 16:19 回答
【61804】Re:新しいウインドを開くのウインドウを閉... ON 09/6/5(金) 16:17 質問
【61808】Re:新しいウインドを開くのウインドウを閉... yoshi 09/6/5(金) 18:17 回答
【61809】Re:新しいウインドを開くのウインドウを閉... ON 09/6/5(金) 19:10 質問
【61817】Re:新しいウインドを開くのウインドウを閉... yoshi 09/6/6(土) 16:54 回答
【61930】Re:新しいウインドを開くのウインドウを閉... ON 09/6/12(金) 16:36 お礼
【61931】Re:新しいウインドを開くのウインドウを閉... ON 09/6/12(金) 16:37 発言
【61932】Re:新しいウインドを開くのウインドウを閉... ON 09/6/12(金) 16:39 発言

20344 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free