Excelでボタンを設定して、同時に2つのワークシートのデュアルビューを表示しようとしています。これは私がこれまでに書いたコードです(下記参照)。これまでのところ、コードは機能するようです。問題は、上部のウィンドウにワークシート上のいくつかのActiveXコントロールがあり、下部のウィンドウが再び閉じられるまで機能しなくなるようです。なぜこれが起こっているのですか?それを修正するために何ができますか?ありがとう。Excel:同じブックで2つのウィンドウを開くと、最初のウィンドウでマクロが機能しなくなるのはなぜですか?
Private Sub DualViewButton_Click()
Dim windowToPutOnTimeline As Window
If Windows.Count = 1 Then
ThisWorkbook.NewWindow
Windows.Arrange xlArrangeStyleHorizontal, True, False, False
Set windowToPutOnTimeline = Windows(1)
If Windows(1).Top < Windows(2).Top Then
Set windowToPutOnTimeline = Windows(2)
End If
With windowToPutOnTimeline
.Activate
HorizontalTimelineSheet.Activate
.DisplayGridlines = False
.DisplayRuler = False
.DisplayHeadings = False
.DisplayWorkbookTabs = False
'.EnableResize = False
End With
Windows(2).Activate 'go back to the right focus the user expects.
Else
If Windows(1).Top = Windows(2).Top Then
Windows.Arrange xlArrangeStyleHorizontal, True, False, False
Else
Windows.Arrange xlArrangeStyleVertical, True, False, False
End If
End If
End Sub
EDIT:windowToPutOnTimelineに割り当てられているウィンドウを切り替えると、問題はなくなります。だから、私は本質的に、それが他の方法で動作する理由を知らずに問題を回避しました。 (下記のコードをご覧ください)
With ThisWorkbook
Set windowToPutOnTimeline = .Windows(1)
Set windowToPutOnDataSheet = .Windows(2)
tmp = .Windows(1).Top
.Windows(1).Top = .Windows(2).Top
.Windows(2).Top = tmp
End With
あなたが説明しているのと同じ問題に遭遇していますが、あなたの回避策をあまり理解していません。私はある種の運命から私を救うために少し明確にできるかどうか非常に感謝しています! – Sam
@Sam、それは私がそのコードを作業して以来、長い時間と別の仕事だった...しかし、私は同じブックの2つの異なるシートを表示するために2つのウィンドウを作成していた思い出す限り、新しいワークシートを示しました。まだバグがあったかもしれないと思いますが、私の場合は容認できました。 –
フォローアップありがとう - 私はそれを感謝します! – Sam