'VBA (기본)/Cell 선택'에 해당되는 글 4건

  1. 2017.08.31 VBA. Cell 선택 - Addrress
  2. 2017.08.31 VBA. Cell 선택 - End
  3. 2017.08.31 VBA. Cell 선택 - SpecialCells
  4. 2017.08.31 VBA. Cell 선택

[ VBA. Cell 선택 - Addrress ]

 

1. 정의

    - 현재 선택되어 있는 Cell의 절대주소를 얻어온다.

 

2. 범례

    - strAddress = Selection.Address(rowabsolute:=False, columnabsolute:=False)

'VBA (기본) > Cell 선택' 카테고리의 다른 글

VBA. Cell 선택 - End  (0) 2017.08.31
VBA. Cell 선택 - SpecialCells  (0) 2017.08.31
VBA. Cell 선택  (0) 2017.08.31
Posted by 농부지기
,

[ VBA. Cell 선택 - End ]

 

1. 정의

 

2. 범례

    - Range("D8").End(xlUp).Select
    - Range("D8").End(xlDown).Select
    - Range("D8").End(xlToLeft).Select
    - Range("D8").End(xlToRight).Select

 

3. 속성

    - xlLeft : 1,  xlToRight : 2,   xlUp : 3,   xlDown : 4

 

    - xlUp        : 위쪽    끝 (단축키 : <ctrl> +  ↑ )

                     : 선택된 위치(Cell)를 기준으로  위로 올라가면서 값이 존재 하는 Cell을 찾는 방식

    - xlDown   : 아래쪽 끝 (단축키 : <ctrl> +  ↓ )

                     : 선택된 위치(Cell)를 기준으로  아래로 내려가면서 값이 존재 하는 Cell을 찾는 방식

   - xlToLeft    : 왼쪽    끝 (단축키 : <ctrl> +  ← )

                     : 선택된 위치(Cell)를 기준으로   왼쪽으로 가면서 값이 존재 하는 Cell을 찾는 방식

   - xlToRight : 오른쪽 끝 (단축키 : <ctrl> +  → )

                     : 선택된 위치(Cell)를 기준으로  오른쪽으로 오면서 값이 존재 하는 Cell을 찾는 방식

 

4. 예문

    - Range(Range("E2"), Range("E2").End(xlDown)).Select

    - Range("A65536").End(xlUp).Offset(1, 0).Select

       : A열 맨 마지막에서 위로 올라가면서 값이 존재 하는 Cell을 찾고, Offset(1,0)으로 바로 아래 Cell을 선택

    - 아래 4개 문장은 동일하게 동작

       Cells(Rows.Count, "A").End(3)(2).Select

       Cells(Rows.Count,   1).End(3).Cells(2,1).Select
       Cells(Rows.Count,   1).End(3)(2,1).Select
       Cells(Rows.Count,   1).End(3)(2).Select

      : Y축 모든 Row에서, A열을 기준으로   값이 존재 하는 맨 마지막 Cell을 찾고, 그 바로 아래 Cell을 선택

'VBA (기본) > Cell 선택' 카테고리의 다른 글

VBA. Cell 선택 - Addrress  (0) 2017.08.31
VBA. Cell 선택 - SpecialCells  (0) 2017.08.31
VBA. Cell 선택  (0) 2017.08.31
Posted by 농부지기
,

[ VBA. Cell 선택 - SpecialCells ]

 

1. 정의 

    - cell을 선택 시 특정조건에 맞는 Cell값을 기준으로 선택 한다.


2. 범례

    - expression.SpecialCells(Type, Value)

    - Columns("A").SpecialCells(XlSpecialCellsValue).Select

 

3. XlCellType 상수

     xlCellTypeAllFormatConditions.         -4172       모든 서식의 셀
     xlCellTypeAllValidation.                     -4174       유효성 조건이 있는 셀
     xlCellTypeBlanks.                             4              빈 셀
     xlCellTypeComments.                       -4144       메모가 들어 있는 셀
     xlCellTypeConstants.                       2               상수가 들어 있는 셀
     xlCellTypeFormulas.                        -4123        수식이 들어 있는 셀
     xlCellTypeLastCell.                          11             사용된 범위의 마지막 셀
    xlCellTypeSameFormatConditions.   -4173        같은 서식이 있는 셀
    xlCellTypeSameValidation.               -4175        같은 유효성 조건이 있는 셀
    xlCellTypeVisible.                             12             보이는 모든 셀

 

4. XlSpecialCellsValue

    - Value : Constants 

       16        xlErrors           :

       4          xlLogical         : 빈셀만 선택

       2          xlTextValues   : 공백을 제외한 숫자,문자 선택

       1          xlNumbers      : 숫자 선택

 

5. 예문

    Columns("A").SpecialCells(2).Select

    Range("A1:G10").SpecialCells(2).Select

    Set rngMyRange = Worksheets("Sheet7").Cells.SpecialCells(xlCellTypeFormulas)

 

6. 설명

     - SpecialCells(Type, Value) : arg가 2개 일 때는 Type, Value이고

     - SpecialCells(Value)           : arg가 1개 일 때는 Value만 이다.

 

 

 

'VBA (기본) > Cell 선택' 카테고리의 다른 글

VBA. Cell 선택 - Addrress  (0) 2017.08.31
VBA. Cell 선택 - End  (0) 2017.08.31
VBA. Cell 선택  (0) 2017.08.31
Posted by 농부지기
,

[ VBA. Cell 선택 ]

 

1. 정의

    - 특정위치의 Cell을 일정범위만큼 선택 한다.

 

2. 절대위치 선택 - 예문

    1. 정의

        - Cell의 좌표를 Sheet의 맨 왼쪽 상단꼭지점을 기준으로 위치를 기준으로 시작 좌표가 설정된다.

    2. Range("A3:A5").Select

    3. 아래 4개의 문장은 모두 동일하게 수행 됨

       Range("A1:B2").Select

       Range("A1", "B2").Select

       Range("A1:A2", "B1:B2").Select

       Range("B2", "A1").Select

   4. Range("A:C").Select : A~C열  Select

       Range("1:10").Select : 1행~10행 Select

   4. Cells(5).Select

       Cells(5,1).Select

 

3. 상대위치 선택 - 예문

    1. 정의

        - Cell의 기본좌표(절대위치)는 Sheet의 맨 왼족 상단 꼭지점이며 (0,0)이 된다.

        - 개발을 하다 보면  특정위치(상대위치), 선택되어 있는 위치를 기준(0,0)으로 위치를 이동해야 되는 경우가 있다.

        - 이때 '특정위치(상대위치), 선택되어 있는 위치'를 기준(0, 0)으로 다시 X,Y index가 설정 되도록 할 수 있다. 

          이를 상대위치라 한다.

 

    2. ActiveCell.Range("A3:A5").Select

    3. ActiveCell.Offset(1, 3).Range("A1:A4").Select

    4. ActiveCell.Offset(-1, -2).Range("A1:A8").Select

    5. Range("B3").Range("A2:C4").Select

    6. Selection.Offset(1, 0).Select

 

    7. Range("C2:D3").Cells(2).Select

    8. Range("C2:D3").Cells(5).Select

 

2. Range

    1. 예문 : Range("A3:A5").Select

        - Cell A3 ~ A5 까지 선택한다.

    2. 예문 : Cells(5,1).Select

        - Cells index 기본 : A1=1, A2=2, A3=3.....

        - Cell(행,렬), Cell (X, Y) 좌표가 적용 되어  E1 Cell을 선택 한다.

 

3. Activecell

    1. Activecell - Cell 하나만 Focus위치 시

        - Sheet에서 focus가 위치되어 있는 cell의 위치를 기준(0, 0)으로 좌표(cell index)가 설정된다.

        - 눈에 보이는 X측(A,B,C..), Y측(1,2,3...)의 좌표가 아니고 focus가 위치 되어 있는 cell을 기준으로

           X,Y좌표가 신규로 설정되어 Range()함수가 수행된다.

 

    2. Activecell - Cell 여러개 선택 시

        - cell 하나에만 focus가 있는 경우에는 위와 같이 좌표를 (0,0)으로 보면 되는데

           여러CELL을 선택 한 상태에서 ActiveCell를 수행하면 이상하게(?)좌표(Y,X)가 설정된다.

           사실 이상하게 설정되는게 아니고 Cell을 여러게 설정되어도 자세히 보면 여러Cell중에서

           하나의 cell만 Focus가 위치되어 있다.

           이 Cell을 기준으로 좌표(Cell Index)가 설정 된다.

 

3. Offset(Y,X)

    1. Range는 좌표가 ("XY:XY")로 되어 있는데 OffSet의 좌표(인자)는 (Y,X)로 되어 있다.

    2. ActiveCell를 기준으로 Offset좌표 (Y,X)만큼 이동 후

        이동된 좌표가 다시 (0, 0) 이 되고, Range()함수를 수행한다.

    3. Offset(1, 3) : ActiveCell을 기준 -> Y : 아래로 1칸,   X : 오른쪽으로 3칸 이동하여 기준 좌표가 된다.

    4. Offset(-1, -2) : ActiveCell을 기준 -> Y : 위로 1칸,   X : 왼족쪽으로 2칸 이동하여 기준 좌표가 된다.

 

3. Range("XY")

    1. Range("B3").Range("A2:C4")

    2. 앞쪽 Range의 좌표는 절대위치를 기준으로 시작되고,

        뒤쪽 Range의 좌표는 앞쪽 Range에서 선택된 좌표를 기준(0,0)(상대위치)으로 Cell Index가 시작 된다.

 

3. Selection.Offset(Y,X).Select

    1. 예문 : Selection.Offset(1, 0).Select

    2. Cell을 하나만 선택하고 있는 경우

        - 선택되어 있는 Cell을 기준으로 좌표가 시작(0,0)되고, Offset(Y,X)만큼 이동 후 선택 한다.

    3. Cell를 여러개 선택하고 있는 경우

        - 선택되어 있는 여러 Cell중에 맨 왼쪽 꼭지점이 좌표의 시작(0,0)이 된다.

          이 좌표(0,0)(상대좌표)를 기준으로 Offset(Y,X)좌표만큼 이동 후 선택한다.

           ** 중요 : 이때 선택이 한 Cell만 되는게 아니고 

                         처음 10개의 Cell를 선택하고 있었다면 이동후에도 10개의 Cell이 선택되어 진다.

 

3.  Range(좌표).Cells(index).Select

     1. Cells index 기본 : A1=1, A2=2, A3=3.....

         Range설정 후 Cells index 

              - 선택영역안에서 상대적으로 index가 설정되며

              - 만약, 이 영역을 넘어가는 index가 존재 시 아래쪽으로 index가 연속적으로 부여 된다.

                (아래 3. 예문 참조)

     2. 예문 : Range("C2:D3").Cells(2).Select

         - Cells(2) 는 X 좌표 2번째 Cells를 지칭한다.

           이때, 앞에 Range가 존재 하면 이 Range에 설정된 기준안에서 index가 새로 설정 된다.

           그래서 위 예문의 기준으로 Range("A1:B2")의 영역시 선택되고, 이 선택된 영역을 기준으로

           index가 설정되어  Cells(2)가 적용되면 D2 가 선택된다.

    3. 예문 : Range("C2:D3").Cells(5).Select

         - 이때 Cells의 index는 C2=1, D2=2,     C3=3, D3=4 이다.  이때 index 5부터가 이슈다.

            index 5부터는 선택된 영역 하단으로 해서 부여 된다.

            그래서, C4=5, D4=6,   C5=7, D5=8  ... 과 같이 index가 부여 된다.

         - 그래서 위 문장은 최종적으로 -> C4가 선택 된다.

'VBA (기본) > Cell 선택' 카테고리의 다른 글

VBA. Cell 선택 - Addrress  (0) 2017.08.31
VBA. Cell 선택 - End  (0) 2017.08.31
VBA. Cell 선택 - SpecialCells  (0) 2017.08.31
Posted by 농부지기
,