반응형

매크로 17

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

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

EXCEL - VBA 2024.05.28

조건부 서식을 인쇄할 때 제거하는 방법

1. 문제아래와 같이 셀을 클릭했을 때 수평과 수직으로 표시가 되는데, 인쇄할 때 제외하는 방법을 알아보고자 합니다.  먼저 범위 외 셀을 클릭하면 조건부 서식이 적용되지 않으므로 범위 외 셀을 클릭하고 인쇄하는 방법이 있습니다.그것이 아니라 자동으로 조건부 서식이 제거되고 인쇄되는 것을 구현하려고 합니다.두 가지가 있는데 하나씩 다뤄보겠습니다. 2. 해법 1가. 실행 방법'조건부 서식을 지우기' 매크로와 '조건부 서식 원래대로' 매크로를 만든 다음 인쇄 버튼 클릭 시 '조건부 서식을 지우기'에 인쇄 부분이 있으므로 두 개를 연달아서 실행하면 됩니다. 나. 코드코드는 아래와 같습니다.Option ExplicitDim sht As WorksheetSub 조건부서식지우기() Dim PrintAr..

EXCEL - VBA 2024.04.27

한글이 아닌 엑셀로 하는 메일 머지(3)

문제는 여기를 참고 바랍니다. 3. 해법 2 : 이름뿐만 아니라 나머지 내용까지 매크로로 처리하는 방법 가. 논리이번에는 셀 값을 Vlookup함수가 아니라 다른 시트의 셀 주소로 연결하는 방법과 같은 연번에서 이름이 반복될 경우 고지서에 한꺼번에 인쇄하는 매크로를 만들어 보겠습니다. (1) 셀 값을 다른 시트의 셀 주소로 연결하기 예를 들어 고지서 시트의 회사명(성명)인 D6셀에는 명단 시트의 E열의 값이 입력되어야 합니다. 이 때는 연결키가 없어도 됩니다.그리고, 토지 소재지인 시군, 읍면, 리동은 명단 시트의 G, H, i 열과 연결되면 됩니다. (2) 같은 연번에서 이름이 반복될 경우 인쇄하기 "같은 연번"이란 병합된 셀로서 처리 줄과 윗 줄의 A1셀이 동일한 경우이고, "이름이 반복된다"는 것은..

EXCEL - VBA 2024.03.29

문자열로 된 수식의 값 계산하기

1. 문제 아래와 같이 산출식이 *, +, 괄호 등으로 연결되어 표시되어 있을 경우 산출식의 결과 값을 F열, G열과 H열에 모두 표시하려고 하면 어떻게 해야 할까요? 2. Evaluate 함수 가. Evaluate Evaluate 함수는 원래 VBA에 있는 함수인데 이름 관리자를 이용해서 사용할 수 있습니다. Lambda와 비슷합니다. Evaluate는 수식을 계산해서 결괏값을 돌려주는 역할을 합니다. 개발 도구 탭에서 Visual Basic 명령을 눌러 VB 에디터로 들어간 후 직접 실행창에 ?evaluate("2*3")이라고 입력하고 엔터 키를 누르면 2*3의 결괏값인 6이 반환됩니다. 나. 이름 정의 F5셀을 선택한 다음 수식 탭의 정의된 이름 그룹에서 이름 정의를 클릭하거나, 이름 관리자를 열고..

Excel 2024.03.18

피벗 테이블 새로 고침(1)

1. 피벗 테이블 만들기 아래와 같이 일자별 지점별로 데이터를 집계한다고 할 경우 삽입 - 피벗 테이블을 누르면 범위가 자동으로 A1부터 C6셀까지 지정되고, 배치할 위치가 새 워크시트로 지정되므로 확인 버튼을 누릅니다. 그러면, 피벗 테이블 필드 창이 배치되는데, 일자와 지점명을 누르면 모두 행 영역에 배치되는데 지점명을 끌어서 열 영역으로 옮기고, 매출 필드를 클릭하면 숫자이므로 자동으로 값 영역으로 배치되고 합계가 표시됩니다. 만들어진 피벗 테이블의 모양은 아래와 같습니다. 행 레이블에 날짜, 열 레이블에 지점명, 그리고 가운데 값 영역에 일자별, 지점별 매출이 표시되고 있고, 맨 오른쪽에는 날짜별 총합계가 표시되고, 맨 아래 줄에는 총합계로 지점별 합계와 총합계가 표시되고 있습니다. 2. 새로 고..

EXCEL - VBA 2023.06.12

두 문장의 같은 단어 비교(2) - 매크로 실행, 디버그

5. 매크로 실행 가. 단추 누르기 (1) '문장 비교' 단추 누르기 '문장 비교' 단추를 누르면 첫 줄에서는 '우리의', '자유와', '국민'이라는 글자가 빨간 색으로 바뀌고, 둘째 줄에서는 '우리의', '자유', '국민으로서,'가 빨간 색으로 바뀝니다. 포함관계를 따지기 때문에 '국민'과 '국민으로서'는 '국민'이 같기 때문에, '자유와'와 '자유'는 '자유'가 같기 때문에 빨간 색이 됐고, '우리의'는 첫째 줄과 둘째 줄이 똑 같아서 빨간 색이 됐습니다. (2) '초기화' 단추 누르기 초기화 버튼을 누르면 빨간 글자가 모두 검은 색 글자로 바뀝니다. 6. 디버깅 가. 중단점 설정 len1 줄 왼쪽 기둥(Side Bar)을 클릭해서 중단점을 설정합니다. 그러면 실행 아이콘(▶)을 눌렀을 때 중단점이 ..

EXCEL - VBA 2023.05.09

DateAdd함수 - 지정된 기간만큼 떨어진 날짜를 반환(2) - 값 자동 변경

1편에서 간격이 변경되더라도 매크로로 구한 DateAdd함수의 값이 바뀌지 않는다는 문제점을 지적했는데 이 것을 해결하는 방법을 알아보겠습니다. 1. Sheet1에 매크로 작성 일반적으로 매크로는 엑셀 파일 내에서 공통적으로 사용할 수 있도록 모듈을 추가한 다음 그곳에서 작성하는데 이렇게 하면 워크시트의 내용이 바뀌더라도 영향이 없습니다. 따라서, 탐색기 창에서 Sheet1을 더블 클릭한 후 오른쪽 에디터에서 일반을 누른 후 Worksheet객체를 선택하고, 오른쪽에서 Change 이벤트를 선택하면 자동으로 Private Sub Worksheet_Change 프러시저가 생갑니다 Worksheet_Change 프로시저이므로 워크시트 셀의 내용이 변할 때 이뤄지는 동작을 그 안에 기술하는 것입니다. 그 아래..

EXCEL - VBA 2023.04.19

일정한 간격으로 된 값 합계 구하기 - 매크로

사용자 정의 함수로 작성하는 것이 바람직하지만 굳이 만든다고 하면 매크로, Sub 프로시저로도 만들 수 있습니다. 사용자 정의 함수와 매크로는 모두 VBA를 이용하지만 아래와 같이 다른 점이 있습니다. 사용자 정의 함수 매크로 사용자 정의 함수를 실행하면 VBA에서 실행한 후 값을 반환합니다. 매크로를 실행하면 VBA에서 실행한 후 워크시트 함수를 이용한 수식을 반환합니다. =sum_interval(D4:N4,4) =SUM(IF(MOD(COLUMN($D$3:$O$3),2)=0,$D$3:$O$3)) 함수의 인수를 사용자 정의 함수에 입력함 함수의 인수를 매크로 실행시 입력 받음 1. 논리 범위와 간격을 입력받는 창을 실행하고, 입력 받은 값을 기준으로 배열 수식을 만들어 반환한다. Sub make_form..

EXCEL - VBA 2023.03.21

엑셀 VBA에서 셀 또는 범위 지정하기(1) - Range

엑셀은 셀은 기준으로 작업을 하게 됩니다. A1셀에 24를 입력하거나, B1셀에 A1에 2를 곱한 값을 입력하거나 모두 셀을 기준으로 작업을 하게 됩니다. 1. 준비 사항 새 통합 문서를 연 다음 개발도구 - Visual Basic 명령을 눌러 Visual Basic Editor를 연 다음 삽입 - 모듈 메뉴 또는 삽입 콤보 박스를 누른 다음 모듈을 클릭하여 모듈을 추가하면 그 아래 Module1이 있고, 오른쪽을 보면 빈 코드 창이 열립니다. 오른쪽 코드 창에 sub 범위지정까지 입력하면 그다음 괄호와 End Sub는 자동으로 입력됩니다. 단일 셀 또는 여러 셀을 다루는 방법을 알라보는데, 여러 셀을 연속되거나 연속되지 않을 경우를 나눠서 다뤄보겠습니다. 2. 단일 셀 지정하기 셀을 지정할 때는 Ran..

EXCEL - VBA 2022.10.25

범위 등을 입력받는 Application.InputBox 메소드(2)

1편에서 범위를 다뤘는데, Microsoft 도움말에 있는 예제를 하나 더 알아보겠습니다. 1. 3개 셀 선택 Sub Cbm_Value_Select() 'Set up the variables. Dim rng As Range 'Use the InputBox dialog to set the range for MyFunction, with some simple error handling. Set rng = Application.InputBox("Range:", Type:=8) If rng.Cells.Count 3 Then MsgBox "Length, width and height are needed -" & _ vbLf & "please select three cells!" Exit Sub End If 'Ca..

EXCEL - VBA 2022.10.21
반응형