728x90
반응형
SMALL

EXCEL VBA 40

엑셀 VBA의 배열 대신 Collection 세번째(시트 데이터 읽기, 불러오기)

[ 들어가며 ] VBA는 보통 시트에 입력된 데이터를 활용하는 경우가 많습니다. 오늘은 Collection을 사용하여 시트의 데이터를 불러와 사용하는 방법을 간단한 예시코드와 함께 알아보겠습니다. [ 기본 데이터 ] 예시에 활용될 기본 데이터는 아래 그림과 같이 이름과 성적입니다. [ 시트 데이터 불러오기 ] 먼저 시트에 있는 이름의 데이터를 Collection에 넣어보겠습니다. 코드는 아래와 같습니다. Sub ReadWorksheets() Dim col As New Collection Dim rng As Range Set rng = Sheet1.Range("A1").CurrentRegion Dim i As Long For i = 2 To rng.Rows.Count col.Add rng.Cells(i, ..

EXCEL VBA 2024.02.16

엑셀 VBA에서 시트에 접근하는 두가지 방법(시트이름, 코드네임)

[ 들어가며 ] 오늘은 엑셀의 시트에 접근하는 방법에 대해 간단한 예시로 알아보겠습니다. 엑셀에서 VBA를 사용하여 시트에 접근하는 방법에는 여러가지가 있습니다. 워크시트의 인덱스를 사용하거나 Activesheet를 사용할 수도 있습니다. 그리고 시트의 이름을 통해서도 접근할 수 있고, 코드네임을 사용해서 접근할 수 도 있습니다. 오늘은 코드네임을 사용하여 접근하는 방법에 대해 알아보고 시트이름을 통해 접근하는 방법과 같이 비교해 보겠습니다. [ 코드네임이란? ] VBA에서 워크시트의 코드네임은 워크시트를 내부적으로 참조하는 데 사용되는 속성입니다. 코드네임은 워크시트가 생성될 때 자동으로 부여되며, 사용자가 엑셀의 워크시트의 이름을 변경하더라도 코드네임은 변경되지 않습니다. 비유적으로 설명하면 홍길동이..

EXCEL VBA 2024.02.15

엑셀 VBA의 배열 대신 Collection 두번째(For문, For~Each문과 결합한 Collection 활용)

[ 들어가며 ] 지난 블로그에서 Collection에 대한 기본 개념과 선언, 아이템의 추가 및 삭제, 그리고 아이템의 개수를 확인하는 방법을 알아보았습니다. 아래 링크를 참고하시면 지난 블로그를 확인하실 수 있습니다. ※ 엑셀 VBA의 배열 대신 Collection 첫번째(선언 및 아이템 추가, 삭제, 개수 확인) 오늘은 For문과 결합하여 Collection을 활용하는 방법을 알아보겠습니다. [ For문 및 For Each문 을 사용하여 Collection 활용하기] 먼저 아래 코드를 샘플로 사용하겠습니다. Sub Collection_Test() Dim col As New Collection col.Add "사과" col.Add "배" col.Add "오렌지" col.Add "딸기", after:=1..

EXCEL VBA 2024.02.13

엑셀 VBA의 배열 대신 Collection 첫번째(선언 및 아이템 추가, 삭제, 개수 확인)

[ 들어가며 ] VBA에는 Collection이라는 개념이 있습니다. 배열과 유사하지만 다른 유사한 객체나 항목의 그룹을 참조하는 데 사용되는 개체입니다. [ Collection의 크기는 동적 ] Collection의 특징 중 하나는 그 크기가 동적이라는 것입니다. 배열은 그 크기가 정적, 즉 미리 정해지고 시작하기에 크기를 바꾸기가 어렵습니다 하지만 Collection의 경우 그 크기가 미리 정해지지 않았기 때문에 프로그램의 실행 중간에도 그 크기를 바꿀 수 있습니다. 따라서 Collection의 경우 항목의 크기를 예측하기 어렵고 항목의 추가 및 삭제가 빈번하게 발생하는 경우에 효과적입니다. [ Collection의 선언 방법 ] Collection을 사용하기 위해서는 Collection을 먼저 선언..

EXCEL VBA 2024.02.01

엑셀 VBA 단어 채우기, VBA 좀 더 편리하게 사용하기

[ 들어가며 ] VBA를 처음 공부했을 때 다른 툴에 비해 조금 불편했던 것이 자동완성 기능이라고 해야할까요? Visual Studio를 사용할 때는 철자 하나만 쳐도 해당 철자로 시작하는 객체나 함수 등이 나타나는데 VBA에서는 그런 기능이 없는 줄 알았었습니다. 오늘은 VBA에서 지원하는 이와 유사한 기능인 [ 단어 채우기 ]에 대해 알아보겠습니다. [ 단어 채우기 ] [ 단어 채우기 ] 기능은 키워드로 인식할 수 있는 글자를 입력하면 VB편집기가 문자를 자동으로 완성해주는 기능입니다. 하지만 해당 글자만 입력하면 바로 키워드를 보여주거나 입력해 주지는 않습니다. 별도의 명령을 입력해야 하는데 단축키는 [ Ctrl + Space ]입니다. 해당 명령은 아래 그림과 같이 [ 편집 ] 메뉴에서 [ 단어 ..

EXCEL VBA 2024.01.31

엑셀 VBA 매크로 실행시간 계산하기, 매크로 실행에 걸리는 시간은?, Timer 함수

[ 들어가며 ] 간혹 제 블로그를 보시면 매크로 실행시간을 나타내었던 적이 있습니다. 매크로 실행시간은 짧은 매크로를 만드는 데는 그렇게 중요하지는 않습니다. 요즘 컴퓨터가 매우 빠르게 좋아지고 있고, 코드가 최적화 되어 있지 않아도 매우 빠른 속도로 동작하기 때문입니다. 하지만 같은 동작을 하는 코드라도 작성 방법에 따라 실행속도가 차이가 날 수 있습니다. 오늘은 내가 만든 매크로가 실행하는데 얼마나 걸리는지 알아보는 방법을 작성해 보겠습니다. 매크로 실행시간을 알아보는 방법은 간단합니다. [ 매크로 실행 시작 시간 - 매크로 실행 종료시간 ] 매크로 실행이 시작된 시간에서 매크로 실행이 종료된 시간을 빼면 걸린 시간이 나옵니다. [ Timer 함수 사용하기 ] 아래 코드를 실행해 보겠습니다. Sub ..

EXCEL VBA 2024.01.30

VBA With-End With 구문에 대한 기초 설명, With-End With 사용 방법

[ 들어가며 ] With-End With 구문은 동일한 개체에 여러 작업을 수행할 때 사용하는 구문입니다. 예를들면, 1번방에는 목공용 공구가 있습니다. 2번방에는 컴퓨터 제품이 있습니다. 누군가에게 목공용 공구를 가져오라고 시킬 때 1번방에 가서 망치 가지고와 1번방에가서 톱 가지고와 1번방에가서 드릴 가지고와 이렇게 시키는 것과 지금부터 내가 시키는 것은 모두 1번방에 있어. 망치 가지고와 톱 가지고와 드릴 가지고와 이렇게 시키는 것은 실생활에서도 차이가 있습니다. 이렇게 지시를 하게 되면 지시를 하는 사람도 지시하는 시간이 줄어들고 지시를 받는 사람도 1번방과 2번방의 선택지 중 2번방을 배제하고 항상 1번방에 가면 된다는 것을 미리 인지하고 있으면 그만큼 작업 시간이 줄어들게 될 것입니다. [ W..

EXCEL VBA 2024.01.30

엑셀 VBA Instr 함수, VBA 문자열 검색의 기본과 예시

[ 들어가며 ] VBA에서 문자열을 위치를 찾는 함수로 Instr 함수가 있습니다. 이 함수는 문자열에서 검색할 문자열이 발견되면 해당 문자열이 처음으로 나타나는 위치를 반환하고 발견되지 않으면 0을 반환합니다. [ 기본구문 ] Instr 함수의 기본 구문은 다음과 같습니다. InStr([start,] string1, string2[, compare]) 먼저 start 는 선택적 매개변수로 생략이 가능합니다. start의 역할은 검색을 시작할 위치를 지정하는 것입니다. 생략을 하게 되면 1이 사용이 됩니다. 즉, 문자열의 처음부터 검색이 시작됩니다. string1은 검색 대상 문자열입니다. string2는 검색할 문자열입니다. compare는 선택적 매개변수로 생략이 가능합니다. compare의 매개변수..

EXCEL VBA 2024.01.26

엑셀 VBA 번역 사용자 정의 함수 만들기, 엑셀 VBA 번역기 직접 만들어 사용하기, 엑셀 영어 번역

[ 들어가며 ] 지난 블로그에서 엑셀에서 지원하는 번역기능을 소개한 적이 있습니다. ※ 엑셀 번역기능 사용하기, 엑셀에서 영어 번역하기, 엑셀에서 한국어를 영어로 바꾸기 하지만 이 기능은 아마 엑셀 2019 이상의 버전에서만 지원하는 것으로 알고 있습니다. 이전 버전에서도 번역 기능을 사용하려면 직접 만들어 사용할 수 있습니다. 오늘은 VBA를 사용하여 번역기능을 수행하는 사용자 정의함수를 만들어 보겠습니다. [ 미리보기 ] 먼저 함수가 어떻게 작동되는지 살펴보겠습니다. 아래 그림을 참고하시면 함수가 어떻게 작동되는 지 직관적으로 알 수 있으실 겁니다. 지금 제작하는 사용자 정의함수는 구글 번역기를 활용한 것이기 때문에 구글 번역기로 번역할 수 있는 모든 언어의 번역이 가능할 것으로 보입니다. [ 전체 ..

EXCEL VBA 2024.01.25

엑셀 VBA로 중복없는 무작위 숫자 생성하기, 중복없는 랜덤 숫자 생성하기

[ 들어가며 ] 엑셀을 사용하면서 무작위 값을 생성하기 위해 RANDBETWEEN() 함수를 주로 사용합니다. 하지만 RANDBETWEEN() 함수의 문제는 중복된 값을 거르지 못한다는 단점이 있습니다. 오늘은 VBA를 사용하여 중복된 값이 없는 랜덤한 숫자를 만드는 방법을 알아보겠습니다. [ 작동 방법 ] 먼저 사용자가 셀의 범위를 입력하도록 합니다. 셀의 범위는 랜덤한 숫자가 채워질 범위입니다. 그 다음 시작값을 입력받습니다. 시작값이란 숫자의 범위 중 작은 값을 말합니다. 예를들어 1부터 100까지의 숫자 중 랜덤으로 숫자를 추출하려 할때 시작값은 1이 됩니다. 그 다음 종료값을 입력을 받습니다. 종료값은 숫자의 범위 중 큰 값을 말합니다. 예를들어 1부터 100까지의 숫자 중 랜덤으로 숫자를 추출..

EXCEL VBA 2024.01.12
728x90
반응형
LIST