직장인들에게 필요한 사무자동화 엑셀 엑셀 VBA 소개

 

이러한 즐거움 때문에 배우게 되죠!!

2~3시간 걸리는 업무를 30분 만에! 처리할 수 있는 스킬, 엑셀 VBA로 가능하다는 것 !!

 

VBA는 오피스 프로그램에서 사용하실 수 있는 매크로 언어입니다.

엑셀 VBA는 엑셀에 탑재된 비주얼 베이직 프로그램으로 보시면 되는데요!

프로그래밍, 코딩 입문용으로도 가장 좋은 것이 엑셀 VBA이지요

엑셀 VBA, 본격적인 코딩 작업보단 난이도가 낮아요!

 

엑셀 VBA로 할 수 있는 것?

 

- 1만 개 이상의 데이터 한번에 가공하기

- 웹데이터 자동으로 수집하기(크롤링)

- 커스터마이징한 매크로로 자동 차트 그리기

- 파일 하나하나 열지 않고 다른 엑셀 파일에 있는 데이터 가져오기

- 다양한 조건의 데이터를 쉽게 뽑아낼 수 있는 프로그램 만들기

 

또한 필터나 함수를 하나하나 설정하느라 몇 시간 걸렸던 일들이

엑셀 VBA 코딩 몇 줄로 몇 분만에 해결되는 놀라움을 맛보실 수 있습니다.

 

 

엑셀 VBA, 활용도 높은 기능 3가지!

1. 웹쿼리 이용해 주식 시세 데이터 크롤링

2. 크롤링으로 뽑아온 데이터 활용해 자동으로 차트 그리기

3. VBA의 꽃! 고급필터로 내가 찾는 조건에 맞는 데이터만 뽑아보기

 

 
 

 

엑셀 VBA의 가장 큰 장점은

이 모든 기능들을 응용해 내 업무시간 단축을 위한 커스터마이징을 할 수 있다는 것!

단순 반복 업무에 드는 시간은 최대한 줄여준다

 

아무리 프로그래밍, 코딩 치고는 난이도가 낮다지만

코딩을 처음 접하는 분들께서 VBA를 책이나 온라인 강의로 시작하기는 어려울 수 있지만

코딩을 접해 본 사람이라면 가능하리라 생각합니다.

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

 

객체 생성

우선 객체를 생성할 변수를 선언 후 new라는 명령어를 사용하고 객체 속성을 선언한 함수명을 적어 줍니다.

그렇다면 이렇게 됩니다.

r8 = new makeCar();

그리고 자동차의 이름 등을 값으로 넣어 줍니다. this.name = "r8" 이런식으로요.

예제를 통해 알아 봅시다.

r8 = new makeCar();
 r8.name="R8";
 r8.company = "AUDI";
 r8.color = "white";
 r8.numPeople = 2;
 r8.meth(); //메소드 호출


그럼 실전 예제를 통해서 테스트 해봅시다.
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>자바스크립트</title>
<script>
function makeCar(){
    this.name;
    this.company;
    this.color;
    this.numPeople;
    this.meth = showCar;
}
function showCar(){
    document.write("자동차 이름 : "+this.name+"<br />");
    document.write("자동차 제조사 : "+this.company+"<br />");
    document.write("자동차 탑승인원 : "+this.numPeople +"<br />");
    document.write("차량 색상 : "+ this.color +"<br />");
}
r8 = new makeCar();
r8.name="R8";
r8.company = "AUDI";
r8.color = "white";
r8.numPeople = 2;
r8.meth();
</script>
</head>
<body>
</body>
</html>


 

r8이 아닌 다른 객체를 생성 한다면 같은 위와 같은 방법으로 다른 객체를 생성 하시면 됩니다.

a8 = new makeCar();
 a8.name="A8";
 a8.company = "AUDI";
 a8.color = "Red";
 a8.numPeople = 4;
 a8.meth();


위의 소스를 덧붙여서 시도 해 보면 또 하나의 객체 가 생성되어 출력 메소드를 통하여 정보를 보여 줍니다.

 

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

 

 

 

다른 일을 하면서도 투잡(알바/부업)으로 월급 만큰 수익이 됩니다.

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

프로그래밍  / 객체생성

 

이번 시간은 객체 생성 하는 방법에 대해서 알아 볼게요.

function 을 이용하여 객체의 속성을 지정해주고 메소드를 만들어서 그 속성을 어떻게 할것인지에 대한 지정을 해주고, 마지막으로 객체를 생성 하는 절차로 진행 됩니다.

자동차를 비유로 들어볼건데요.

자동차에는 공통적으로 이름을 갖고 있고 또 엔진을 갖고 있고 제작사가 있고 색을 갖고 있고 하죠 이러한 것들이 속성에 해당 하는데요.

그럼 자동차에 시동을 건다 달린다 등은 메소드에 해당한답니다.

그리고 객체 생성이란 것은 자동차를 만드는 것이라고 보면 됩니다.

즉, 속성을 지정하면 어디회사의 차인지 바퀴가 엔진을 무엇을 사용하는지 색은 무슨 색인지 몇명이 탈 수 있는지 이러한게 되며

메소드는 달린다 , 선다, 커브를 돈다 등이 되고

객체를 생성하는 것은 공장에서 아우디 R8을 만드는 것에 해당 한다고 보면 됩니다.

그럼, 속성을 선언해 보겠습니다.

속성은 function을 사용해서 만듭니다.

속성 선언

function makeCar(){ //makeCar 속성을 정의하는 함수의 이름입니다.
 // 자동차를 만드는 것을 예로 하므로 makeCar이라는 이름을 붙였으며,
 //사용자가 원하는 이름을 사용합니다.
 //속성은 this를 사용하여 선언합니다.
 //이름 속성을 만든다고 하면
this.name; // 이렇게 정의 합니다.
 //회사도 정의하면
this.company;
 //자동차의 칼라 정의
this.color;
 //탑승인원
this.numPeople;
 //그리고 이러한 자료들로 어떻게 할지에 대한 메소드를 출력합니다. 그래야 메소드와 연결이 됩니다.
this.meth = showCar; // meth 라는 속성 안에 showCar이라는 메소드 명을 지정하여 선언합니다.
 }

이제 메소드를 생성 해 봅시다. 이 메소드의 역할은 만든 자동차가 어디 회사의 것인지 몇명이 탈수 있는지 색은 무엇인지를 보여주는 기능을 합니다.

위의 속성 선언 소스에서 보면 메소드를 불러 오는 부분은 this.meth = showCar; 이곳 입니다.

그러므로 showCar이라는 메소드를 만들어 봅시다.

메소드도 속성 정의 처럼 function 을 사용하여 정의 합니다.

function showCar(){// showCar은 메소드의 이름
document.write("자동차 이름 : "+this.name+"<br />");
 document.write("자동차 제조사 : "+this.company+"<br />");
 document.write("자동차 탑승인원 : "+this.numPeople+"<br />");
 document.write("차량 색상 : "+this.color+"<br />");
 }

위와 같이 메소드를 만들고 이제 자동차를 만들어 봅시다. 이과정은 객체 생성이라고 합니다

 

 

다른 일을 하면서도 투잡(알바/부업)으로 월급 만큰 수익이 됩니다.

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

재귀 함수

재귀 함수는 단어를 보고 어렵게 느끼실수도 있는데요 함수 안에서 자신의 함수를 호출 하는 것을 말한답니다.

, add라는 함수를 만들었다면 add라는 함수 안에 add라는 함수를 호출 하는것입니다.

또 한번 즉,

function add(){

add();

}

위와 같은거죠.

팩토리얼이란?

자기 자신의 수에 1 작은 수를 곱하고 또 1작은 수를 곱하고 해서 1작은 수가 1이 될때까지 곱하는 것입니다.

어떤 수를 예를 들어서 5라고 합시다.

설명이 이상할 수 있으니 예를 든다면요.

5x4x3x2x1 입니다.

이것이 팩토리얼(!) 이라고 합니다. 기호는 ! 입니다.

5! 이렇게 작성을 하며, 5!를 풀어라 한다면 5*4*3*2*1 이므로 120이 답입니다.

이렇게 해서 팩토리얼이 무엇인지 알게되었습니다.

그렇다면 10! 이것은 무엇일까요?

10*9*8*7*6*5*4*3*2*1 계산 하면 됩니다. ^-^* 답은 4,939,200 입니다.

그럼 함수 안에 자신의 함수를 호출하는 재귀함수에 대해서 알아 볼까요

그런데 이 재귀함수는 제가 제대로 이해를 하고 설명하는 것인지 좀 헤깔리지만 마땅히 흐름도가 표시된 자료도 찾기 힘들어서 제가 이해한 대로 설명을 해보겠습니다.

소스는 다음과 같습니다.

재귀 함수를 아래의 소스로 이해해 봅시다.

function factorial(fnum){

end_num = 1;

if(fnum == end_num) return end_num;

else return fnum*factorial(fnum-1);

}

document.write(factorial(3));

함수 호출

document.write(factorial(3));

함수 호출은 출력문과 함께 매개변수 3을 보내고 있습니다.

factroial함수는 매개변수로 3을 받습니다.

function factorial(fnum){

end_num = 1;

if(fnum == end_num) return end_num;

else return fnum*factorial(fnum-1);

}

document.write(factorial(3));

factroial 의 매개변수인 fnum3을 값으로 갖습니다. 그러므로 fnum=3인 상태 입니다.

end_num = 1이 있는 이유는

end_num = 1;

팩토리얼은 자신의 수가 1일 될때까지 곱셈을 합니다. 그러므로 끝나는 수가 1이기 때문에 end_num=1을 선언 합니다.

fnum end_num의 값이 같다면

if(fnum == end_num) return end_num;

end_num값은 1이고 fnum3입니다. fnum값이 1이된다면 end_num값을 반환 하라는 내용입니다.

fnumend_num과 같지 않을 경우는

else return fnum*factorial(fnum-1);

fnum*factroial(fnum-1)을 반환합니다. fnum3이라고 한다면,

3*factorial(2) 를 반환 하는것입니다. 그럼 이 부분은 함수 호출 부분으로 넘어가겠죠?

그런데 값을 넘겨 받았지만 호출문인 factroial(2)가 있기 때문에 함수는 호출 되어 2를 매개변수의 값으로 하고 else문을 만나서 2*factorial(1)을 반환하게 됩니다.

그렇다면 호출문인 factorial(3)3*2*factorial(1)인 상태가 됩니다. factorial(1)은 호출되어 end_num값과 같아서 1을 반환하게 되고

호출문은 3*2*1을 출력값으로 받게 되는 것입니다. 이해가 잘 되시는지요? ^^

잘 안되실것 같아서 다시 한번 설명을 해보겠습니다.

함수호출 factorial(3)을 실행

fnum값이 3이 되고 else문에 의해서 3*factorial(2)를 반환

3*factorial(2)에서 factorial(2)는 함수 호출 하고 매개변수값이 2이므로, else문을 만나서 2*factrorial(1)을 반환하고 1을 매개변수 값으로 해서 호출하고

end_numfnum이 일치하므로 if문을 만나서 1을 반환,

함수는 3*2*1을 반환하게 됩니다.

 

 

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>자바스크립트</title>

<script>

function factorial(fnum){

end_num = 1;

if(fnum==end_num) return end_num;

else return fnum*factorial(fnum-1);

}

document.write("!="+factorial(3));

</script>

</head>

<body>

</body>

</html>

 

결과값은 !=6  / 수고하셨습니다.

 

다른 일을 하면서도 투잡(알바/부업)으로 월급 만큰 수익이 됩니다.

아래 접속하셔서 상담받아 보시고 결정하세요 .(믿음의 재택부업회사)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

[프로그래밍] return은 값을 반환하는 명령어

 

함수 안에서 명령문들을 실행하다가 return을 만나면 함수를 빠져나가게 됩니다.

그리고 return문에 있는 것을 반환값을 돌려 줍니다.

 

예를 들어서,

function hey(a,b){

add = a+b;

return add;

}

위와 같이 작성을 한다면

hey함수는 add변수의 값을 반환 합니다. 반환된 값을 보기 위해서는 당연히 출력문안에서 함수를 호출 해야 겠죠?

document.write(hey(1,2));

위와 같이 출력 한다면 return문에 add가 있으므로 add값인 3이 출력이 됩니다.

Source

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>자바스크립트</title>

<script>

function hey(a,b){

add = a+b;

return add;

}

document.write(hey(1,2));

</script>

</head>

<body>

</body>

</html>

이 예제 실행 & 수정

 

return문에 add가 아닌 20을 넣어 봅시다.

그렇게 하면 20을 반환 합니다.

 

 

위 예제 실행값은 20

 

이것으로 return뭌에 대한 강좌를 마치겠습니다.

 

........................................................................................................................

직장을 다니면서 투잡 ( 재택알바 / 부업 )으로 월급만큼 수익을 얻을 수 있는 곳을 소개합니다.

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

[프로그래밍기초] break문

 

break문은 if,switch,for,while문등에서
break문을 만나면 바로 빠져나가는 명령문 입니다.

즉 1에서 7부터 출력하게 프로그래밍 했는데 7일때
break문을 실행되도록 했다면 7부터는 출력이 되지 않습니다.
이유는 break문은 수행중이던 조건문이나 반복문을 빠져나가버리기 때문이죠.
위의 예제에서 continue를 break로 변경하여 결과를 확인해 보도록 하겠습니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>프로그래밍</title>
<style type="text/css">
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js" ></script>
<script type="text/javascript">
  for(a = 1; a <= 10; a++){
    if(a == 7){
      break;
    }
    document.write(a+"<br />");
  }
</script>
</head>
<body>
</body>
</html>


위의 결과에서 보면 7부터는 출력이 되지 않는걸 볼 수 있습니다.
7을 출력할 차례에 브레이크문을 만났기 때문입니다.

 

 

위 결과값은 1 2 3 4 5 6

7을 출력할 차례에 브레이크문을 만났기 때문입니다

위 내용을 천천히 한번 더 따라해보세요 자주쓰이는 구문입니다. 수고하셨네요 !

 

직장을 다니면서 투잡으로 하셔도 월급만큼 수익을 받을 수 있는 곳을
소개합니다. 제가 하고 있으니까요 한 번 도전해 보세요

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

continue문

어떠한 행위를 하다가 continue문을 만나면 해야할 명령문을 실행하지 않고
그 다음 명령문을 실행하는 명령문 입니다.

한번 보도록 할까요?

다음은 for문에서 1부터 10까지 출력을 하고 있는데 7일 출력될 순서에
continue문을 만나서 7이 출력이 되지 않고 8가 출력이 되는 상황입니다.
 아쪽은  if문을 사용했습니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>프로그래밍</title>
<style type="text/css">
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js" ></script>
<script type="text/javascript">
  for(a = 1; a <= 10; a++){
    if(a == 7){
      continue;
    }
    document.write(a+"<br />");
  }
</script>
</head>
<body>
</body>
</html>


위의 소스의 결과를 보면 7이 나올 차례에
if문을 사용하여a가7일때 continue;
명령문 실행하도록 하였으므로 7이 출력되지 않고
그 다음으로 넘어갔습니다.

 

 

 

위 코드값의 결과는  1,2,3,4,5,6 8,9,10

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

(회원가입을 하시면 편리한 시간에 자세히 설명해드립니다)

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

프로그래밍기초 /  반복문 / for 문 연습

 

이번 시간에는 for 문에 대해서 학습합니다.

for문도 while문처럼 반복문입니다.

for문은 조건식 안에서 (변수 선언 및 초기값 설정; 조건식; 증감식)으로 이루어져 있으며
초기값이 조건식에 참인 동안 명령문을 실행 합니다.

구조는 다음과 같습니다.

for문의 구조
for(변수 선언 초기값 설정;조건식;증감식){
  조건이 참인 동안 실행할 명령문;
}


그럼 실제 소스로 구조를 보겠습니다. 다음 소스는 1부터 10까지를 출력하는 것입니다.
for(a = 1; a <= 10; a++){
  document.write(a);
}


for문의 실행 순서

1. (a = 1) 변수 선언 및 초기값 설정, 변수 a 선언 및 값을 1로 선언.

2. (a <= 10) 조건 실행, a가 10과 같거나 작을 동안에 명령문을 실행

3. (document.write(a)) 2번에서 명령문을 실행 하므로 document.write(a)에 의해 화면에 1출력

4. (a++) 증감식 실행 하므로 a값은 1에서 2로 변경

5. (a <= 10) 조건 실행, a가 10과 같거나 작을 동안에 명령문을 실행

6. (document.write(a)) 2번에서 명령문을 실행 하므로 document.write(a)에 의해 화면에 2출력

7. (a++) 증감식 실행 하므로 a값은 2에서 3로 변경

8. (a <= 10) 조건 실행, a가 10과 같거나 작을 동안에 명령문을 실행

6. (document.write(a)) 2번에서 명령문을 실행 하므로 document.write(a)에 의해 화면에 3출력

7. (a++) 증감식 실행 하므로 a값은 3에서 4로 변경


(a++) 증감식 실행 하므로 a값은 9에서 10로 변경

10 이므로 이제 for문에서 빠져 나옴.


아래 예분을 주의깊게 보시기 바랍니다.

 

 

위 결과값은 12345678910

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

(회원가입을 하시면 편리한 시간에 자세히 설명해드립니다)

 

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

오늘은 어제 배운 while문을 응용해서 이번엔 do~while문에 대해서 학습합니다.

 

do ~ while

 

위의 while문에서는 조건식이 참이면 명령문들을 실행했는데요 do ~ while문은 일단 한번 실행을 한 후 조건문 검사후 참이면 명령문을 실행하고 아니면 빠져 나온답니다. 일단 구조를 한번 살펴 봅시다.

 

do ~ while 문의 구조

 

do{ 조건식이 참이면 실행할 명령은 여기에 적습니다.

}

while(여기에는 조건식을 적습니다.)

 

그럼 한번 소스를 통해서 do ~ while문이 무엇인지 이해해 보도록 합시다.

a = 1;

do{

document.write(a);

}

while(a==10)

 

위의 소스를 보면은 a=1입니다. 조건식을 보면 1==10이죠 즉 a10과 같을 동안 반복분을 실행하는거죠.

 

그런데 즉 조건식에서는 1== 10이 동일하지 않으므로 반복문을 실행하지 않죠. 하지만 do문에 있는 실행문을 한번은 실행을 한 후에 조건식을 검사를 하기 때문에 한번은 실행을 합니다.

 

, a값인 1이 한번은 출력이 된 후에 조건식을 검사후에 조건에 만족하지 않으면 do문 안에 명령문을 실행하지 않습니다.

 

그럼 전체 소스를 보면서 테스트 해보시기 바랍니다.

 

<!DOCTYPE html>

<html>

<head>

<title> david's Web Laboratory</title>

<style type="text/css">

</style>

<script type="text/javascript">

a = 1;

do{

document.write(a);

a++;

}

while(a==10)

</script>

</head>

<body>

</body>

</html>

 

위 결과값은

1

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

오늘은 while문 즉 반복문에 대해서 학습합니다.

 

반복문은 어떠한 값이 조건에 의해 그 조건에 만족하는 동안 계속 실행할 수 있습니다.

예를 들어 1200회 화면에 출력을 해야 한다면

1을 직접 200번 타이핑 하지 않고 반복문을 사용해 200회 출력할 수 있게 할 때 사용합니다.

 

사용법은 아래와 같습니다.

while(조건){

조건에 만족할 동안 실행할 명령문

}

 

 

예를 들어서 1부터 10까지 출력하는 것을 while문으로 만들어 본다면 다음과 같습니다

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>자바스크립트</title>

<script>

a = 1;

while(a <= 10){

document.write(a);

a++;

}

</script>

</head>

<body>

</body>

</html>

 

위의 소스를 보면 a의 값을 1로 선언 후 조건에는 a10보다 작거나 같다는 조건을

나타내며 그리고 그동안에 a의 값을 출력하는 명령문 그리고 a의 값을 1씩 올리는 a++가 있습니다.

 

위의 소스에 a++가 없다면 a가 값을 증가하면서 10에 도달하는 기능이 없으므로 무한루프에 걸리게 됩니다. 위의 소스를 실행할 때 한번 테스트 해보시기 바랍니다.

 

다음은 1부터 10까지의 누적합을 구하는 소스입니다. 알고리즘을 파악해 보세요

프로그램 면접시험 대 의외로 이런 간단한 문제를 묻는 곳도 있습니다.

 

 

결과값은

누적합1
누적합3
누적합6
누적합10
누적합15
누적합21
누적합28
누적합36
누적합45
누적합55

 

오늘 배운 반복문은 자주 사용하게 되기 때문에 꼭 기억해 주시기 바래요

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,