'엑셀 컴퓨터 인터넷/엑셀 VBA' 카테고리의 글 목록
본문 바로가기

엑셀 컴퓨터 인터넷/엑셀 VBA43

VBA 오류 처리 방법 및 디버깅(효율적인 오류처리와 오류제외) VBA로 프로그래밍을 하다보면 코드가 원하는 대로 작동하지 않을 때가 있습니다. 이럴 때 효과적인 디버깅과 오류 처리 기술을 사용하여 문제를 해결할 수 있습니다. 이번 포스트에서는 VBA 디버깅과 오류 처리에 대해 알아보겠습니다. 1. 디버깅 도구 활용하기 VBA는 내장된 디버깅 도구를 제공합니다. 주요 디버깅 기능 중 하나는 "중단점 설정"입니다. 코드의 특정 부분에 중단점을 설정하여 해당 부분에서 코드 실행을 일시 중지시킬 수 있습니다. 이를 통해 코드가 어떻게 동작하는지 실시간으로 확인할 수 있습니다. Sub ExampleDebugging() Dim x As Integer x = 10 ' 중단점 설정 Debug.Print "현재 x의 값은: " & x ' 중단점을 여기에 설정합니다. x = x * .. 2024. 2. 15.
엑셀 VBA(매크로) - 셀 안의 공백 제거, 셀 내의 모든 공백 제거 셀 안에 공백이 있을경우 데이터가 다르게 인식되어 Vlookup이나 sumif 등이 제대로 작동되지 않을 때가 있습니다. 셀이 몇 개 되지 않으면 일일이 수작업으로 공백을 없애도 되지만, 좀 더 복잡한 경우는 VBA(매크로)를 사용하는 것이 효율적입니다. 가령, 왼쪽 또는 오른쪽의 공백만 지우고 싶을때, 아니면 양쪽 공백을 모두 지우고 싶을때 등 다양한 상황에서 좀 더 쉽고 빠르게 작업을 할 수 있습니다. 우선, VBA(매크로)를 처음 하시는 분들은 아래 링크를 참고해 주세요. 2020.10.25 - [IT와 친해지기/엑셀 VBA 자료실] - 엑셀VBA(매크로) - 시작하기 엑셀VBA(매크로) - 시작하기 직장인들은 대부분 엑셀에 익숙하실 겁니다. 하지만, 엑셀을 잘 활용하시는 분들은 아마 드물겁니다. .. 2021. 7. 31.
엑셀 - 셀 병합 단축키 쉽게, 빠르게 만들기 엑셀을 이용해서 작업을 하다보면 셀을 병합해야 할 일이 많습니다. 사실, 셀을 병합할 수 있는 단축키는 아래와 같습니다. 하지만 너무나 복잡합니다. Alt + H + M + C 1. Alt + H 키를 누릅니다. 2. M을 누릅니다. 3. C를 누릅니다. 좀 더 쉽게 셀병합 단축키를 만드는 방법을 알려드리겠습니다. 우선, 위 그림에서 빨간색 네모박스로 표시된 버튼을 눌러줍니다. '매크로 기록' 대화창이 나오면, '매크로 이름'은 대충 아무거나 적어 줍니다. '바로 가기 키(K)'가 중요한데, 사용하기 편한 키를 아무거나 입력합니다. 그리고 '확인' 버튼을 누릅니다. 아무셀이나 선택한 다음에 "병합하고 가운데 맞춤" 버튼을 눌러서 병합해 줍니다. 위 그림에 빨간색 박스로 표시된 부분을 눌러줍니다. 이제 모.. 2021. 7. 27.
엑셀 - 특정 글자가 포함된 셀 개수 구하기 엑셀을 하다보면 특정글자가 포함된 셀의 개수를 구해야 할때가 있습니다. 오히려 VBA나 파이썬을 이용하면 더 쉬울 것 같은데, 엑셀에도 과연 이런 기능이 있을까 궁금해서 찾아봤습니다. 다행히 "특정글자가 포함된 셀을 찾는 방법"이 있더라구요. 예제를 통해서 방법을 알아 보도록 하겠습니다. 우선 임의로 여러개의 셀에 숫자 및 문자를 위의 그림과 같이 입력해 줍니다. 저는 '45'가 포함된 셀의 개수를 찾고 싶어요. 《'Countif' 함수를 사용하면 될 것 같은데, 정확한 수식이 생각이 안나네요....》 라고 아마 대부분 얘기 하실겁니다.(최소한 저는 그랬어요.) =COUNTIF(Range,"*45*") 이런 식으로 수식을 적어 주면 됩니다. 결과가 제대로 나왔네요. 그럼 찾을값을 수식으로 넣고 싶을때는 .. 2021. 7. 26.
엑셀 - 쉽게 다중 종속 (소분류) 드롭다운 목록 만들기 (Indirect 함수 사용) https://cafe.naver.com/111coding/44?tc=shared_link 파이썬을 10분만에 배우는 방법프로그램밍 언어를 공부하는 것은 외국어를 배우는 것과 상당히 흡사합니다. 우리는 대체로 초등학교 3년, 중학교 3년, 고등학교 3년 최소 9년은 영어를 배웁니다. 하지만,...cafe.naver.com 엑셀에서 목록을 드롭다운 형식으로 만들면 사용하기가 편리합니다. 여러개의 연관된 목록이 있으면 이중, 삼중 등 여러개의 종속된 드롭다운도 만들 수 있습니다. 엑셀의 유효성검사와 이름관리자를 사용해서 간단하게 만들 수 있습니다. 엑셀에서 목록을 임의로 만들었습니다. 각 종류별로 그룹을 지어 놓았습니다. 바나나, 사과, 포드는 과일이고 콜라, 사이다는 음료수.. 이렇게 구분이 되어 있다고 .. 2021. 6. 18.
엑셀 - 여러 시트에서 찾기 및 바꾸기 방법 시트가 여러개인 경우 특정 단어를 찾기가 힘듭니다. 이럴때 찾기 옵션을 선택하면 간단하고 빠르게 원하는 단어의 위치를 찾을 수 있습니다. "Ctrl + F" 를 눌러서 '찾기 및 바꾸기' 대화창을 열어 줍니다. "찾기 및 바꾸기" 대화창에서 '옵션(T)>>'를 클릭합니다. "범위(H)" 에서 "시트"로 기본설정이 되어 있는 부분을 "통합 문서"로 바꿔 줍니다. "모두찾기" 또는 "다음찾기"를 누르면 해당 항목이 찾아 집니다. 2021. 5. 24.
엑셀 VBA(매크로) - 엑셀 외부링크 자동 제거 방법 https://cafe.naver.com/111coding/44?tc=shared_link 파이썬을 10분만에 배우는 방법프로그램밍 언어를 공부하는 것은 외국어를 배우는 것과 상당히 흡사합니다. 우리는 대체로 초등학교 3년, 중학교 3년, 고등학교 3년 최소 9년은 영어를 배웁니다. 하지만,...cafe.naver.comVBA를 이용해서 자동으로 외부링크를 삭제할 수 있습니다. 엑셀을 사용하다 보면 데이터를 다른 파일에서 가져오는 경우가 있습니다. 메뉴에서 "데이터>>연결편집" 으로 가서 "연결 끊기(B)"를 클릭해서 연결을 제거할 수도 있지만, 연결 끊기가 안되거나 자동으로 연결을 제거해야 할 경우가 있습니다. VBA를 사용해서 외부연결을 끊는 방법입니다. 개발도구 메뉴에서 Visual Basic 메뉴.. 2021. 5. 4.
엑셀 VBA(매크로) - 엑셀을 이용하여 Outlook 메일 쉽게 자동으로 보내는 방법 엑셀 VBA(매크로)를 이용해서 자동으로 Outllook 메일을 보내는 방법이 있습니다. 우선, VBA(매크로)를 처음 하시는 분들은 아래 링크를 참고해 주세요. 2020.10.25 - [IT와 친해지기/엑셀 VBA 자료실] - 엑셀VBA(매크로) - 시작하기 엑셀VBA(매크로) - 시작하기 직장인들은 대부분 엑셀에 익숙하실 겁니다. 하지만, 엑셀을 잘 활용하시는 분들은 아마 드물겁니다. 프로그램을 잘 하시는 분들은 파이썬이나 C언어, 자바 등을 가지고 필요한 도구들을 만들어 dotsnlines.tistory.com 처음 하시더라도 차근차근 따라하시면 무리없이 쉽게 하실 수 있습니다. 엑셀파일에 수신사, 참조, 제목, 메일내용 등을 대충 설정해 줍니다. Outlook App을 사용하기 위해서 간단한 설정.. 2021. 4. 15.
엑셀 - 카메라 기능(Table 캡쳐, 참조) 혹시 엑셀에서 카메라 기능을 아시나요? 엑셀은 행과 열로 구성된 셀로 이루어져 있습니다. 그래서 여러 Table(표)를 한 Sheet에 표현하기에 한계가 있습니다. 이럴때 마치 캡쳐 하듯이 다른 Table을 참조해서 그림처럼 나타내는 방법이 있습니다. 바로, 카메라 기능을 이용하는 것입니다. 카메라 기능을 이용하기 위해서 우선 '카메라 버튼'을 '빠른 실행 도구 모음'에 표시해 보겠습니다. 엑셀의 상단 왼쪽 메뉴에서 '파일'을 클릭합니다. 왼쪽 메뉴 중 맨 아래에 '옵션'을 클릭합니다. 'Excel 옵션'에서 '빠른 실행 도구 모음'을 클릭하고, '리본 메뉴에 없는 명령'을 선택한 후 '카메라'를 클릭하여 추가 합니다. 확인 버튼을 눌러서 'Excel 옵션' 창을 닫아 줍니다. 엑셀 메뉴 상단에 카메라 .. 2021. 3. 11.
엑셀 VBA(매크로) - 글자(Font) 크기, 색깔, 스타일, 글꼴 VBA를 이용해서 자동으로 글자(Font) 크기, 색깔, 스타일, 글꼴 등을 변경할 수 있습니다. 자동으로 문서를 만들기 위해 VBA를 사용하기에, 글자 정렬과 같은 세심한 부분까지 신경을 쓰면 더욱더 깔끔한 문서를 만들 수 있을 것 같습니다. 예제를 한번 다뤄보도록 하겠습니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. 코드창에 아래와 같이 코드를 입력합니다. ' Font.Name="견고딕" ' 이런식으로 입력하면 글꼴이 변경됩니다. 실행을 하면 엑셀 시트에 아래와 같이 표시됩니다. 폰트 사이즈를 변경하는 방법은 아래와 같습니다. 'Font.Size = 14' 이런 방법으로 변경하면 됩니다. 엑셀시트에 실행을 .. 2021. 3. 10.
엑셀 VBA(매크로) - 글자 정렬(가운데, 왼쪽, 오른쪽, 위쪽, 아래쪽 맞춤) VBA를 이용해서 자동으로 글자 정렬을 할 수 있습니다. 자동으로 문서를 만들기 위해 VBA를 사용하기에, 글자 정렬과 같은 세심한 부분까지 신경을 쓰면 더욱더 깔끔한 문서를 만들 수 있을 것 같습니다. 예제를 한번 다뤄보도록 하겠습니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. Code 창에 아래와 같이 입력해 봅니다. 'VerticalAlignment = xlTop' 이 부분이 글자를 정렬하는 코드입니다. 실행을 하면 엑셀 시트에 아래와 같이 표시가 된 것을 확인할 수 있습니다. 이번에는 글자가 수직을 기준으로 중간에 위치하게 해 보도록 하겠습니다. 아래로 위치할때도 같은 방법으로 하시면 됩니다. 가로로 정.. 2021. 3. 9.
엑셀 VBA(매크로) - Select Case 조건문 VA 조건문에는 Select Case 조건문이 있습니다. Select Case 조건문은 여러 조건에서 각각 다른 결과치를 처리할 때 편리합니다. 다음은 Select Case 조건문의 기본 구조 입니다. Select Case 판단할 조건의 대상 Case 조건 A 처리 A Case 조건 B 처리 B Case 조건 C 처리 C Case Else 처리 X End Select 예제를 한번 다뤄보도록 하겠습니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. Inputbox에서 받은 값을 'score'라는 변수에 저장합니다. 각 case 별로 점수에 따라 "A" ~ "F" 까지 점수의 범위를 지정합니다. 위의 그림과 같이 실행.. 2021. 1. 14.
엑셀 VBA(매크로) - For ~Next 순환문 (반복문) For~Next 순환문(반복문)은 특정 변수명이 초기값부터 종료값까지 특정 수만큼 증가하면서 처리할 작업을 반복 실행합니다. for 변수명 = 초기값 to 종료값 step 증가수 처리 next 변수명step은 생략을 해도되며, 생략하면 1씩 증가 합니다. 예제를 한번 다뤄보도록 하겠습니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. 위와 같이 코드를 입력합니다. Cell의 1행 2열부터 1000행까지 3숫자를 입력해 보는 코드입니다. "F5"를 눌러서 실행해 봅니다. 제대로 실행 된 것을 확인해 볼 수 있습니다. 개인적으로 For ~ Next 문은 VBA에서 가장 자주 사용되는 구문으로 생각이 됩니다. 대부분 엑.. 2021. 1. 12.
엑셀 VBA(매크로) - If ~ End if 조건문 If 조건문은 특정 조건을 만족할 경우 특정 작업을 실행하는 구문입니다. If 조건문은 기본적으로 IF를 입력하고 뒤에 해당조건을 입력한 뒤 Then 까지 같은 줄에 적습니다. 다음행에는 조건에 해당될때 실행되는 구문을 입력하고, 마지막에는 End If를 입력합니다. If 조건 Then 처리 End If 예제를 한번 다뤄보도록 하겠습니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. 그리고 엑셀 시트의 "A1" 셀에 100이라고 입력 합니다. 그리고 다시 VBA 코딩창으로 이동해서 'F5'를 눌러서 실행해 봅니다. 이렇게 성공적으로 대화창이 실행됩니다. 이번에는 ElseIf와 Esle문을 사용해서 예제를 한번 실습.. 2021. 1. 9.
엑셀 VBA(매크로) - with ~ end with 구문 VBA 코드를 작성하다 보면 동일한 개체에 반복해서 사용할 경우가 많습니다. 예를들어 sheets(1) 이라는 개체에서 여러 셀을 사용할때 아래와 같이 번거로움이 있습니다. sheets(1).cells(1,3) = test sheets(1).cells(1,3).font.color = vbBlue sheets(1).cells(1,4).interior.color = 36 . . . 이럴때에는 with ~ endwith 문으로 반복작업을 줄이고, 코드를 깔끔하게 작성할 수 있습니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. 위와 같이 코드를 입력하고 실행합니다. 제대로 실행이 된 것을 확인할 수 있습니다. 반복해서 .. 2021. 1. 8.
엑셀 VBA(매크로) - InputBox 함수 MsgBox 함수와 비슷한 형태로 사용하는 InputBox 함수가 있습니다. InputBox 함수는 메세지 상자를 이용해 값을 입력 받는 작업을 수행할 때 주로 사용합니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. 간단하게 위의 그림과 같이 입력하면 아래와 같이 대화창이 실행 됩니다. Inputbox 함수는 아래와 같이 구성되어 있습니다. InputBox 'prompt', 'title', default - prompt : 대화상자에 메세지로 나타나는 텍스트입니다.(필수요소) - title : 대화상자의 제목 표시줄에 나타나는 텍스트입니다. 생략하면 'Microsoft Excel' 이라고 나타납니다.(선택요소) .. 2021. 1. 7.
엑셀 VBA(매크로) - MsgBox 사용하기 'MsgBox'와 'InputBox'는 VBA에서만 사용하는 일종의 함수입니다. 'MsgBox'함수로 원하는 대화상자를 나타내고, InPutBox 함수로는 사용자로부터 원하는 값을 입력받는 대화형 작업을 구현할 수 있습니다. 먼저 'MsgBox' 함수부터 살펴 보겠습니다. 개발도구 메뉴에서 Visual Basic 메뉴로 들어갑니다. VBA 창에서 '삽입' 메뉴에서 '모듈(M)'을 눌러서 모듈을 추가합니다. 위의 그림과 같이 코드를 입력합니다. MsgBox 함수는 'Prompt', 'Buttons', 'Title' 이렇게 세 가지 인수로 이루어져 있습니다. 각 인수는 쉼표로 구분하며 괄호는 생략할 수 있습니다. MsgBox prompt, buttons, title 이렇게 사용 하시면 됩니다. 위의 예제는 .. 2021. 1. 6.
엑셀 - 자동 목록 쉽게 만들기 (드롭다운, 콤보박스) 엑셀을 사용하다 보면 아래와 같이 클릭하면 목록이 나오는 경우가 있습니다. 이력서 등 여러 엑셀 서식에 이것을 적용하면 상당히 편한 경우가 많습니다. 이번 포스트는 이런 '목록'(드롭다운, 콤보박스)를 만드는 방법에 대해 알아 보도록 하겠습니다. 우선 아래와 같이 임으로 작성해 봅니다. 아침, 점심, 저녁을 각 인원별로 선택하는 목록을 만들까 합니다. 식단 목록을 아래와 같이 빈셀에 입력합니다. 목록(드롭다운)이 들어갈 셀을 선택합니다. 상단의 "데이터" 메뉴를 클릭해서 "데이터 유효성 검사"를 클릭합니다. 아래와 같이 "데이터 유효성 검사(V)"를 선택합니다. "데이터 유효성" 창에서 "제한대상(A)"는 드롭다운 버튼을 클릭해서 "목록"을 선택하고 "원본(S)"은 아까 만든 식단목록을 지정해줍니다. 그.. 2020. 12. 26.
엑셀 VBA (매크로) - 코드 비밀번호 쉽게 설정하기 (잠그기) VBA(매크로)를 사용하여 파일을 만들어서 공유하는 경우가 있습니다. 모두 공유를 해도 좋지만, 가끔씩 본인이 만든 코드를 숨기고 싶을때가 있습니다.(저만 그런가요?) 그럴때는 비밀번호를 설정하시면 됩니다. 우선 매크로가 포함된 엑셀파일을 엽니다. 그리고 상단의 메뉴 중 '개발도구'를 클릭합니다. '코드' 그룹에서 'Visual Basic'을 클릭합니다. 그러면 "Microsoft Visual Basic for Applications"라는 창이 뜹니다. 이 창에서 상단메뉴의 '도구(T)' 에서 'VBAProject 속성(E)..."를 클릭합니다. '프로젝트 속성' 창에서 "읽기 전용으로 프로젝트 잠금(V)"에 체크를 하시고 '프로젝트 속성 보기 암호' 에서 암호를 입력 하시고, '확인'을 클릭 하시면 됩.. 2020. 12. 25.
엑셀 - 테이블(표) 자동으로 선 그리기(조건부 서식 이용) 엑셀에서 표(테이블)이 변경될 때마다 선을 다시 그려야 한다면 여간 귀찮은 일이 아닐 수 없습니다. 이때 '조건부서식'을 이용하면 자동으로 선을 그릴 수 있습니다. 우선 엑셀파일을 연다음 임의로 글자를 입력합니다. 조건부서식이 들어갈 범위의 셀을 마우스로 선택합니다. 엑셀 상단 '홈' 메뉴에서 '조건부서식'을 클릭한 다음 '새 규칙(N)'을 선택합니다. '새 서식 규칙' 창에서 규칙유형은 "수식을 사용하여 서식을 지정할 셀 결정"을 선택하고 '규칙 설명 편집' 창에서 "다음 수식이 참인 값의 서식 지정(O)" 에 수식을 입력합니다. 그리고 마지막으로 "서식(F)" 버튼을 눌러서 서식을 지정합니다. '셀 서식' 창에서 '테두리' 탭의 선과 색을 지정하고 '윤곽선'을 선택한 다음 '확인' 버튼을 클릭합니다... 2020. 12. 24.