Excel 통합 문서에는 여러 개의 개별 워크 시트가 포함될 수 있습니다. 다양한 워크 시트 내에서 이동할 때 Excel은 어떤 워크 시트에서 어떤 셀이 선택되었는지 추적합니다. 새 워크 시트로 전환하면 Excel은 해당 워크 시트 내에서 마지막으로 활성화 된 셀을 활성화합니다. 따라서 워크 시트에서 F9 셀을 마지막으로 선택한 경우 이전 워크 시트에서 선택한 항목에 관계없이 워크 시트를 다시 표시 할 때 선택한 셀입니다.

그러나 일부 통합 문서의 경우 Excel에서 선택한 워크 시트의 활성 셀을 이전 워크 시트의 활성 셀과 동일하게 만들 수 있습니다. Excel에서이 작업을 자동으로 수행하는 설정은 없지만 몇 가지 시도 할 수 있습니다. 한 가지는 다음 단계를 따르는 것입니다.

  1. 이동하려는 워크 시트의 탭을 클릭 할 때 Ctrl 키를 누르고 있습니다. 이제 두 개의 워크 시트 탭이 선택되어야합니다. 굵게 표시된 이름이 실제로 화면에 표시되는 이름입니다.

  2. 이동하려는 워크 시트의 탭을 클릭합니다. 두 탭 모두 선택해야하지만 클릭 한 탭만 이름이 굵게 표시되어야합니다.

  3. 방금 남긴 워크 시트의 탭을 클릭 할 때 Ctrl 키를 누르고 있습니다.

이러한 단계는 워크 시트를 “그룹화”하기 때문에 작동합니다. 이렇게하면 Excel은 그룹의 모든 워크 시트에 대해 선택한 셀을 동일하게 만듭니다.

Ctrl- 클릭-클릭 -Ctrl 시퀀스를 사용하는 것을 기억하는 것은 기껏해야 번거로울 수 있습니다. 또한 3 단계를 잊어 버리면 워크 시트에서 의도하지 않은 변경 작업을 수행 할 수 있기 때문에 위험이 발생할 수있는 시퀀스이기도합니다. (그룹화 된 워크 시트로 작업하는 동안 한 시트에서 변경 한 사항은 그룹의 모든 시트에서 유사하게 변경됩니다.)

이 세 단계는 매크로를 사용하여 자동화 할 수 없지만 같은 작업을 수행하기 위해 매크로를 사용하여 다른 접근 방식을 취할 수 있습니다. 가장 먼저해야 할 일은 다음과 같이 통합 문서의 모듈 내에서 공용 변수를 선언하는 것입니다.

Public sAddress As String

이 변수 sAddress는 활성 셀의 현재 주소를 저장하는 데 사용됩니다. 통합 문서의 “ThisWorkbook”모듈에 다음 두 매크로를 추가합니다.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _   ByVal Target As Excel.Range)

sAddress = ActiveCell.Address End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

On Error Resume Next     If sAddress > "" Then Sh.Range(sAddress).Select End Sub

첫 번째 매크로는 선택한 셀이 변경 될 때마다 Excel에서 자동으로 실행됩니다. 이것이하는 일은 활성화 된 셀의 주소를 검색 한 다음 해당 주소를 sAddress 변수에 저장하는 것입니다.

두 번째 매크로는 통합 문서가 활성화 될 때마다 자동으로 실행됩니다.

sAddress에 저장된 항목이 있는지 확인합니다. 있다면 거기에 저장된 셀 주소를 선택합니다. 차트 시트와 같이 셀을 사용하지 않는 시트를 선택한 경우 오류 코드가 필요합니다.

이 매크로 접근 방식은 하나 또는 두 개의 통합 문서에서 이러한 탐색 변경을 수행하려는 경우에 효과적입니다. “시스템 전체”(즉) 변경을 선호하는 경우 매크로에 대한 접근 방식이 조금 더 복잡해야합니다. 이 경우 Excel을 시작할 때마다로드되도록 Personal.xls 통합 문서에 코드를 배치해야합니다. 특히 Personal.xls 통합 문서의 새 클래스 모듈에 다음 코드를 배치합니다. 이 클래스 모듈은 ClassXLApp :

와 같이 설명적인 이름을 지정해야합니다.

Public WithEvents gobjXLApp As Excel.Application Private mstrAddress As String

Private Sub gobjXLApp_WorkbookActivate(ByVal Wb As Excel.Workbook)

On Error Resume Next     If mstrAddress > "" Then ActiveSheet.Range(mstrAddress).Select End Sub

Private Sub gobjXLApp_SheetActivate(ByVal Sh As Object)

On Error Resume Next     If mstrAddress > "" Then Sh.Range(mstrAddress).Select End Sub

Private Sub gobjXLApp_SheetSelectionChange(ByVal Sh As Object, _   ByVal Target As Excel.Range)

mstrAddress = Selection.Address End Sub

다음으로 Personal.xls의 “ThisWorkbook”모듈을 열고 다음 코드를 복사하십시오.

Private mobjXLApp As New ClassXLApp

Private Sub Workbook_Open()

Set mobjXLApp.gobjXLApp = Excel.Application End Sub

Personal.xls를 저장하고 Excel을 다시 시작하면 선택한 다음 워크 시트에서 열리는 첫 번째 통합 문서의 범위가 선택됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (3205)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excelribbon-Maintaining_the_Active_Cell [활성 셀 유지].