2009-05-21 5 views
8

숨겨진 워크 시트/통합 문서에는 대부분 SelectSelection 문과 같은에서 오는 것과 같은 VBA 코드에서 수행 할 수있는 제한 사항이 있지만 제한 사항이있는 목록을 찾을 수없는 것 같습니다.숨겨진 워크 시트 또는 통합 문서에서 수행 할 수있는 Excel VBA 작업은 무엇입니까?

Google, 도움말 시스템의 기본 제공 문서 및 MSDN 웹 사이트에서 모두 실패했습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?

편집 : 이 통합 문서는 응용 프로그램의 도움은 Visual Basic에서

WB_Master.Windows(1).Visible = False 
+0

통합 문서를 열고 보이지 않게 만드는 방법에 대해 자세히 설명 할 수 있습니까? –

답변

13

숨겨진 다음

Set WB_Master = Workbooks.Open(Filename:=PATH_Master, ReadOnly:=False) 

및 열립니다 :

객체가 숨겨져

, 화면에서 제거되고 Visible 속성이 False로 설정됩니다. 숨겨진 개체의 컨트롤은 사용자가 액세스 할 수 없지만 실행중인 응용 프로그램, 자동화를 통해 응용 프로그램과 통신 할 수있는 다른 프로세스 및 Windows에서 Timer 컨트롤 이벤트로 프로그래밍 방식으로 사용할 수 있습니다.

두려워서 도움이되지 않아 Google을 통해 많이 찾지 못했습니다.

자신이 말했듯이 Select 메서드와 Selection 속성은 숨겨진 워크 시트에서 작동하지 않으므로 숨겨진 워크 북에서 작동해야합니다. (내가 틀렸다면 수정하십시오.) 그러나 일반적으로 워크 시트에서 범위를 선택하는 것이 항상 효율적이지는 않습니다. 숨겨진 워크 시트에서 작동하는 Range 속성을 사용하는 것이 좋습니다.

편집 : 워크 시트를 볼 수없는 경우에도 시안 A8 :

다음 코드는 A1의 색상을 변경합니다

Dim book2 As Workbook 
Set book2 = Workbooks.Open("C:\Book2.xls") 

book2.Worksheets("Sheet1").Visible = False 
book2.Windows(1).Visible = False 

With book2.Worksheets("Sheet1").Range("A1:E8").Interior 
    .ColorIndex = 8 
    .Pattern = xlSolid 
    .PatternColorIndex = xlAutomatic 
End With 

book2.Windows(1).Visible = True 
book2.Worksheets("Sheet1").Visible = True 
+2

필자는 절대적으로 필요한 경우를 제외하고는 Select에서 멀리 떨어져 있지만 일반적으로 내 특정 문제는 현재 통합 문서가 아니라 숨겨진 통합 문서에있는 셀에 배경색을 적용하려고합니다. 통합 문서를 직접 참조 했음에도 불구하고 통합 문서가 표시되고 활성화 된 경우에만 작동합니다. –

+1

보이지 않는 통합 문서는 워크 시트 기능을 사용하여 액세스 할 수 있습니다. 시트 이름을 지정하십시오. 패트릭 (Patrick)이 최고 예를 제시했습니다. – jgallant

9

당신은 그것들을 숨김 해제에 의해 숨겨진 시트에있는 모든 한계를 얻을 수 있습니다 사용자가 그것을 깨닫지 않고, 무엇이든하고, 다시 숨길 수 있습니다.

이 예제에서는 Sheet2가 숨겨져 있다고 가정합니다.

Sub DoStuffToAHiddenSheetWithoutTheUserKnowingIt() 
    'turns off screen repainting so the user can't see what you're doing 
    'incidentally, this dramatically speeds up processing of your code 
    Application.ScreenUpdating = False 
    'note that if you're stepping through your code, screenupdating will be true anyway 

    'unhide the sheet you want to work with 
    Sheets("sheet2").Visible = True 
     'do whatever you want here, including selecting cells if you want 
     'Scagnelli is right though, only select cells if you have to 

    'when you're finished, hide the sheet again 
    Sheets("sheet2").Visible = False 

    'make sure you turn screenupdating back on, or Excel will be useless 
    Application.ScreenUpdating = True 
End Sub 

당신이 당신의 시트 숨겨진 원하는 경우 또 다른 유용한 트릭은 메뉴 또는 리본을 통해 숨기기를 취소하려고하면 사용자에게 나열되는 것을 방지 할 수있는 xlVeryHidden로 설정하는 것입니다.

관련 문제