あなたはWorksheet_Activateイベントを使用することができ、および場所コードに適用することになるだろうなど
Private Sub Worksheet_Activate()
Columns("A:P").Select
ActiveWindow.Zoom = True
Range("A1").Select
End Sub
各シートに必要に応じて範囲を編集します。
あなたはもう少し複雑で、使用何かを使用する必要があるかもしれませんので、またはあなたは、何をしたいと思いもしなくてもよいシートがアクティブになるたびに、実行されるコード:
Private AlreadyRun As Boolean
Private Sub Worksheet_Activate()
If Not AlreadyRun Then
Columns("A:P").Select
ActiveWindow.Zoom = True
Range("A1").Select
AlreadyRun = True
End If
End Sub
をどののみとなります何かシートは(AlreadyRun変数はもともとFalseになりますように、それが一度実行されるとTrueに変更されます)が活性化される最初の時間を行う、またはシートにそれが起動するたびにサイズが変更されます
Private AlreadyRun As Boolean
Private Sub Worksheet_Activate()
Dim CurRng as Range
Set CurRng = Selection
Columns("A:P").Select
ActiveWindow.Zoom = True
CurRng.Select
If Not AlreadyRun Then
Range("A1").Select
AlreadyRun = True
End If
End Sub
最初に選択したセルをA1に移動するだけです。
はワークブックがワークブックが再オープンさWorksheet_Activateイベントを通過していない保存されたときに、現在のあるシートに起因する問題を回避するには、
Private Sub Workbook_Open()
Application.Screenupdating = False
Dim ws As Worksheet
Set ws = Activesheet
'For the next two lines, just pick any two of your worksheets
'All it is trying to do is to ensure whichever sheet was active at open
'is deactivated before being activated again in the "ws.Activate" command
Worksheets("Sheet1").Activate
Worksheets("Sheet2").Activate
ws.Activate
Application.Screenupdating = True
End Sub
(無効Screenupdatingを言うのWorkbook_Openイベントを含むことができ、イベントが実行されている間は、ユーザーにはワークシートの「ちらつき」が見られなくなります)。
すべてのワークシートをループします。 http://stackoverflow.com/questions/25953916/excel-vba-looping-through-multiple-worksheets – cyboashu
(少なくとも)4つの異なる方法で、表示され、隠されている既存のワークシートをループすることができます: 'Dim WS ThisWorkbook.Worksheets の各WS用のワークシート としてThisWorkbook.Worksheets.Count にN = 1の場合はロング として、あるいは 薄暗いN 'ワークシートWS 次WS で何かを' 'ワークシート(N)とsoemthingを行います Debug.Print ThisWorkbook.Worksheets(N).Name 次N 'OR Dim W WSは何も なくなるまでのワークシート 設定WS =ワークシートとして、S(1) 'を行いWS のDebug.Print WS.Name 設定WS = WS.Next Loop' – skkakkar
ありがとうcyboashuと何かを、私はVBAの第一人者ないです各ワークシートの範囲が異なる場合、ループを各ワークシートに適用するにはどうすればよいでしょうか。 – Stackexplorer