Walter는 항상 화면의 동일한 위치에서 특정 창 크기로 특정 Excel 통합 문서를 열어야합니다. 그는 통합 문서를 닫을 때 Excel에서이 위치와 크기 정보를 기억하도록하여 동일한 통합 문서를 다음에 열 때 사용하도록하는 방법이 있는지 궁금합니다.

비교적 간단한 방법 중 하나는 통합 문서 (또는 종종 통합 문서)를 화면에 원하는대로 배치 한 다음 통합 문서를 작업 영역으로 저장하는 것입니다. 리본의보기 탭을 표시하고 작업 공간 저장 도구를 클릭하면됩니다. 그러나이 접근 방식은 Excel 2007 및 Excel 2010에서만 작동합니다. 작업 영역을 만드는 기능은 여전히 ​​열 수 있지만 Excel 2013에서는 제거되었습니다.

모든 최신 버전의 Excel에서 작동하는 솔루션의 경우 매크로를 사용해야합니다. 통합 문서를 닫을 때 자동으로 실행되는 매크로와 열 때 실행되는 다른 매크로를 설정할 수 있습니다. 닫을 때 실행되는 항목은 위치 정보를 저장할 수 있으며, 열 때 실행되는 항목은 해당 정보를 검색하여 통합 문서가 표시되어야하는 위치를 찾는 데 사용할 수 있습니다.

그러나 문제는 위치 정보를 저장할 위치입니다. 한 가지 해결책은 통합 문서가 저장된 동일한 폴더의 텍스트 파일에 간단히 작성하는 것입니다. 이것이 다음 매크로 쌍에서 취한 접근 방식입니다.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim fileName As String     Dim myWindow As Window

Set myWindow = ActiveWindow     fileName = "config.txt"

Open fileName For Output As #1     With myWindow         Write #1, .Top         Write #1, .Left         Write #1, .Height         Write #1, .Width     End With     Close #1 End Sub
Private Sub Workbook_Open()

Dim inputStr As String     Dim fileName As String     Dim myWindow As Window

Set myWindow = ActiveWindow     fileName = "config.txt"

If Dir(fileName) <> "" Then         Open fileName For Input As #1         With myWindow             .WindowState = xlNormal             Line Input #1, inputStr             .Top = inputStr             Line Input #1, inputStr             .Left = inputStr             Line Input #1, inputStr             .Height = inputStr             Line Input #1, inputStr             .Width = inputStr         End With         Close #1     End If End Sub

통합 문서가 닫힐 때 실행되는 매크로는 4 개의 위치 지정 위치 (.Top, .Left, .Height 및 .Width)를 config.txt라는 파일에 저장합니다. 그런 다음 통합 문서가 다음에 열리고 통합 문서 창에 대한 적절한 속성이 설정 될 때이 파일을 읽습니다.

어떤 이유로 config.txt 파일이 누락 된 경우 통합 문서가 기본 위치에서 열립니다.

이 방법은 위치 정보를 사용하는 폴더에 단일 통합 문서가있는 경우 유용합니다. 여러 파일이있는 경우 각 파일이 config.txt 파일을 덮어 쓰게되어 원하는 위치에서 통합 문서가 열리지 않을 수 있습니다.

일부 사람들에게는 더 나은 접근 방식이 통합 문서 자체의 위치 지정 위치를 명명 된 참조에 저장하는 것입니다. 이것이 다음 매크로에서 취한 접근 방식입니다.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

On Error Resume Next     With ThisWorkbook         With .Names             .Add Name:="WinTop", RefersToR1C1:="=1"

.Add Name:="WinLeft", RefersToR1C1:="=1"

.Add Name:="WinWidth", RefersToR1C1:="=1"

.Add Name:="WinHeight", RefersToR1C1:="=1"

End With         On Error GoTo 0         .Names("WinTop").RefersTo = ActiveWindow.Top         .Names("WinLeft").RefersTo = ActiveWindow.Left         .Names("WinWidth").RefersTo = ActiveWindow.Width         .Names("WinHeight").RefersTo = ActiveWindow.Height     End With End Sub
Private Sub Workbook_Open()

With ThisWorkbook         ActiveWindow.Top = Val(Mid(.Names("WinTop").RefersTo, 2))

ActiveWindow.Left = Val(Mid(.Names("WinLeft").RefersTo, 2))

ActiveWindow.Width = Val(Mid(.Names("WinWidth").RefersTo, 2))

ActiveWindow.Height = Val(Mid(.Names("WinHeight").RefersTo, 2))

End With End Sub

이 접근 방식을 사용하면 통합 문서를 원하는 위치로 쉽게 전송할 수 있으며 매크로는 통합 문서 창의 위치 정보를 저장하고 재사용합니다.

_ 참고 : _

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

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

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

이 팁 (10091)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.