Excel VBA でワークシートのウィンドウ枠の固定を設定する場合、通常は下記のコードだと思う。
Range(“B2”).Select
ActiveWindow.FreezePanes = False
ActiveWindow.FreezePanes = True
ただ、上のコードは、VBAが入っているそのエクセル自身のシートを操作する場合。
では、VBAから別のエクセルを開いて、その別のエクセルのシートのウィンドウ枠の固定を設定する場合にどうするか。
いろいろ試していたら次のコードでうまく動いたので、記しておく。
Excel2016。
Dim wb As Workbook
Dim FileName As String
FileName = Application.GetOpenFilename(filefilter:="Excelファイル,*.xls*", MultiSelect:=False)
Set wb = Workbooks.Open(FileName)
wb.worksheets(1).range("C2").select
wb.worksheets(1).application.activewindow.freezepanes = false
wb.worksheets(1).application.activewindow.freezepanes = True
wb.save
wb.close savechanges := true