엑셀 / 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입니다.

같은 카테고리의 다른 글
엑셀 / 함수 / TRIM / 공백 제거하는 함수

엑셀 / 함수 / TRIM / 공백 제거하는 함수

개요 TRIM은 문자열에 있는 공백을 제거하는 함수이다. 문자열 양 끝에 있는 공백은 다 제거한다. 문자열 사이에 있는 공백은 하나만 남기고 제거한다. 구문 TRIM(text) 예제 =TRIM(" AB CD ") AB, CD 양 끝과 사이에 한 개의 공백이 있으면, 양 끝의 공백은 제거하고, 사이에 있는 것은 그대로 둔다. =TRIM(" AB CD ") AB, CD 양 끝과 사이에 두 개의 공백이 있으면, 양 ...

엑셀 / 함수 / 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, , ...

엑셀 / VBA / 주석 만드는 방법

엑셀 / VBA / 주석 만드는 방법

코드는 남아있지만 실행되지 않는 것을 주석이라고 합니다. 주석은 메모를 남길 때 사용하기도 하고, 오류를 찾기 위해 한 줄 씩 실행할 때 사용하기도 합니다. 주석을 만드는 방법은 작은 따옴표를 다는 것입니다. 작은 따옴표 이후의 문자열은 실행되지 않습니다. 주석은 에디터에서 녹색으로 표현됩니다. 여러 줄을 주석으로 만들려면 각 줄에 작은 따옴표를 넣어야 하는데, 많은 양이라면 무척 ...

엑셀 / 함수 / REPLACE, REPLACEB / 특정 위치의 문자열을 바꾸는 함수

엑셀 / 함수 / REPLACE, REPLACEB / 특정 위치의 문자열을 바꾸는 함수

개요 REPLACE와 REPLACEB는 특정 위치의 문자열을 다른 문자열로 바꾸는 함수입니다.  특정 위치를 찾을 때 REPLACE 함수는 글자 수를 기준으로 하고, REPLACEB 함수는 바이트를 기준으로 합니다. 따라서 한 글자를 2바이트로 계산하는 한국어, 일본어, 중국어에서 차이가 납니다. 구문 REPLACE REPLACE(old_text, start_num, num_chars, new_text) old_text : 필수 요소로, 문자를 바꿀 문자열입니다. start_num : 필수 요소로, old_text에서 new_text로 바꿀 문자의 위치입니다. num_chars : 필수 요소로, old_text에서 사라질 문자의 ...

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

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

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

엑셀 / 페이지 나누는 점선 없애는 방법

엑셀 / 페이지 나누는 점선 없애는 방법

페이지 나누기 표시 엑셀에서 인쇄 미리보기를 하거나 인쇄를 한 후 다시 워크시트로 돌아오면 점선이 생긴 걸 볼 수 있습니다. 인쇄되는 영역을 표시해주는 것으로, 페이지 나누기 표시라고 합니다. 인쇄를 목적으로 만들 때는 유용한 표시이지만, 경우에 따라서는 불편하거나 필요하지 않을 수 있습니다. 페이지 나누는 점선을 없애는 방법을 알아보겠습니다. 페이지 나누기 표시 없애기 페이지 나누기 표시는 옵션에서 표시 ...

엑셀 / 함수 / VLOOKUP, HLOOKUP, XLOOKUP

엑셀 / 함수 / VLOOKUP, HLOOKUP, XLOOKUP

VLOOKUP 문법 VLOOKUP(lookup_value,table_array,col_index_num,) lookup_value : 찾을 값 table_array : 조회할 범위 col_index_num : 반환하려는 값이 있는 열 번호 range_lookup : TRUE면 근사 일치, FALSE면 정확히 일치. 기본값은 TRUE 예제 =VLOOKUP(E2,A2:C16,2,FALSE) A2:C16의 1열(A열)에서 E2의 값을 찾고, 그 행의 2열(B열)의 값을 출력합니다. FALSE는 정확히 일치하는 것을 찾으라는 뜻입니다. E2에 6이 있으니, 6에 해당하는 이름 F를 출력합니다. =VLOOKUP(E2,A2:C16,3,FALSE) 가격을 출력하고 싶다면 2를 3으로 변경하면 됩니다. 선택 ...

엑셀 / 시트의 눈금선 없애는 방법

엑셀 / 시트의 눈금선 없애는 방법

눈금선 엑셀의 시트에는 선이 있어요. 모니터에만 나오고 인쇄할 때는 나오지 않는 선이에요. 이 선을 눈금선이라고 합니다. 눈금선이 있는 이유는 셀의 위치를 파악하기 쉽게 하려는 거에요. 눈금선 없이 한동안 써봤는데 꽤 불편하더군요. 눈금선이 있는 게 좋아요. 그런데, 눈금선이 있는 게 더 불편한 경우가 있어요. 바로 모양을 꾸밀 때에요. 인쇄용 보고서를 만들기 위해 선을 그리고 ...

엑셀 / 날짜를 텍스트로, 텍스트를 날짜로 변환하는 방법

엑셀 / 날짜를 텍스트로, 텍스트를 날짜로 변환하는 방법

날짜를 텍스트로 변환 날짜 형식의 데이터는 날짜처럼 보이지만, 실제 값은 1900년 1월 1일부터 시작되는 일련 번호이다. 즉, 1900-01-01은 1이고, 1900-01-02는 2이다. 날짜는 계산에 사용할 수 있도록 순차적인 일련 번호로 저장됩니다. 기본적으로 1900년 1월 1일이 일련 번호 1이고, 2008년 1월 1일은 1900년 1월 1일 이후 39,447일이 지난 날짜이므로 일련 번호가 39448입니다. 따라서 날짜 2022-10-25를 ...

엑셀 / 함수 / SUM, SUMIF, SUMIFS / 합계 구하는 함수

엑셀 / 함수 / SUM, SUMIF, SUMIFS / 합계 구하는 함수

개요 SUM은 합을 구하는 함수이다. SUMIF와 SUMIFS는 조건에 맞는 값들의 합계를 구하는 함수이다. SUMIF는 조건이 하나일 때 사용하고, SUMIFS는 조건이 여러 개일 때 사용힌다.(조건이 하나일 때 SUMIFS를 사용해도 된다.) 구문 SUM SUM(number1, , ...) number1 : 필수 요소로, 합하려는 첫 번째 숫자 또는 범위 number2, ... : 선택 요소로, 합하려는 추가 숫자 또는 범위 SUMIF SUMIF(range, criteria, ) range : 필수 ...