ActiveWindow를 사용하지 않고 VBA를 사용하여 Excel에서 격자선을 끄는 방법
Excel 2013 위에 별도의 Excel 보고서를 생성하는 VBA 매크로가 있습니다.생성된 이 Excel 보고서에서 그리드라인을 해제하려고 합니다.
이를 실현할 수 있는 유일한 코드는 다음과 같습니다.
ActiveWindow.DisplayGridlines = False
그러나 이 엑셀은 백그라운드에서 생성됩니다. 즉,
Dim appObject As New Excel.Application
appObject.Visible = False
즉, 이 보고서는 활성화된 창이 아닙니다.ActiveWindow 개체를 사용하지 않고 격자선을 끄는 다른 방법이 있습니까?
워크북에 대한 참조가 있는 경우 해당 컬렉션의 모든 Windows에 대해 반복할 수 있습니다.응용 프로그램이 표시되지 않으면 1만 표시해야 하지만 인덱스를 하드 코딩하는 것보다 안전합니다.
Private Sub ToggleGridLines(target As Workbook)
Dim wnd As Window
For Each wnd In target.Windows
wnd.DisplayGridlines = False
Next
End Sub
그러면 워크북의 활성 워크시트에 표시되는 내용이 변경됩니다. 즉, 워크시트가 창의 속성이지 워크시트가 아닌 이유가 변경됩니다.
편집:
@Tim이 공유한 링크 덕분에, 저는 제가 완전히 떨어져 있다는 것을 깨달았습니다.SheetViews
수집.임의의 경우 격자선을 꺼야 합니다.Worksheet
객체:
Private Sub TurnOffGridLines(target As Worksheet)
Dim view As WorksheetView
For Each view In target.Parent.Windows(1).SheetViews
If view.Sheet.Name = target.Name Then
view.DisplayGridlines = False
Exit Sub
End If
Next
End Sub
ActiveWindow는 Windows 개체 컬렉션의 멤버입니다.다른 컬렉션과 마찬가지로 활성 창을 지정하는 대신 이름으로 실제 창을 참조하십시오.
Windows("My Workbook.xls").DisplayGridlines = False
우리는 "코민테른"이 제안한 대로 하거나 루프에서 적절한 코드 라인을 실행하기 위해 원하는 시트를 활성화할 수 있습니다.저는 위에 게시된 코드를 여러 가지 방법으로 시도했고 저에게 가장 적합한 스니펫을 게시합니다.
Sub GridLines(Optional target As Worksheet, Optional display As Boolean = True)
Dim oWnd As Window
Dim oShView As WorksheetView
If IsMissing(target) Or target Is Nothing Then
For Each oShView In ActiveSheet.Parent.Windows(1).SheetViews
oShView.DisplayGridlines = display
Next
Else
For Each oShView In target.Parent.Windows(1).SheetViews
If oShView.Sheet.Name = target.Name Then
oShView.DisplayGridlines = display
Exit For
End If
Next
End If
Set oShView = Nothing
Set oWnd = Nothing
End Sub
어떠한 피드백도 매우 환영합니다.
20을 사용할 수 있는데 왜 한 줄의 코드를 사용합니까?
Windows(ActiveWorkbook.Name).DisplayGridlines = False
언급URL : https://stackoverflow.com/questions/40368373/how-can-i-turn-off-gridlines-in-excel-using-vba-without-using-activewindow
'programing' 카테고리의 다른 글
도커 오류 바인딩: 주소가 이미 사용 중입니다. (0) | 2023.08.08 |
---|---|
Application_Start of Global.aspx에서 전체 호스트 이름 + 포트 번호를 가져오는 방법은 무엇입니까? (0) | 2023.08.08 |
Python에서 파일 크기를 변환하는 더 나은 방법 (0) | 2023.08.08 |
node.js가 웹 서버라고 할 수 있습니까? (0) | 2023.07.29 |
파워셸에서 정적 메서드를 호출하는 방법 (0) | 2023.07.29 |