dポイントプレゼントキャンペーン実施中!

Excelのウィンドウ-整列で左右に並べて表示を選択すると、開いているブック全てが均等に分割されて表示されてしまいます。色々な表の比較をしている場合、特定のブックのみを対象とした表示を行いたい場合があります。で、ExcelのVBAで、Windowの整列のマクロを作ろうと考えています。
手順としては、Excelのサイズから、メニューバー、ツールバー、ステータスバーなどのサイズを差し引いたサイズを取得(クライアント領域?)して、表示するウィンドウのサイズを計算して表示することになると思います。(当然、対象となるブックは、何らかの方法で事前に指定しているとします。)
で、質問なんですが、Excelの中のWindowのサイズ(幅、高さ)を取得することは出来るのですが、Excel本体のクライアント領域サイズを取得する方法がわかりませんどなたか教えて頂けないでしょうか?
宜しくお願い致します。

A 回答 (2件)

まず、Excelのバージョンが明記されていませんね。


私はVBAには知識が乏しいのですが、Excel2007では以下のプロパティが用意されています。

Application.Height プロパティ - Excelのメインウィンドウの高さを取得または設定する。
Application.Width プロパティ - Excelのメインウィンドウの幅のサイズを取得または設定する。
Application.UsableHeight プロパティ - Excelウィンドウ領域内で、ウィンドウで使用できる範囲の最大限の高さを取得する。
Application.UsableWidth プロパティ- Excelウィンドウ領域内で、ウィンドウで使用できる範囲の最大限の幅を取得する。

それぞれはポイント(ドット)単位の小数の値で返されます。
たぶんExcel_VBAさんのお望みの取得プロパティは、
Application.UsableHeightとApplication.UsableWidthのことではないでしょうか?
    • good
    • 0

あまり美しくありませんが以下でも取得できます



Windows.Arrange ArrangeStyle:=xlVertical
For idx = 1 To ThisWorkbook.Windows.Count
 wdth = ThisWorkbook.Windows(idx).Width
Next idx
MsgBox wdth
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!