반응형

Set 9

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

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

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

다. 연결키를 가져오는 매크로 작성(1) 매크로 작성 명단 시트에 만들어둔 연결키 중 B열의 번호를 하나씩 고지서 시트의 L6셀에 넘겨주면 됩니다. 코드를 작성하기 위해 개발 도구 - Visual Basic을 클릭합니다. 만약 개발 도구 탭이 보이지 않는다면 파일 - 옵션 - 리본 사용자 지정에서 개발 도구 탭에 체크하고 확인 버튼을 눌러야 합니다. => https://lsw3210.tistory.com/142#google_vignette 그리고, 삽입 - 모듈을 클릭해서 Module1을 만든 다음 오른쪽 에디터 창에 아래 내용을 복사해서 붙여 넣습니다.Sub 고지서개별인쇄() Dim sht1 As Worksheet, sht2 As Worksheet Dim i As Integer, endRow As In..

EXCEL - VBA 2024.03.28

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

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

EXCEL - VBA 2023.11.15

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

위와 같이 도면별 위, 경도(통상적인 위, 경도와 다르지만 그렇게 표시합니다)가 있을 때 도면에 표시하는 방법을 알아보고자 합니다. 1. 셀의 위치 알아내기 먼저 위치와 관련한 셀의 속성을 알아야 합니다. 셀은 왼쪽 위를 기준으로 열 너비와 행 높이를 가지고 있습니다. 가. 셀의 왼쪽, 위 구하기 ① 셀의 왼쪽 위치 구하기 개발도구 - Visual Basic을 실행하고, 삽입 - 모듈 메뉴를 누르면 모듈과 Module1이 추가됩니다. 오른쪽 편집기 창에 sub cellinfo라고 입력하고 엔터 키를 누릅니다. 그리고, 왼쪽 위치는 셀 주소를 쓴 후 .left라고 하면 됩니다. 다시 말해 range("a1").left 인데 화면에서 확인해야 하므로 debug.print를 앞에 추가하면 됩니다. debug...

EXCEL - VBA 2023.11.13

매크로 - 범위로 처리하기

그동안은 매크로 작성 시 범위로 처리하는 것만 알고 있었는데, 최근에 유튜브를 보니 셀마다 처리하는 것이 아니라 배열에서 처리한 후 한꺼번에 범위에 일괄로 데이터를 입력하는 것이 훨씬 빠르다는 내용을 보고 충격을 받아 정리하고자 합니다. 먼저 범위로 처리하는 방법을 알아보겠습니다. 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

날짜 변환 - 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의 속성 알아보기

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

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

아래 글에서 정해진 범위를 복사해서 정해진 영역에 붙여 넣는 매크로를 다뤄봤는데, https://lsw3210.tistory.com/m/163 아래와 같이 A1셀부터 A5셀까지 데이터가 있는데, B1셀에 붙여 넣으려면 위 글에 의한 방식으로 하면 Range("A1:A5").Copy Destination:=Range("B1")이라고 모듈 1에 작성하면 됩니다. 모듈을 작성하려면 개발도구 - Visual Basic 명령을 누른 다음 Visual Basic Editor에서 삽입 - 모듈 메뉴를 눌러 모듈을 추가한 다음 코드 창에 아래와 같이 입력하고 Sub 복붙1() Range("A1:A5").Copy Destination:=Range("B1") End Sub 복붙1이라는 sub 프로시저 안에 커서를 넣은 다..

EXCEL - VBA 2022.10.20
반응형