1
select
を使用せずに任意の量のワークシートのトップx行をフリーズする方法はありますか、個々のシートをアクティブ化せずにvba経由で行をフリーズする
With ActiveWindow
If .FreezePanes Then .FreezePanes = False
.SplitColumn = 0
.SplitRow = 1
.FreezePanes = True
End With
を使用することを提案し、マクロを記録するRows("4:4").Select: ActiveWindow.FreezePanes = True
を用いることが提案されているが、私は私のワークブック内のすべてのシートを活性化に依存しないソリューションを好むだろう。
I.e.何かのように
Sub FreezeTopXPanes(x As Long)
Dim ws As Worksheet
For Each ws in ThisWorkbook.Worksheets
' Freeze top x rows
Next ws
End Sub
これを実行する方法はありますか、私は他の質問の解決策に固執していますか?
様々なシートを有効にしなければ可能ではないと思います。ドキュメンテーションは 'FreezePanes'は' Sheet'ではなく 'Window'オブジェクトを必要とすると述べています。また、 'FreezePanes'は、' ActiveCell'の位置を使用して、いくつの行と列をフリーズするかを調べます。 –
リンクされた答えをもう少し引用して、アクティブセル/セレクトを使用しないメソッドが少なくとも含まれているので、正しいものにリンクしていることをダブルチェックしてください。関連する情報を含めるように質問を更新しましたが、わかるように、このソリューションはactivewindowの使用にも依存しています。 @PatrickHonorez – eirikdaude