[[20120325060008]] 『VBA ウィンドウの整列について』(まじっく) ページの最後に飛ぶ

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

 

『VBA ウィンドウの整列について』(まじっく)

 VBAでウィンドウの整列を行いたいのですが、行き詰ってしまったのでご教授お願いいたします。

 まず、ブックは3つ以上開かれている状態です。
 このうち、特定の2つのブックを「左右に並べて表示」したいのですが、 
 Arrangeメソッドを使用して、ActiveWorkbook引数をTrueにすると一つのブックが表示されるだけですし、
 Falseにしても全てのブックが整列されてしまいます。

 特定の2つのブックのみを並べて表示するにはどうすれば良いでしょうか?
 よろしくお願いします。

 Excel2000,2003,2007,2010での動作を希望します。
 私の環境は2003です。
 Windows XP,Windows7

 VBAをやり始めた頃に作ったものですが・・・、

 Option Explicit
 Sub test()
    Call winArrange(Workbooks("book2"), Workbooks("book3"))
 End Sub
 Sub winArrange(kbook1 As Workbook, kbook2 As Workbook)
    Dim win As Window
    Application.ScreenUpdating = False
    For Each win In Application.Windows
       win.Visible = False
    Next
    kbook2.Windows(1).Visible = True
    kbook1.Windows(1).Visible = True
    Application.Windows.Arrange ArrangeStyle:=xlVertical
    For Each win In Application.Windows
       win.Visible = True
    Next
    kbook2.Activate
    kbook1.Activate
    Application.ScreenUpdating = True
 End Sub

 パラメータとして渡すのは、ブックオブジェクトより、
 Windowオブジェクトの方が良いですね!!
 それに代えて使ってください。

 ichinose

 ichinose様
 一度全てのウィンドウを非表示にすれば良かったのですね。
 今まであまりウィンドウ操作をしたことがなかったので、思いつきませんでした。
 おかげさまで求めていたものができました!
 本当にありがとうございました。

 (まじっく)

コメント返信:

[ 一覧(最新更新順) ]


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