좌표 선택

큰 모니터가 있지만 작업하는 테이블은 훨씬 더 큽니다. 그리고 필요한 정보를 찾기 위해 화면을 들여다보면 항상 눈을 다음 줄로 "슬립"하고 잘못된 방향을 볼 기회가 있습니다. 나는 그러한 경우에 항상 나무 자를 모니터의 선에 부착하기 위해 가까이에 두는 사람들을 알고 있습니다. 미래의 기술! 

그리고 활성 셀이 시트를 가로질러 이동할 때 현재 행과 열이 강조 표시된다면? 다음과 같은 일종의 좌표 선택:

통치자보다 낫지 않습니까?

이를 구현하기 위해 복잡성을 다양화하는 여러 가지 방법이 있습니다. 각 방법에는 장단점이 있습니다. 자세히 살펴보겠습니다.

방법 1. 명백하다. 현재 행과 열을 강조 표시하는 매크로

"이마" 문제를 해결하는 가장 확실한 방법은 시트에서 선택 항목의 변경 사항을 추적하고 현재 셀의 전체 행과 열을 선택하는 매크로가 필요합니다. 또한 필요한 경우 이 기능을 활성화 및 비활성화할 수 있는 것이 바람직하므로 이러한 십자형 선택으로 인해 예를 들어 수식을 입력할 수 없지만 필요한 항목을 찾기 위해 목록을 살펴볼 때만 작동합니다. 정보. 그러면 시트 모듈에 추가해야 하는 세 가지 매크로(선택, 활성화 및 비활성화)가 표시됩니다.

이러한 좌표 선택을 원하는 테이블이 있는 시트를 엽니다. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 명령을 선택합니다. 소스 텍스트 (소스 코드).Visual Basic Editor 창이 열려야 합니다. 이 세 매크로의 텍스트를 복사하십시오.

Dim Coord_Selection As Boolean '선택을 위한 전역 변수 켜기/끄기 Sub Selection_On() '선택 시 매크로 Coord_Selection = True End Sub Selection_Off() '매크로 끄기 선택 Coord_Selection = False End Sub '선택을 수행하는 주 절차 Private Sub Worksheet_SelectionChange(ByVal Target As 범위) Dim WorkRange As Range If Target.Cells.Count > 1 Then Exit Sub '둘 이상의 셀이 선택되면 종료 If Coord_Selection = False Then Exit Sub '선택이 꺼져 있으면 종료 Application.ScreenUpdating = False WorkRange = Range 설정 (" A1:N6") '선택 항목이 보이는 작업 범위의 주소  

작업 범위의 주소를 자신의 주소로 변경하십시오. 이 범위 내에서 선택 항목이 작동합니다. 그런 다음 Visual Basic Editor를 닫고 Excel로 돌아갑니다.

단축키를 누르세요 ALT + F8사용 가능한 매크로 목록이 있는 창을 엽니다. 매크로 선택_켜기, 짐작할 수 있듯이 현재 시트의 좌표 선택과 매크로가 포함됩니다. 선택_해제 – 끕니다. 같은 창에서 버튼을 클릭하여 파라미터 (옵션) 쉽게 실행할 수 있도록 이러한 매크로에 키보드 단축키를 할당할 수 있습니다.

이 방법의 장점:

  • 상대적 구현 용이성
  • 선택 – 이 작업은 무해하며 시트 셀의 내용이나 서식을 어떤 식으로든 변경하지 않으며 모든 것이 그대로 유지됩니다.

이 방법의 단점 :

  • 시트에 병합된 셀이 있는 경우 이러한 선택이 올바르게 작동하지 않습니다. 통합에 포함된 모든 행과 열이 한 번에 선택됩니다.
  • 실수로 Delete 키를 누르면 활성 셀뿐만 아니라 선택한 전체 영역이 지워집니다. 즉, 전체 행과 열에서 데이터를 삭제합니다.

방법 2. 원본. CELL + 조건부 서식 기능

이 방법에는 몇 가지 단점이 있지만 매우 우아해 보입니다. 내장된 Excel 도구만 사용하여 무언가를 구현하려면 VBA로 프로그래밍하는 것을 최소한으로 하는 것이 곡예 비행입니다 😉

이 방법은 높이, 너비, 행-열 번호, 숫자 형식 등 주어진 셀에 대해 다양한 정보를 제공할 수 있는 CELL 함수 사용을 기반으로 합니다. 이 함수에는 두 개의 인수가 있습니다.

  • "column" 또는 "row"와 같은 매개변수에 대한 코드 단어
  • 이 매개변수의 값을 결정하려는 셀의 주소

트릭은 두 번째 인수가 선택 사항이라는 것입니다. 지정하지 않으면 현재 활성 셀이 사용됩니다.

이 방법의 두 번째 구성 요소는 조건부 서식입니다. 이 매우 유용한 Excel 기능을 사용하면 지정된 조건을 충족하는 셀의 서식을 자동으로 지정할 수 있습니다. 이 두 가지 아이디어를 하나로 결합하면 조건부 서식을 통해 좌표 선택을 구현하기 위한 다음 알고리즘을 얻을 수 있습니다.

  1. 우리는 테이블, 즉 미래에 좌표 선택이 표시되어야 하는 셀을 선택합니다.
  2. Excel 2003 및 이전 버전에서 메뉴를 엽니다. 서식 – 조건부 서식 – 수식 (형식 — 조건부 서식 — 수식). Excel 2007 이상 - 탭을 클릭합니다. (집)단추 조건부 서식 – 규칙 생성 (조건부 서식 - 규칙 생성) 규칙 유형을 선택하고 수식을 사용하여 서식을 지정할 셀 결정 (공식 사용)
  3. 좌표 선택 공식을 입력하십시오.

    =OR(CELL("행")=ROW(A2),CELL("열")=열(A2))

    =OR(CELL(«행»)=ROW(A1),CELL(«열»)=COLUMN(A1))

    이 수식은 테이블에 있는 각 셀의 열 번호가 현재 셀의 열 번호와 같은지 확인합니다. 열도 마찬가지입니다. 따라서 현재 셀과 일치하는 열 번호 또는 행 번호가 있는 셀만 채워집니다. 이것이 우리가 달성하고자 하는 십자형 좌표 선택입니다.

  4. 버튼을 클릭 뼈대 (체재) 그리고 채우기 색상을 설정합니다.

모든 것이 거의 준비되었지만 한 가지 뉘앙스가 있습니다. 사실 Excel은 선택 항목의 변경 사항을 시트의 데이터 변경 사항으로 간주하지 않습니다. 결과적으로 활성 셀의 위치가 변경될 때만 수식을 다시 계산하고 조건부 서식을 다시 칠하지 않습니다. 따라서 이를 수행할 시트 모듈에 간단한 매크로를 추가해 보겠습니다. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 명령을 선택합니다. 소스 텍스트 (소스 코드).Visual Basic Editor 창이 열려야 합니다. 이 간단한 매크로의 텍스트를 복사하십시오.

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

이제 선택이 변경되면 함수를 사용하여 수식을 다시 계산하는 프로세스가 시작됩니다. CELL 조건부 서식에서 현재 행과 열을 플러딩합니다.

이 방법의 장점:

  • 조건부 서식은 사용자 지정 테이블 서식을 손상시키지 않습니다.
  • 이 선택 옵션은 병합된 셀에서 올바르게 작동합니다.
  • 실수로 클릭하여 데이터의 전체 행과 열을 삭제할 위험이 없습니다. ..
  • 매크로는 최소한으로 사용

이 방법의 단점 :

  • 조건부 서식 수식은 수동으로 입력해야 합니다.
  • 이러한 서식을 활성화/비활성화하는 빠른 방법은 없습니다. 규칙이 삭제될 때까지 항상 활성화됩니다.

방법 3. 최적. 조건부 서식 + 매크로

황금 의미. 방법 1의 매크로를 사용하여 시트의 선택 항목을 추적하는 메커니즘을 사용하고 방법 2의 조건부 서식을 사용하여 시트에 안전한 강조 표시를 추가합니다.

이러한 좌표 선택을 원하는 테이블이 있는 시트를 엽니다. 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 명령을 선택합니다. 소스 텍스트 (소스 코드).Visual Basic Editor 창이 열려야 합니다. 이 세 매크로의 텍스트를 복사하십시오.

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7:N300") 'адрес рабочего диапазона с таблицей If Target.Count > 1 then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target) Intersect(Target) WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 33 Target.FormatConditions .Delete End If End Sub  

작업 범위 주소를 테이블 주소로 변경하는 것을 잊지 마십시오. Visual Basic Editor를 닫고 Excel로 돌아갑니다. 추가된 매크로를 사용하려면 키보드 단축키를 누르세요. ALT + F8  그리고 방법 1과 같은 방법으로 진행한다. 

방법 4. 아름답다. FollowCellPointer 추가 기능

네덜란드의 Excel MVP Jan Karel Pieterse는 자신의 웹 사이트에서 무료 추가 기능을 제공합니다. FollowCellPointer(36Kb), 매크로를 사용하여 그래픽 화살표 선을 그려 현재 행과 열을 강조 표시하여 동일한 문제를 해결합니다.

 

좋은 솔루션입니다. 장소에 결함이 있는 것은 아니지만 시도해 볼 가치가 있습니다. 아카이브를 다운로드하고 디스크에 압축을 풀고 추가 기능을 설치합니다.

  • Excel 2003 및 이전 버전 - 메뉴를 통해 서비스 – 추가 기능 – 개요 (도구 - 추가 기능 - 찾아보기)
  • Excel 2007 이상에서 파일 – 옵션 – 추가 기능 – 이동 – 찾아보기 (파일 — Excel 옵션 — 추가 기능 — 이동 — 찾아보기)

  • 매크로란 무엇이며 Visual Basic에서 매크로 코드를 삽입할 위치

 

댓글을 남겨주세요.