반응형

Range 28

좌표를 이용해 엑셀에 도면 위치 표시하기(2)

3. 여러 개의 좌표를 도면에 일괄 표시하기 이번에는 엑셀에 아래와 같이 가상의 좌표를 표시하고, (참고 사항) - 도면의 위치는 1000단위로 간격을 두었으며, 숫자는 #, 표시형식을 사용해서 천단위 위만 표시되도록 했습니다. 예를 들어 첫번째 N의 좌표는 723,000입니다. - 도면의 좌표는 왼쪽에서 오른쪽, 위쪽에서 아래로 내림차순으로 표시되어 있습니다. 그 안에 아래의 좌표에 해당하는 도면의 위치를 표시해보겠습니다. 가. 작성 방법 ① 왼쪽과, 위쪽, 너비와 높이가 필요한데, 좌표가 정확히 구간과 일치하는 것이 아니므로 좌표보다 큰 값의 위치에 표시하도록 하겠습니다. ② 도면 색은 ColorScheme를 사용하는데, 1은 흰색이므로 제외하고 일련번호를 이용해 표시하겠습니다. 나. 코드 Dim i..

EXCEL - VBA 2023.11.15

매크로 - 범위로 처리하기

그동안은 매크로 작성 시 범위로 처리하는 것만 알고 있었는데, 최근에 유튜브를 보니 셀마다 처리하는 것이 아니라 배열에서 처리한 후 한꺼번에 범위에 일괄로 데이터를 입력하는 것이 훨씬 빠르다는 내용을 보고 충격을 받아 정리하고자 합니다. 먼저 범위로 처리하는 방법을 알아보겠습니다. A열에 2를 곱한 값을 B열에 넣는다고 할 때 범위로 처리하는 것은 아래와 같습니다. 1. 코드 작성 및 실행 먼저 개발 도구 - Visual Basic을 누르고, 삽입 - 모듈을 클릭해서 모듈을 추가합니다. 그리고, 코드 창에 아래 내용을 복사해서 붙여 넣습니다. Option Explicit Sub 곱하기() Dim rng As Range, c As Range Set rng = Range(Range("a1"), Range("..

EXCEL - VBA 2023.09.03

공백의 코드 값이 여러 가지입니다.

이 글에서 텍스트로 된 수식의 값을 구하는 사용자 정의 함수를 만들었는데, 네이버 카페에서 글을 읽다 보니 텍스트 수식을 값으로 바꿔달라는 글이 있어 이 파일에 적용해 보니 안됩니다. 원래는 엑셀 통합문서(*.xlsx)인데 위 사용자 정의 함수를 복사해서 붙여 넣은 후 매크로 사용 통합문서(*.xlsm)으로 바꿨습니다. 그리고, B1셀에 =calc_text(A1)라고 입력하고 엔터키를 누르니 #VALUE! 에러가 발생합니다. 왜 그런가 하고 A1을 마우스로 선택하고 F9키를 누르니 뒤에 공백이 하나 있습니다. 1. 공백 없애기 가. 실패 1 =calc_text(SUBSTITUTE(A1," ",""))라고 SUBSTITUTE함수를 이용해서 공백 한 칸을 공백이 없는 것을 대체하는 수식을 추가해도 여전히 #..

Excel 2023.08.20

텍스트로 된 수식의 값 구하기(4 - 2) - 사용자 정의 함수

텍스트로 된 수식의 값 구하기(4 - 1) - Evaluate 함수에서 VBA의 Evaluate 함수를 이용해 수식의 값을 구할 수 있다는 것을 알았는데, https://lsw3210.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A1%9C-%EB%90%9C-%EC%88%98%EC%8B%9D%EC%9D%98-%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B04-1-Evaluate-%ED%95%A8%EC%88%98 직접 실행창에서 매번 실행할 수는 없으므로 사용자 정의 함수를 만들어 사용해야 합니다. 1. VB 에디터 실행 개발도구 - Visual Basic을 눌러 VB Editor를 연 다음 엑셀 파일명을 클릭한 다음 사용자 정의 폼 삽입 옆의 콤..

EXCEL - VBA 2023.07.20

엑셀 VBA : 모든 테두리를 실선으로

1. 매크로 기록 - 모든 테두리를 실선으로 그리기 개발도구에서 매크로 기록을 누르고, 매크로 저장 위치를 '현재 통합문서'로 하고, 확인 버튼을 누르면 홈 탭, 테두리에서 모든 테두리를 클릭하고, 개발도구 - 매크로 중지를 누르면 아래와 같은 코드가 만들어집니다. Sub 매크로1() ' ' 매크로1 매크로 ' ' Range("A2:Q15").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0..

EXCEL - VBA 2023.06.05

Range.AutoFilter Method(1) - expression.AutoFilter

1. 구문 VBA에서 사용하는 AutoFilter 메서드의 구문은 아래와 같습니다. expression.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown) ㅇ expression : Range 오브젝트를 반환하는 표현, 예, ActiveCell, Selection, Range("A1") 등 ㅇ Field : filter를 배치하려고 하는 영역의 offset(상대적 위치) 순번(index)으로 목록의 가장 왼쪽이 1 임. 따라서, 목록(list)이 A열부터 시작한다고 하면 A열이 1이지만, B열부터 시작한다고 하면 B열이 1이 됨 ㅇ Criteria1 : 조건1 ㅇ Operator : 필터에 적용되는 조건과 관련된 연산..

EXCEL - VBA 2023.03.02

날짜 변환 - DateValue 함수, 선택하여 붙여넣기 VBA(2)

1편은 날짜를 변환할 열에 데이터가 연속적으로 있다고 가정하고 만든 것인데, 날짜가 중간에 비어 있다면 End(xlDown)했을 때 데이터가 있는 마지막 행으로 이동하는 것이라 데이터가 없는 중간에 멈추게 됩니다. 아래와 같이 A6셀에 데이터가 없을 경우 날짜변환 매크로를 실행하면 A6셀 전까지만 날짜변환이 처리됩니다. 1. 원인 분석 1 첫 번째 If문에 중단점을 설정한 후 실행하고 A열을 선택한 후 확인 버튼을 누르 If문에서 실행이 멈추게 되는데 F8을 눌러 한 단계씩 실행하면 직접 실행 창에 물음표 다음에 col_num(1, 1).End(xlDown).Row을 붙여 넣고 엔터키를 누르면 2가 표시되고, 물음표 다음에 Cells(Rows.Count, col_num.Column).End(xlUp).R..

EXCEL - VBA 2023.02.17

CurrentRegion 속성을 이용한 합계 등 계산(2)

1편에서는 표로 만들었는데, 입력하지 않은 주변 셀까지 수식이 자동으로 입력되어 범위로 변경하였습니다. 이전 편에서는 과목별 합계 등을 구해봤는데, 이번에는 성명을 기준으로 한 합계 등을 구해보겠습니다. 다른 점은 과목별 합계를 구할 때는 Sum 등이 아래에 있어서 4개를 뺄 수 있었는데, 성명별 합계를 구할 때는 처음에는 없다가 VBA를 실행하면 추가되기 때문에 두 가지 요소를 고려해서 매크로를 작성해야 한다는 것입니다. 또한 합계 등을 구할 때 행 별로 합계를 구해야 하고, 행을 내려가면서 합계 수식을 반복하는데 Sum이전의 end_row_of_calc(계산할 마지막 행) 까지만 실행해야 합니다. 1. 코드 작성 가. 계산할 마지막 열 구하기 Sum 등이 있을 경우와 없을 경우 end_col_of_c..

EXCEL - VBA 2023.02.06

CurrentRegion 속성을 이용한 합계 등 계산(1)

1. CurrentRegion의 주소 체계 A2셀을 기준으로 한 CurrentRegion은 전체 시트의 시각에서 보면 A2셀부터 E15셀까지이지만, CurrentRegion의 입장에서 보면 현재 영역의 왼쪽 위가 A1셀, 다시 말해 행이 1, 열이 1인 셀부터 행이 14, 열이 5인 E14셀까지로 새로운 주소 체계를 갖고 있습니다., 셀 주소는 A1 참조 스타일로 보면 위와 같이 A2, E15식으로 표시하지만, 파일 - 옵션 - 수식 탭에서 'R1C1 참조 스타일'의 왼쪽에 체크하고 확인 버튼을 누르면 열을 표시하는 기호가 알파벳이 아니라 숫자로 바뀌며, D14셀의 주소가 R10C4로 바뀝니다. R10C4란 10행 4열이란 의미로서 A1 참조 스타일의 경우와 달리 행이 먼저 표기됩니다. 2. Curren..

EXCEL - VBA 2023.02.03

CurrentRegion의 속성 알아보기

1. CurrentRegion의 주소 확인하기 CurrentRegion(현재 영역)의 설정 범위를 알아보기 위해 VB Editor를 실행한 후 코드를 작성해 보겠습니다. 가. 코드 작성 모듈을 삽입한 다음 아래와 같이 코드를 작성합니다. Sub cur_range_addr() Dim cur_range As Range Set cur_range = Range("a2").CurrentRegion MsgBox cur_range.Address End Sub 나. 코드 설명 Dim cur_range As Range : 현재 영역을 저장하기 위한 변수 cur_range를 Range(범위) 형식으로 선언합니다. Set cur_range = Range("a2").CurrentRegion : - 일반적인 변수는 cur_ra..

EXCEL - VBA 2023.01.30
반응형