엑셀 / VBA / 매크로 만들고 실행하기

간단한 예제로, VBA로 매크로를 만들고 실행하는 과정을 살펴보겠습니다.(개발 도구 메뉴가 없는 경우 옵션 변경으로 추가할 수 있습니다.)

  • [개발 도구]에서 제일 왼쪽에 있는 [Visual Basic]을 클릭합니다.(단축키는 Alt+F11입니다.)

  • 다음과 같은 에디터 창이 나오는데...

  • [Microsoft Excel 개체]를 선택하고 마우스 우클릭한 후, [삽입]의 [모듈]을 클릭합니다.

  • 코드를 넣을 수 있는 창이 나오는데...

  • 다음 코드를 입력합니다.
Sub SayHello()
  Sheet1.Range("A1").Value = "HELLO"
End Sub
  • SayHello라는 이름의, A1 셀에 HELLO를 입력하는 매크로를 만드는 것입니다.

  • 이제 [개발 도구]의 [매크로]를 클릭합니다.(단축키는 Alt+F8입니다.)

  • SayHello가 선택된 상태에서 [실행]을 클릭하면...

  • A1 셀에 HELLO가 입력됩니다.

  • 코드를 다음처럼 수정하고, 다시 매크로를 실행하면...
Sub SayHello()
  Sheet1.Range("A1:A10").Value = "HELLO"
End Sub

  • A1부터 A10까지 HELLO가 입력됩니다.

  • 매크로를 포함한 엑셀 파일을 저장할 때는 [Excel 매크로 사용 통합 문서 형식]으로 저장합니다.
  • 이 형식의 확장자는 xlsm입니다.

같은 카테고리의 다른 글
엑셀 / 행의 최대 개수, 열의 최대 개수, 셀의 최대 개수

엑셀 / 행의 최대 개수, 열의 최대 개수, 셀의 최대 개수

행, 열, 셀 엑셀은 표 형태로 되어 있어요. 가로를 행이라 하고, 세로를 열이라 하고, 각 칸을 셀이라 합니다. 행은 숫자로 구분하고, 열은 문자로 구분해요. 셀은 열과 행의 이름을 합하여 나타냅니다. 예를 들어 D3는 D열과 3행이 만나는 셀을 의미합니다. 사용할 수 있는 행과 열의 개수는 정해져있어요. 꽤 많긴 하지만 무한대로 있지는 않아요. 최대 몇 ...

엑셀 / 함수 / RANK, RANK.EQ, RANK.AVG / 순위 구하는 함수

엑셀 / 함수 / RANK, RANK.EQ, RANK.AVG / 순위 구하는 함수

개요 RANK, RANK.EQ, RANK.AVG는 순위를 구하는 함수이다. RANK는 EXCEL 2007 이전 버전을 위한 함수이고, RANK.EQ와 RANK.AVG는 최신 버전을 위한 함수이다. RANK.EQ와 RANK.AVG는 같은 순위를 어떻게 처리하는지가 다르다. 구문 RANK(number,ref,) RANK.EQ(number,ref,) RANK.AVG(number,ref,) number : 필수 요소로, 순위를 구하려는 수 ref : 필수 요소로, 순위의 기준이 되는 수의 집합. 수 이외의 값은 무시된다. order : 선택 요소로, 입력하지 않거나 0으로 정하면 큰 수가 ...

엑셀 / 함수 / LEFT, LEFTB, MID, MIDB, RIGHT, RIGHTB / 문자열 추출 함수

엑셀 / 함수 / LEFT, LEFTB, MID, MIDB, RIGHT, RIGHTB / 문자열 추출 함수

LEFT, LEFTB LEFT는 텍스트 문자열의 첫 번째 문자부터 시작하여 지정한 문자 수만큼 문자를 반환한다. LEFT(text, ) LEFTB는 텍스트 문자열의 첫 번째 문자부터 시작하여 지정한 바이트 수만큼 문자를 반환한다. LEFTB(text, ) 영문자 등은 한 문자가 1바이트이므로 결과에 차이가 없다. 하지만, 한글 등 2바이트 문자라면 차이가 난다. 수식으로 계산된 결과에 대해서도 적용할 수 있다. MID, MIDB MID는 텍스트 문자열에서 지정된 ...

엑셀 / 월별 합계 구하는 방법 두 가지

엑셀 / 월별 합계 구하는 방법 두 가지

다음과 같이 날짜별 제품 판매 데이터가 있습니다. 이 자료를 가지고 월별 판매액 합계를 구하는 방법 두 가지를 소개해드립니다. 방법 1 MONTH 함수로 날짜에서 월을 뽑아냅니다. SUMIF 함수로 월별 금액의 합계를 구합니다. 의미 없는 F열을 추가해야 한다는 단점이 있습니다. 방법 2 날짜에서 월을 뽑아, 해당 월의 금액 합계를 구합니다. =SUM((MONTH($A$2:$A$10)=G2)*$E$2:$E$10) 수식이 약간 복잡해지지만, 월별 합계를 구하기 위한 열을 추가할 ...

엑셀 / 암호 설정하는 방법, 암호 해제하는 방법

엑셀 / 암호 설정하는 방법, 암호 해제하는 방법

암호 종류 엑셀에는 두 가지 암호가 있어요. 하나는 열기 암호, 또 하나는 쓰기 암호입니다. 둘 중 하나만 설정해도 되고, 둘 다 설정해도 돼요. 열기 암호를 설정하면 문서를 열 때 암호가 필요합니다. 암호를 모르면 문서 내용을 볼 수 없어요. 쓰기 암호를 설정하면 문서를 수정할 때 암호가 필요합니다. 암호를 몰라도 문서의 내용은 볼 수 있어요. 열기 암호와 ...

엑셀 / 함수 / COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS

엑셀 / 함수 / COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS

개요 셀 개수를 세는 함수에는 COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS가 있다. COUNT는 숫자가 있는 셀의 개수, COUNTA는 비어 있지 않은 셀의 개수, COUNTBLANK는 비어 있는 셀의 개수, COUNTIF는 조건에 맞는 셀의 개수, COUNTIFS는 여러 조건에 맞는 셀의 개수를 반환한다. 구문 COUNT COUNT(value1, , ...) 숫자가 있는 셀의 개수를 반환한다. 비어 있거나 문자가 있는 셀은 세지 않는다. COUNTA COUNTA(value1, , ...

엑셀 / 오름차순 정렬하기, 내림차순 정렬하기, 여러 기준으로 정렬하기

엑셀 / 오름차순 정렬하기, 내림차순 정렬하기, 여러 기준으로 정렬하기

엑셀에서 정렬은 데이터 탭에서 한다. 한 개를 기준으로 정렬할 수도 있고, 여러 개를 기준으로 정렬할 수도 있다. 한 개를 기준으로 정렬하기 정렬하려는 값들이 있는 셀 중에서 정렬 기준이 될 열에 있는 셀 중 하나를 선택한다. 을 클릭하면 내림차순으로 정렬한다. 정렬할 영역은 엑셀이 자동으로 정한다. 여러 개를 기준으로 정렬하기 버튼을 클릭하면 ...

엑셀 / @ 입력 시 이메일 링크로 바뀌지 않게 하는 방법

엑셀 / @ 입력 시 이메일 링크로 바뀌지 않게 하는 방법

엑셀의 셀에 @를 포함한 문자열을 입력하고 엔터를 누르면... 링크로 바뀝니다. 아웃룩 같은 이메일 클라이언트를 여는 링크인데요... 진짜로 이메일 주소라면 유용한 기능일 수 있는데, 문제는 글자 모양도 바뀐다는 거에요. 모양을 다시 조정해야 하는 불편이 있어요. 만약 이 기능이 필요 없다면 옵션에서 끌 수 있어요.

엑셀 / 순열의 수, 중복순열의 수, 조합의 수, 중복조합의 수 계산하기

엑셀 / 순열의 수, 중복순열의 수, 조합의 수, 중복조합의 수 계산하기

경우의 수 구하는 함수 엑셀로 순열의 수, 중복순열의 수, 조합의 수, 중복조합의 수를 계산할 수 있습니다. 순열의 수는 PERMUT 함수로, 중복순열의 수는 PERMUTATIONA 함수로, 조합의 수는 COMBIN 함수로, 중복조합의 수는 COMBINA 함수로 구합니다. 구문 PERMUT(number, number_chosen) PERMUTATIONA(number, number_chosen) COMBIN(number, number_chosen) COMBIN(number, number_chosen) number : 필수 요소로, 항목 수입니다. number_chosen : 필수 요소로, 각 경우의 수에 포함되는 항목 수입니다. 순열의 수, 중복순열의 ...

엑셀 / 화살표 키 눌렀을 때 스크롤 되는 현상 해결하는 방법

보통 셀이 선택된 상태에서 화살표 키를 누르면 선택된 셀이 이동한다. 예를 들어 A1이 선택된 상태에서 오른쪽 화살표 키를 누르면 B1이 선택된다. 그런데, 선택된 셀이 이동하는 게 아니라 시트 자체가 스크롤 되는 경우가 있다. 그렇게 되는 이유는 자신도 모르게 Scroll Lock를 눌렀기 때문... 다시 Scroll Lock을 누르면 원래대로 돌아온다.