반응형

EXCEL - VBA 103

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

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

EXCEL - VBA 2024.04.27

VBA로 ColorIndex에 대한 색 표시하기

VBA는 Visual Basic for Application의 약자로, 엑셀, 워드, 파워포인트 등 응용프로그램을 위한 비주얼 베이직이란 의미로, 비주얼 베이직을 이용해서 응용프로그램을 쉽고, 빠르게 사용하는 것입니다. 개발 도구 탭에서 Visual Basic을 누르고, 비주얼 베이직 에디터에서 삽입 - 모듈을 눌러 Module1을 삽입을 누르면 아래와 같이 왼쪽 통합 문서에 Module1이 추가되고, 오른쪽에는 빈 코드 창이 열립니다. 이때 코드 창에 아래 코드를 복사해서 붙여 넣고, Sub 색표시() Dim i As Integer For i = 1 To 128 Range("a" & i) = i Range("b" & i).Interior.ColorIndex = i Next End Sub F5키 또는 세..

EXCEL - VBA 2024.04.12

한글이 아닌 엑셀로 하는 메일 머지(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

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

1. 문제고지서 서식은 한 장이고, 인쇄할 내용을 아래 명단 시트에서 순서대로 찾아서 인쇄하고자 할 때 먼저 생각나는 것이 워드나 한글의 메일 머지 기능입니다. 그러나, 여기서는 엑셀의 매크로로 구현하고자 하는 것입니다. 인쇄할 내용을 채우는 방법이 두 가지가 있습니다. 이름만 입력하면 나머지 내용은 수식으로 가져오는 방법, 이름뿐만 아니라 나머지 내용까지 매크로로 처리하는 방법인데, 한 가지씩 알아보겠습니다. 2. 해법 1 : 이름만 입력하고 나머지는 수식으로 가져오는 방법 가. 연번별로 이름에 순번 부여하기(1) 로직 연번을 기준으로 인쇄하는데, 연번에 동일인이 있다면 같은 고지서에 인쇄하고, 다른 사람이라면 별도의 고지서에 인쇄해야 합니다. 이를 위해서는 고지서 발행 기준인 순번과 동일인여부 순번 ..

EXCEL - VBA 2024.03.27

ChatGPT를 이용해서 VBA 코드 짜기(2)

1편은 여기를 클릭하면 됩니다. (3) 텍스트 파일에 특정 단어를 연결해서 표시하는 VBA 코드 검색 "텍스트 파일에 특정 단어를 연결해서 표시하는 VBA 코드"라고 했더니 아래와 같이 결과가 나왔는데, 줄별로 연결하는 부분이 빠져 있습니다. 이 때는 당신이라고 표시된 아래의 대화 내용에 커서를 갖다 대면 없던 연필이 표시되므로 연필을 클릭합니다. 그리고, 아래와 같이 " 텍스트 파일에 특정 단어를 줄별로 연결하는 VBA 코드"라고 수정한 후 '저장 및 제출' 버튼을 누릅니다. 그러면 줄별로 단어를 연결하는 코드만 보여줘야 하는데, 어제 학습을 해서 그런건지, 아니면 이전 질문과 연결해서 답을 만든 것인지 폴더를 선택할 수 있는 창을 여는 코드와 특정 단어를 연결하는 코드가 함께 결과로 나옵니다. Cop..

EXCEL - VBA 2024.03.21

ChatGPT를 이용해서 VBA 코드 짜기(1)

1. 문제 텍스트 파일이 여러 개 있는데, 기존 내용에 텍스트 파일명에서 네 번째부터 10번째까지의 텍스트를 왼쪽에 추가한 후 모든 텍스트 파일을 연결해서 하나의 파일로 만들려고 합니다. 텍스트 파일은 2개만 해보겠습니다. 2. 해결 순서 ① 적용 순서는 폴더를 선택하고, ② 폴더 내 텍스트 파일을 열어서 파일명의 네 번째부터 10번째까지의 텍스트를 발췌한 후 줄 별로 왼쪽에 추가합니다. ③ 텍스트 파일을 붙여서 하나의 파일로 만듭니다. 3. ChatGPT 로그인 또는 가입하기 ChatGTP 사이트( https://chat.openai.com/ )를 연 후 로그인을 합니다. 만약 가입이 안되어 있다면 가입하기 버튼을 누르고, 계정 만들기 창에서 여러 가지 방법 중 원하는 것을 선택합니다. 아래 Googl..

EXCEL - VBA 2024.03.20

수식에 한꺼번에 Round 씌우기

1. 문제아래와 같이 B열의 숫자를 C열의 숫자로 나누면 값에 따라 소수점이하 자릿수가 다르게 표시됩니다. 이와 같은 경우 일정하게 소수점이하 둘째 자리로 통일하고자 할 경우 사용할 수 있는 매크로에 대해 설명하려고 합니다. 2. 해법 찾기가. 표시 형식 지정반올림하는 것이라면 D열을 선택한 다음 셀 서식 - 표시형식에서 숫자 범주를 선택한 후 오른쪽의 소수 자릿수에서 0을 2로 수정하고 확인 버튼을 누르거나 엔터 키를 누르면 됩니다. 아래와 같이 소수점이하 자릿수가 2로 통일되면서 반올림됩니다. 4행의 경우 원래 값은 0.625인데, 반올림돼서 0.63으로 표시되고, 3행의 경우 원래 값은 0.714286인데, 반올림돼서 0.71로 표시됩니다. 그러나, 이럴 경우 문제점은 더하기 등을 할 경우 소수점 ..

EXCEL - VBA 2024.03.13

두 개의 표를 날짜에 따라 맞춰서 표시하기(2) - Dictionary

1. Dictionary의 개념Dictionary는 키와 값이 한 쌍으로 된 구조로 Json파일의 Key, Value와 비슷합니다. 그런데 Json 파일을 다룰 때는 주로 Value 관점에서 접근했는데, Dictionary는 그동안 사용한 경험으로는 고윳값을 만들기 위해 Key 위주로 사용합니다. Dictionary의 가장 큰 특징은 Key가 하나뿐이 존재하지 않는다는 것으로, 중복된 데이터를 거르는데 많이 사용하고, 속도도 매우 빠릅니다. 2. Dictionary 선언 방식에 따른 비교VBA에서 Dictionary를 사용할 때는 참조를 지정해서 이용하는 방식과 참조를 지정하지 않고 VBA의 Object 라이브러리를 이용하는 두 가지 방법이 있으며, 추천은 첫 번째 도구 - 참조 방식인데 이것의 단점은 ..

EXCEL - VBA 2024.01.25

두 개의 표를 날짜에 따라 맞춰서 표시하기(1) - 개요

1. 문제 두 개의 표가 있는데 날짜의 개수가 다릅니다. 이 경우 날짜별로 짝을 맞춰서 오른쪽과 같이 표현하려고 합니다. 다시 말해, 왼쪽에는 1/11이 8개 있고, 오른쪽에는 1/11이 5개이므로 오른쪽 표에서 3개는 공란이 되어야 합니다. 2. 해결 방법 엑셀 함수로 하기에는 너무 어려울 듯합니다. 날짜별로 개수를 세서 한쪽이 부족할 때는 공란으로 채워야 하는데, 날짜도 무작위이고, 개수도 달라질 수 있으므로 VBA로 작성하는 것이 답일 듯합니다. 가. 날짜를 Dictionary에 저장 날짜를 배열에 담을 건지 여부를 판단해야 하는데, 고윳값을 저장하는 것은 Dictionary에 담는 것이 좋습니다. 나. 날짜 데이터 정렬 위 예제에서는 날짜를 정렬할 필요는 없지만, 어떤 경우가 생길지 모르니 날짜를..

EXCEL - VBA 2024.01.23
반응형