FreezePanes
ウィンドウ枠の固定および固定解除を行う場合、FreezePanesプロパティを利用します。
FreezePanesプロパティにTrueを設定すればアクティブセルの左上の位置でウィンドウ枠の固定を行い、Falseを設定すると固定を解除します。
ウィンドウ枠が固定されているかどうかの確認を行う際にもFreezePanesプロパティを確認することで判定できます。
なお、ウィンドウ枠が固定されているセルの位置はSplitRowプロパティ、SplitColumnプロパティで取得できます。
詳細は「VBAでウィンドウの分割と分割解除を行う」をご参照ください。
構文
設定時
Window.FreezePanes = 設定値
参照時
Window.FreezePanes As Boolean
親オブジェクト | Windowオブジェクトを指定します。
アクティブウィンドウであればActiveWindow、複数のウィンドウが開いている場合はWindows(1)などで指定します。 |
設定値 | ウィンドウ枠を固定する場合はTrue、ウィンドウ枠の固定を解除するにはFalseを設定します。 |
アクティブセルが画面表示外にある場合
アクティブセルが画面表示外にある場合は、アクティブセルを中央に表示してそこでウィンドウの固定が行われます。
例えばAC60セルというA1セルから見たら結構離れていて画面に表示できない位置のセルをウィンドウ固定の基点にして、FreezePanesプロパティにTrueを設定すると、AC60セルが画面の中央に表示され、ウィンドウが固定されます。
サンプルコード
FreezePanesプロパティの動作はアクティブセルを基点とします。
そのため、通常FreezePanesプロパティを使う場合には事前にアクティブセルを指定することになります。
以下はC4セルをアクティブセルに設定し、その後、FreezePanesプロパティでウィンドウ枠の固定を行います。
1 2 3 4 |
Sub FreezePanesTest() Range("C4").Select ActiveWindow.FreezePanes = True End Sub |
この状態で以下のようなコードでFreezePanesにFalseを設定すると、ウィンドウの固定が解除されます。
1 2 3 |
Sub FreezePanesFalseTest() ActiveWindow.FreezePanes = False End Sub |