「excel Window クラスの FreezePanes プロパティを設定できません。」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスが時折あります。
Excel VBAでは、
ActiveWindow.FreezePanes = True
を実行すればアクティブシートの、ウィンドウ枠の固定ができます。基本的には。
しかし場合によっては、
ActiveWindow.FreezePanes = True
を実行すると
「実行時エラー'1004' Window クラスの FreezePanes プロパティを設定できません。」
とエラーが発生してしまいます。
「excel Window クラスの FreezePanes プロパティを設定できません。」
と検索なさった方は、この実行時エラーの発生する原因と回避策を探していらしたのでしょう。
WindowクラスのFreezePanesプロパティを設定できないエラーの確認
まずは実行時エラーを確認しましょう。
アクティブなブックのウィンドウを最小化した状態で、以下のSubプロシージャを実行してみてください。
Sub sample()
Worksheets(1).Select
Range("B2").Select
ActiveWindow.FreezePanes = True
End Sub
「Window クラスの FreezePanes プロパティを設定できません。」実行時エラーが発生するはずです。
FreezePanesはWindowオブジェクトのプロパティ
アクティブなブックのウィンドウが最小化されている状態で、Window.FreezePanesプロパティを設定しようとしたためです。
FreezePanesはWindowオブジェクトのプロパティですから、ウィンドウの状態がどうなっているかによって挙動が変わります。
FreezePanesが、もしもWorksheetオブジェクトのプロパティであったならば、FreezePanesプロパティを設定できない実行時エラーは、発生しなかったはずです。
で、「Window クラスの FreezePanes プロパティを設定できません。」実行時エラーを回避するには、
ActiveWindow.FreezePanes = True
の前に、
ActiveWindow.WindowState = xlNormal
あるいは、
ActiveWindow.WindowState = xlMaximized
を行い、ウィンドウを最小化されていない状態にすればOKです。
最終更新日時:2019-09-28 06:10
Home » エクセルマクロ・Excel VBAの使い方 » Windowオブジェクト » WindowクラスのFreezePanesプロパティを設定できない