' //////////////////////////////////////////////////////////////
' 全てのシートのカーソルを一番左上に合わせる
' さらに全てのシートを順々に、
' 画面スクロールをシートの一番左上に合わせる
' 印刷エリアの最終行を、使用エリアの最終行の値にする
' ことを繰り返すマクロ。
' //////////////////////////////////////////////////////////////
Sub SelectA1()
' 全てのシートのカーソルを一番左上に合わせる
Worksheets.Select
Range("A1").Select
Worksheets(1).Select ' 一応一番前の選択にする。
' 全てのシートを順々に、次のことを繰り返す
Dim Ws As Worksheet
For Each Ws In Worksheets
Ws.Activate
' 画面スクロールをシートの一番左上に合わせるマクロを呼び出す
Call ScrollTop
' 印刷エリアの最終行を、使用エリアの最終行の値にするマクロを呼び出す
Call PrintAreaLastMatch
Next Ws
Worksheets(1).Select ' 一応一番前の選択にする。
End Sub
' //////////////////////////////////////////////////////////////
' 画面スクロールをシートの一番左上に合わせるマクロ
' //////////////////////////////////////////////////////////////
Sub ScrollTop()
With ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
End With
End Sub
' //////////////////////////////////////////////////////////////
' 印刷エリアの最終行を、使用エリアの最終行の値にするマクロ
' //////////////////////////////////////////////////////////////
Sub PrintAreaLastMatch()
Dim startRow As Long ' 印刷エリアの最初の行
Dim lastRow As Long ' 印刷エリアの最後の行
Dim startCol As Long ' 印刷エリアの最初の列
Dim lastCol As Long ' 印刷エリアの最後の列
Dim UsedstartRow As Long ' 使用エリアの最初の行
Dim UsedlastRow As Long ' 使用エリアの最後の行
' 印刷エリアの行の取得
With Range(ActiveSheet.PageSetup.PrintArea)
startRow = .Rows.Row
lastRow = startRow + .Rows.Count - 1
End With
' 印刷エリアの列の取得
With Range(ActiveSheet.PageSetup.PrintArea)
startCol = .Columns.Column
lastCol = startCol + .Columns.Count - 1
End With
' 使用エリアの行の取得
With ActiveSheet.UsedRange
UsedstartRow = .Rows.Row
UsedlastRow = UsedstartRow + .Rows.Count - 1
End With
' 印刷エリアの最終行に、使用エリアの最終行の値を代入
lastRow = UsedlastRow
' 印刷エリアの行と列を再設定
ActiveSheet.PageSetup.PrintArea = Range(Cells(startRow, startCol), Cells(lastRow, lastCol)).Address
End Sub
' //////////////////////////////////////////////////////////////
' 全てのシートを改ページプレビューにするマクロ
' //////////////////////////////////////////////////////////////
Sub PageBreakPreviewAll()
Dim nowIndex As Long ' 今のシートのインデックス
' 今のシートのインデックスを取得
nowIndex = ActiveSheet.Index
' 全てのシートを選択し、を改ページプレビューにする
Worksheets.Select
ActiveWindow.View = xlPageBreakPreview
' 元居たシートだけの選択に戻す
Worksheets(nowIndex).Select
End Sub
' //////////////////////////////////////////////////////////////
' 全てのシートを標準プレビューにするマクロ
' //////////////////////////////////////////////////////////////
Sub NormalViewAll()
Dim nowIndex As Long ' 今のシートのインデックス
' 今のシートのインデックスを取得
nowIndex = ActiveSheet.Index
' 全てのシートを選択し、標準プレビューにする
Worksheets.Select
ActiveWindow.View = xlNormalView
' 元居たシートだけの選択に戻す
Worksheets(nowIndex).Select
End Sub