엑셀팁 (26)
레이의 VBA 정복기2 - VBA 구성요소
반응형

VBA 프로그래밍의 구성 요소

■ 코드 : VBA 프로그램의 최소 단위
■ 프로시저 : 코드들의 묶음으로 특정 작업을 수행할 수 있는 단위
■ 모듈 : 관련된 작업에 해당하는 여러 프로시저들의 묶음 단위
■ 프로젝트 : 여러 모듈이 저장될 수 있는 하나의 엑셀 통합 문서



코드란?


프로그램을 구성하는 가장 최소 단위는 코드이다. 매크로 기록 기능을 이용하여 변환된 프로그램 내용을 확인했을 때, 각 문장을 구성하는 명령어 하나하나가 코드에 해당된다.


프로시저란?

코드들이 모여 한 문장을 완성하게 되고, 이러한 문장들이 모여 하나의 프로시저가 완성된다. 따라서 프로시저는 특정 작업을 수행하여 결과를 확인할 수 있는 프로그램 단위라 볼 수 있다. 매크로 기록 기능을 이용하여 기록된 매크로도 하나의 프로시저에 해당된다.


모듈이란?

하나의 엑셀 파일에는 여러 가지 작업을 수행하는 프로시저가 존재할 수 있다. 각 작업 용도에 따라 별개의 프로시저를 작성하게 되는데, 이와 같이 여러 프로시저가 묶여 하나의 모듈이 된다.


프로젝트란?

여러 개의 모듈들이 모여 하나의 프로젝트가 된다. VBA에서 하나의 엑셀 파일에 작성되어 저장되는 모든 코드 내용을 묶어서 프로젝트라고 할 수 있다. 따라서 여러 엑셀 파일이 열려 있는 경우 VBE 창을 열면, 프로젝트 탐색기 창에 열려 있는 파일 하나하나가 프로젝트 단위로 표시되다.



저와 함께 희망을 향해 함께 달리죠.이걸 꾸~욱 누르면서




반응형
  Comments,     Trackbacks
레이의 VBA 정복기1 - VBA란 무엇인가?
반응형

사용자 삽입 이미지

VBA란 무엇인가?

VBA란?

VBA는 Visual Basic Application의 약자로서 비주얼 베이식이라는 프로그래밍 언어를 이용하여 직접 프로그래밍할 수 있는 하나의 응용 프로그램이다. VBA는 매크로와 마찬가지로 Microsoft Office제품(Word, Excel, PowerPoint, Access)에 기본적으로 내장되어 있다. 따라서 별도의 추가 작업을 필요로하지 않는다.


매크로와 VBA의 차이점

매크로는 프로그래밍에 대한 이해가 하나도 없는 상태에서도사용하는 것에 큰 무리가 없다. 매크로 기록기가 자동으로 작업하는 내용을 코드로 변환하기 때문이다. 하지만 매크로를 이용하여 작업하다 보면, 조금 더 복잡하고 다양한 작업인 경우에 구현할 수 없는 문제가 발생할 수 있다. 이와 같은 경우 작업을 직접 코드로 입력하여 프로그래밍할 수 있는데, 이때 VBA를 이용한다. VBA는 매크로보다는 전문적인 프로그래밍 지식이 필요하지만 훨씬 편리할 뿐만 아니라 다양하고 고급스러운 작업을 처리할 수 있다.


VBE 창이란?

VBA 기능을 이용하여 프로그래밍할 때 사용하는 작업 창을 VBE(Visual Basic Editor)라고 부른다. 실제 Visual Basic 프로그래밍 언어를 이용하여 프로그래밍하는 작업 창과 동일한 화면 구성을 가진다. 이뿐만 아니라 사용하는 명령도 Visual Basic 명령 구문을 그대로 사용한다.


사용자 삽입 이미지
* 프로젝트 탐색기 창 : 현재 작업할 코드가 저장될 위치가 선택하게 된다.

* 속성 창 : 선택한 개체가 가지고 있는 특성이나 성격을 정의할 대 사용한다.

* 코드 창 : 새로 작성하거나 이미 작성한 VBA코드 내용이 저장되는 장소이다.











참고서적 : 웃으며 찾는 엑셀매크로 & VBA활용사전 212 / 선양미,웰기획 지음 / 사이버출판사



저와 함께 희망을 향해 함께 달리죠.이걸 꾸~욱 누르면서






반응형
  Comments,     Trackbacks
엑셀팁 - 수식이 입력된 셀만 보호하기
반응형


수식이 걸려 있는 셀에는 다른 값을 넣을 수 없도록 할 수 있는지....
수식이 걸려 있는 셀은 수식만 허용되고 임의의 값을 넣을 수 없도록 하는 방법이 있을까?

사용자 삽입 이미지

해결책은 ....
1단계 수식이 입력된 셀은 보호하고,
2단계 나머지 셀은 보호를 해제한 뒤,
3단계 시트 보호를 한다.



구체적인 순서는....

1. Ctrl + a를 눌러 시트 전체 범위를 선택한다.
2. Ctrl + 1키를 눌러 셀 서식 대화 상자를 연다.(서식 메뉴의 셀을 눌러도 된다)
3. 보호 탭을 선택한다.
4. 그곳에서, 잠금의 체크를 해제한다.(이로써, 활성 시트의 모든 셀의 잠금을 해제한 것이다.)

사용자 삽입 이미지

수식이 있는 셀만 선택하기 위해

5. F5키를 누른다.(Ctrl + 9키를 누르거나, 편집 메뉴의 이동을 선택해도 된다)
6. 이동 대화 상자에서, 옵션을 누르고
7. 이돕 옵션에서, 수식을 선택하고 확인을 누른다.



수식이 입력된 모든 셀이 선택된 상태에서


8. Ctrl +1키를 눌러 셀 서식 대화 상자를 연다.(서식 메뉴의 셀의 눌러도 된다)
9. 보호 탭을 선택한다.
10. 그곳에서, 잠금의 체크를 선택한다.(이로서 활성 시트의 수식셀을 잠근다)


사용자 삽입 이미지



끝으로 시트를 보호해, 사용자 임의로 수식이 입력된 셀을 수정할 수 없도록 한다.

11. 도구 메뉴의 보호를 선택하고 그곳에서 시트 보호를 선택한다.(위크시트에서 허용할 내용을 선택한다. 기본적으로 잠긴 셀 선태, 잠기지 않은 셀 선택이 선택되어 있으며, 이 기능은 엑셀 2002이상 버전에만 있다.)

참고로, 잠긴 셀 선택의 체크를 해제하면, 셀서식에서 잠금에 체크한 수식이 입력된 셀의 선택 자체가 불가능하게 된다. 불필요한 사용자의 선택을 막지 위해서라면 이 옵션의 체크를 해제하는 것도 좋은 방법이다.

출처 : http://www.excellove.com/




반응형
  Comments,     Trackbacks
엑셀팁 - 0을 중복해서 표기하기
반응형

평소 회사업무를 하다가 이런 경우를 종종 접한다.일련순서를 입력하거나, PART ID를 지정할 때에

순서     이름
0001     XXXX
0002     XXXA
0003     XXXB
.....      XXSD
.....
0015     AAAA
.....
.....
0158     ABDD
.....
.....
1587     XDFA

처럼 "0"이라는 숫자가 앞에 나오게 해야 할 때 있다.


이럴 때 우리는 '0001, '0158처럼 숫자 0앞에 작은 따옴표를 이용하여 기록하곤 한다. 근데 작은 따옴표를 적는 것도 귀찮고 성가신 일 처럼 느껴진다.

해결 방법은......셀서식을 아래의 빨간 네모칸 처럼 사용자 지정으로 하면 쉽게 해결할 수 있다.

사용자 삽입 이미지
반응형
  Comments,     Trackbacks
엑셀팁 - 숫자를 문자로
반응형
숫자를 문자로 -  NUMBERSTRING 함수

  오늘은 숫자를 문자로 바꿔주는 NUMBERSTRING 함수에 대해 살펴보도록 하겠습니다. 이 함수를 사용하여 입력된 금액을 한글이나 한자로 변경할 수 있습니다. 단, 이 함수는 마법사에서 제공을 하지 않으므로 직접 입력하여 사용해야 합니다.

[형식]

NUMBERSTRING(값, Type)
- 값: 숫자를 한글로 변경할 실제 값이나 셀을 참조합니다.
- Type: 1~3까지 입력할 수 있으며,
  1일 때 123456 =NUMBERSTRING(A1,1) '십이만삼천사백오십육'
  2일 때 123456 =NUMBERSTRING(A2,2) '壹拾貳萬參阡四百伍拾六'
  3일 때 123456 =NUMBERSTRING(A3,3) '일이삼사오육'
  으로 화면에 나타납니다.

<1> 만기 금액을 구한 셀을 한글로 변경해 보도록 하겠습니다. 결과값이 나올 셀로 이동한 후 =NUMBERSTRING( 이라고 입력한 후 값이나 수식을 입력하며 표시할 Type도 입력합니다.

<2> 나머지 만기 금액도 이 함수를 사용하여 표시형식을 변경해 봅니다.

[참고하기] FV 함수

FV 함수는 일정 금액을 정기적으로 불입하고 일정한 이율을 적용하는 투자의 미래 가치를 계산하는 함수 입니다.

FV(Rate,Nper,Pmt,Pv,Type)
- Rate: 적립기간 동안 적용되는 이자율 또는 목표 수익률입니다. 이때 이율은 적립기간 단위와 일치합니다. 즉, 연 12%의 이율로 매월 적립하는 경우라면 월 단위로 일치하는 이율 1%(12%÷12월)를 적용합니다.
- Nper: 납입 횟수입니다. rate 계산에 적용된 기간 단위와 일치하여야 합니다.
- Pmt : 매 기간 납입액으로 납입 기간 동안 일정하해야 하며, 현금의 흐름에 따라 부호를 다르게 사용합니다. 예를 들어 은행에 매월 일정 금액을 적립하는 경우 저축하는 사람 입장에서 현금의 유출이므로 '-'부호를, 은행의 입장에서는 현금의 유입이므로 '+'기호를 붙입니다.
- Pv: 현재 가치 또는 앞으로 지불할 일련의 납입금의 현재 가치를 나타내는 총액을 입력하는 항목으로 Pv를 생략하면 0으로 간주되며 이 경우 pmt 인수를 반드시 포함해야 합니다.
- Type: 0또는 1로 납입 시점을 나타내는데, 생략하거나 0을 입력하면 기말이 되고 1을 입력하면 기초가 됩니다.



출처 : 오피스튜터 (www.officetutor.com)



저와 함께 희망을 향해 함께 달리죠.이걸 꾸~욱 누르면서




반응형
  Comments,     Trackbacks
엑셀팁 - 테이타가 계속 추가되는 1개열에서 마지막 입력값 구하기
반응형
엑셀팁

데이터가 계속 추가 혹은 입력되는 열(Row)가 있다.
이러한 자료에서 마지막 입력값을 구하는 방법은 아래와 같다.

사용자 삽입 이미지



저와 함께 희망을 향해 함께 달리죠.이걸 꾸~욱 누르면서





반응형
  Comments,     Trackbacks
엑셀팁 - 동일한 열에서 최소값과 최대값의 위치와 셀주소 구하기
반응형
엑셀팁

동일한 열 에서 최소값과 최대값의 위치와 셀주소 구하기'하는 방법은 아래와 같습니다.

사용자 삽입 이미지



위의 설명에서 일부 누락부분이 있어 오류가 발생합니다.

아래의 링크에 나온 설명을 참조하시기 바랍니다(16.11.04).
http://raymond.tistory.com/29#comment18292189




저와 함께 희망을 향해 함께 달리죠.이걸 꾸~욱 누르면서





반응형
  Comments,     Trackbacks
엑셀팁 - 일당제 사원의 근무 일수 구하기
반응형
이상훈님파워포인트 실무 활용 과정이 이번주 목요일(21일) 오전 10시에 개최됩니다.
 
장미희님[특강] Crystal Xcelsius의 비쥬얼 모델링을 이용한 데이터 분석 과정이 이번주 수요일(20일) 오전 10시에 개최됩니다.
 


단조로운 스프레드시트 데이터로 당신의 동료를 사로잡을
프리젠테이션 방법을 찾고자 한다면, Crystal Xcelsius 가 도와드릴 것입니다.

 

 [Excel] 일당제 사원의 근무 일수 구하기

  오늘은 오피스튜터 이은정님이 제공한 엑셀Tip을 소개해드립니다.

  일당제 사원의 근무 일수를 구하기 위해 NETWORKDAY 함수를 사용합니다. 휴일을 따로 지정해 두고 근무 일수에서 이 함수를 통해 토, 일요일뿐만 아니라 지정 휴일을 제외한 근무 일수를 구할 수 있습니다.

이 예제에서는 일당제 사원의 근무 일수를 구해서 근무 비용을 계산해 보겠습니다.

<1> 다음의 예제 파일을 불러오고, 일당제 사원 시트 탭을 선택합니다.

 [예제 파일 다운로드 받기]

<2> E7 셀을 선택하고 '=NETWORKDAYS(C7,D7)'을 입력하고, Enter를 누릅니다. 2006년 1월 3일에서 3월 15일까지의 근무일수가 52일이 구해진 것을 확인할 수 있습니다.

<주의> 함수 마법사 대화상자에서 NETWORKDAYS 함수를 찾을 수 없다면, 도구 메뉴에서 추가 기능을 선택한 후 분석 도구를 설치해야 합니다.

[함수 설명]  NETWORKDAYS()
 - 의미: 두 날짜 전체의 지정휴일을 뺀 작업일을 구합니다.
 - 형식 : NETWORKDAYS(Start_date, End_date, Holidays)
 - 시작일 종료일 지정휴일

<3> 이번에는 원하는 지정휴일을 뺀 나머지 근무일수를 구해 보도록 하겠습니다.
좀 더 편하게 구하기 위하여 ‘지정휴일’의 영역을 이름으로 정의해서 사용해 보도록 하겠습니다.
지정휴일 시트 탭을 클릭한 후 A2:A19를 범위로 지정하고, 이름상자 '지정휴일'을 입력한 후 ENTER를 누릅니다.

<4> 다시 ‘일당제 사원’시트를 클릭한 후 E7을 선택하고, 수식 입력줄의 내용을 다음과 같이 수정해 줍니다.

=NETWORKDAYS(C7,D7,지정휴일)

 이제, 지정한 휴일을 제외한 근무일수가 제대로 출력된 것을 확인할 수 있습니다.
(토, 일요일을 뺀다음 1월 29일(설연휴)은 일요일이므로 제외되며, 1월 30일(설연휴)과 3월 1일(3.1절), 2틀을 제외한 근무일수를 구해줍니다.

  [특강] 실무예제를 이용한 엑셀 함수 활용

 
9월30일(토) 오전10시에 오피스튜터 교육장에서 박미정 강사님을 모시고  실무예제를 이용한 엑셀 함수 활용 과정을 진행합니다.
총 50가지 이상의 함수를 통해 업무 효율성 향상을 기대할 수 있도록 하며, 엑셀의 기초 사용자에서 중급 이상의 사용자로 업그레이드 되어 상황에 따른 처리 능력을 배양하는 데 목적을 두고 있습니다. 이번 강의를 통해 함수의 활용도가 얼마나 높은지 확인하고 적용해 볼 수 있는 좋은 기회가 될 것입니다.   [자세히 보기]


저와 함께 희망을 향해 함께 달리죠.이걸 꾸~욱 누르면서





반응형
  Comments,     Trackbacks
최근 작성 글
최근 작성 댓글
최근 작성 트랙백
프로필
공지사항
글 보관함
캘린더
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
TODAY TOTAL