2つのワークブック間で画面を不均等に分割する(Microsoft Excel)
デイブが2つのワークブックを開いているときは、アレンジ|を使用することがよくあります。それらを同時に表示するには水平。これにより、2つのワークブック間でスペースが均等に分割されます。ただし、デイブが1つのワークブックに数行のデータのみを表示し、もう1つのワークブックに多数の行を表示したい場合がよくあります。彼は、小さいブックのサイズを手動で設定し、Excelで画面の残りのスペースを2番目のブックで埋める便利な方法があるかどうか疑問に思います。
これを手動で行う方法は、Dave(および他のほとんどのExcelユーザー)がすでに慣れ親しんでいる方法です。ウィンドウを水平に配置し、上部のウィンドウのサイズを変更してから、下部のウィンドウのサイズを変更します。このようにして、作業を行うためにウィンドウを希望どおりに配置できます。
ウィンドウのサイズをより自動的に変更する方法が必要な場合は、マクロを使用してタスクを実行できます。次のマクロは、最初のウィンドウのサイズを希望どおりに変更し、2番目のウィンドウのサイズを自動的に変更して、上部のウィンドウの下の残りのスペースを占めるようにします。
Sub UnevenSplit1() Dim Ht0 As Single Dim Ht1 As Single Dim Ht2 As Single Dim Top2 As Single If Windows.Count = 2 Then With Windows(1) Ht1 = .Height .WindowState = xlMaximized Ht0 = .Height End With Top2 = Ht1 + 3 Windows.Arrange ArrangeStyle:=xlHorizontal With Windows(1) .Top = 1 .Height = Ht1 End With With Windows(2) .Top = Top2 .Height = Ht0 - Ht1 - 22 End With Windows(1).Activate End If End Sub
開いているブックが2つしかない場合にのみ、マクロはブックウィンドウのサイズを変更します。これより多いまたは少ない場合は、何も起こらないように見えます。
マクロでトップウィンドウのサイズを変更することで、自動化をさらに一歩進めることができます。次の例では、上部のウィンドウが画面の25%を占め、下部のウィンドウが75%を占めています。
Sub UnevenSplit() Dim Ht1 As Single Dim Ht2 As Single Dim Ht1a As Single Dim Ht2a As Single Dim Top2 As Single If Windows.Count = 2 Then Windows.Arrange ArrangeStyle:=xlHorizontal Ht1 = Windows(1).Height Ht2 = Windows(2).Height Ht1a = Ht1 / 2 Top2 = Ht1a + 3 Ht2a = Ht2 + Ht1a With Windows(1) .Top = 1 .Height = Ht1a End With With Windows(2) .Top = Top2 .Height = Ht2a End With Windows(1).Activate End If End Sub
また、このマクロの値は、ウィンドウに表示されている内容に大きく依存することにも注意してください。リボンが垂直方向の深さ全体にある場合は、多くの画面スペースが必要になります。実際、上部のウィンドウが画面の高さの25%を占めていても、リボンやその他のインターフェイス要素によってスペースが占有されているため、ワークシートの行が表示されない場合があります。
2つの可能な解決策があります。 1つは、リボンなどの画面要素を最小化することです。 (リボンを最小化するには、任意のリボンタブをダブルクリックします。)もちろん、他の解決策は、マクロでさまざまな計算を使用してウィンドウの最終的なサイズを決定することです。 (最終的なウィンドウの高さは変数Ht1aとHt2aにあります。)
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13380)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。