반응형

EXCEL - VBA 124

VBA 에서 .Value가 필요한 경우

1. 문제  아래와 같이 지출 내역이 있을 때구분이 몇 가지 있는지 추출하려면 아래와 같이 데이터 탭의 '중복된 항목 제거'를 하는 것이 간결하지만VBA에서 Dictionary를 이용해 중복된 것은 하나만 추출하는 것을 해보겠습니다.  '중복된 항목 제거'를 하려면먼저 구분을 다른 범위에 복사해서 붙여넣고 데이터 탭을 선택한 후 '데이터 도구 그룹'의 '중복된 항목 제거' 명령을 누르고, 중복된 항목 제거 기준이 '구분'으로 되어 있으므로,확인 버튼을 누르면 됩니다. 그러면 "중복 값 3개가 발견되어 제거되었다"고 합니다.   2. 성공 - Range 다음에 .Value를 붙인 경우VBA에서 중복값을 제거할 때는 여러 가지 방법이 있을 수 있지만Dictionary를 이용하는 것이 제일 편합니다. 개발도구..

EXCEL - VBA 2024.08.02

셀 서식의 통화 기호 활용하기(환율 적용하기)

통화 기호를 알아내는 사용자 정의 함수(UDF) 만드는 것은 아래 글을 참고 바랍니다.https://lsw3210.tistory.com/538 1. 문제 위 URL에서 통화 표시 형식에 따라 통화 기로를 C열에 수식을 입력해서 구했는데, 이들 통화 기호에 따라 F열에서 K열까지 있는 환율을 이용해 원화로 표기해 보겠습니다.  2. 해법 (가) 수식 1환율이 오른쪽으로 배치되어 있으므로HLookup함수를 사용해야 합니다. 따라서, D1셀에=HLOOKUP(C1,$F$1:$K$2,2,0)라고 입력해서, C1셀 값을 F1셀에서 K2셀까지의 범위의 첫 번째 행에서 찾아 두 번째 행의 값을 구하면 ₩이므로 1이 구해집니다. 이제 A1셀의 값을 구하면 됩니다. 100원이 구해졌습니다. 다시 D1셀의 채우기 핸들을 더..

EXCEL - VBA 2024.07.10

셀 서식의 통화 표시 알아내기 (2) - 사용자 정의 함수(UDF)

Sub 프로시저를 실행하면 여러 가지 동작을 한 번에 실행하는 것이고,Function 프로시저는 내가 원하는 형태의 함수를 만드는 것입니다. 다시 말해 =함수명(셀 주소) 형식으로 매크로를 실행하는 것이 아니라함수로 결괏값을 반환받는 것입니다. 따라서, 사용자 정의 함수(User Defined Function, UDF)를 만들어 사용하면 편리합니다. 1. 논리NumberFormat을 했을 때는 원화 표시 ₩가 $로 표시되어서 사용할 수 없고,NumberFormatLocal을 사용해야 합니다.  그러나. 세 번째 줄부터는 NumberFormat이나 NumberFormatLocal이 같습니다. 그리고, 한 자리 기호인 경우, 다시 말해 '['표시가 없는 경우)는 첫 번째 기호인 ₩와 $를 가져오면 되는데세 ..

EXCEL - VBA 2024.07.09

셀 서식의 통화 표시 알아내기 (1) - NumberFormat, NumberFormatLocal

1. 엑셀에서 알아내기 - 실패 아래와 같이 통화 표시가 있을 때 B1셀에 =left(a1,1)이라고 하면₩가 구해지는 것이 아니라 100에서 왼쪽 한 글자인 1이 구해집니다. 다른 것도 마찬가지입니다.B1셀의 채우기 핸들을 더블 클릭해서 B6셀까지 수식을 복사하면 원하는 것과 는 달리 모두 1이 구해집니다. 2. VBA로 해결 - 성공 가. 구문 속성이므로 Range.NumberFormat 또는 Range.NumberFormatLocal이라고,Range 다음에 .(점)을 찍고 써서 표시형식을 알아내는데,숫자뿐만 아니라 통화, 시간 등 모든 표시형식이 가능하며, NumberFormat과 NumberFormatLocal의 차이는 Local은 사용자의 언어형식으로 표시한다는 것입니다. 나. Sub 프로시저 ..

EXCEL - VBA 2024.07.08

엑셀과 VBA의 Offset 함수가 다르다. (3)

(3) 떨어진 셀부터 일정 영역 지정하기엑셀에서는 Offset 함수에 height와 width를 지정할 수 있는 인수가 있지만,VBA에는 없으므로 Resize 속성(Property)을 이용해야 합니다. (가) 구문expression.Resize (RowSize, ColumnSize)입니다.여기서 expression에는 범위(셀)가 올 수 있으며RowSize와 ColumnSize로 높이와 너비를 지정하는 것입니다. Offset 함수와 구별해야 할 것은 RowOffset이나 ColumnOffset의 경우는 떨어진 거리이므로 0부터 시작하는데,RowSize와 ColumnSize는 크기이므로 1부터 시작한다는 것입니다. (나) 일정 영역 지정하기 아래와 같이 코드를 작성하고 실행하면Sub resize1() ..

EXCEL - VBA 2024.06.26

엑셀과 VBA의 Offset 함수가 다르다. (2)

나. VBA의 Offset 함수   (1) 떨어진 셀 지정 VBA를 실행하기 위해서는먼저 개발도구 탭이 활성화되어 있어야 합니다. ※ 파일 - 옵션을 누른 후 Excel 옵션 창의 리본 사용자 지정에서 오른쪽 아래의 개발 도구 탭 왼쪽에 체크 (가) 코드 작성떨어진 셀을 지정하기 위해서는① 개발도구 - Visual Basic을 눌러 Visual Basic Editor를 연 다음삽입 메뉴에서 모듈을 눌러 모듈을 추가하고, ② 오른쪽 에디터 창에  sub offset1이라고 입력하고 엔터키를 누릅니다.그러면 아래와 같이 괄호가 추가되고, 한 줄 다음에 End Sub로 마무리됩니다. ③ 이제 코드를 작성하고,Sub offset1() Range("a1") = Range("c9").Offset(3, 1)En..

EXCEL - VBA 2024.06.25

데이터(레코드)별로 양식 시트에 기록하기

1. 문제  아래와 같은 데이터를 레코드(행)별로 시트를 추가해서 아래 양식 데이터에 기록하려고 합니다. 2. 관련 메서드 및 속성 등시트를 레코드 개수에 따라 추가하거나 삭제해야 하고,행별로 반복처리해야 합니다. 가. 시트 추가구문 : Sheets.Add (Before, After, Count, Type)인수명필수/선택 데이터형식설명BeforeOptionalVariantAn object that specifies the sheet before which the new sheet is added.AfterOptionalVariantAn object that specifies the sheet after which the new sheet is added.CountOptionalVariantThe numb..

EXCEL - VBA 2024.06.05

병합된 셀의 홈(A1) 셀 알아내기(2) - 홈 셀 알아내기

1편을 여기서 확인하세요. 나. '홈 셀'(1) 홈 셀의 의미홈 셀을 병합된 셀 기준으로 보면 A1셀, 다시 말해 1행 1열이 됩니다. 따라서, Range("A1")이라고 해도 되고, Cells(1,1)이라고 해도 됩니다. (2) 함수 만들기 반복된 동작은 Sub 프로시저로 처리하는데,처리한 후 값을 반환받는 함수를 만들려면 Function 프로시저를 사용해야 합니다.  ① 위 파일을 연 다음개발 도구 - Visual Basic을 누릅니다. 그리고, 맨 아래에 Function이라고 쓰고, 함수명을 입력하는데,GetHomeCell이라고 하겠습니다.그리고 셀 주소를 인수로 받아야 하므로 인수명을 rng로 하고 형식을 Range로 지정합니다.그러면 아래와 같이 됩니다.Function GetHomeCell(rn..

EXCEL - VBA 2024.05.30

병합된 셀의 홈(A1) 셀 알아내기(1) - 셀 병합 관련 메소드 및 속성

1. 문제병합된 셀의 첫셀을 홈 또는 A1셀이라고 합니다. 엑셀 시트에서 A1셀이 홈이지만,병합된 셀에서도 왼쪽 위 모서리가 홈이 되는 것입니다. 아래와 같은 경우 B3셀에서 B8셀까지 병합되어 있는데, 숫자는 B3셀에만 들어가 있고, B3셀이 홈 셀입니다. 2. VBA로 홈 셀 알아내기가. 병합된 셀과 관련된 메서드와 속성(1) Merge(가) 구문범위.Merge지정된 범위를 병합하는 것입니다. (나) 적용개발도구 - Visual Basic을 누른 다음삽입 모듈을 하면왼쪽 엑셀 파일명 아래에 모듈 > Module1이 생기는데,오른쪽 코드 창에 sub merge 하고 엔터 키라고 칩니다.그러면 아래와 같이 Sub 프로시저가 만들어집니다. 그 안에 Range("E3:E8").merge 라고 입력하고Sub ..

EXCEL - VBA 2024.05.29

차트의 마커(표식) 크기와 색상 변경하기

1. 문제아래와 같이 차트에 동그라미 표시가 있는데 이것들의 크기와 색상을 변경하는 방법을 알아보고자 합니다.  2. 해결 과정가. 매크로 기록개발 도구 탭에서 매크로 기록 명령을 누릅니다. 그러면 매크로 기록 창이 표시되면서 매크로 이름과 저장 위치 등이 표시되는데, 바꾸려면 바꿔도 됩니다.. 그냥 확인 버튼을 누르고 넘어가겠습니다. 이게 마커(표식) 중 하나에서 마우스 오른쪽 버튼을 누른 후 데이터 레이블 추가에 커서를 갖다 댄 다음 데이터 레이블 추가를 클릭합니다. 그리고, 위 리본 메뉴를 보면 매크로 기록이 기록 중지로 변경되어 있는데, 기록 중지를 누릅니다. 이제 매크로의 내용을 살펴봐야 하므로 개발 도구 탭의 Visual Basic 명령을 눌러 VB 에디터를 실행합니다. 왼쪽에 프로젝트 창이 ..

EXCEL - VBA 2024.05.28
반응형