본문 바로가기

반응형

엑셀VBA

엑셀 VBA 차트 그리기 VBA를 활용하여 차트 만들기엑셀을 사용하면, 엑셀 차트 그리기 기초에서 살펴본 것처럼 삽입 -> 차트 메뉴를 통해서 직접 차트를 그리는 것이 아니라 VBA를 통해서 차트를 생성하는 것도 가능하다. VBA를 통해서 차트를 만들면, 여러 데이터를 조합한 차트를 만들거나 동적인 데이터 변경에 대응이 가능하다는 장점이 있다. 차트는 아래 그림 1과 같이 데이터 범위 설정, 차트 생성, 상세 설정이라는 세 가지 단계를 순차적으로 거치면 만들 수 있다. 데이터 범위 설정먼저 아래 그림 2와 같이 엑셀 차트 그리기 기초에서 했던 "차트 데이터 범위" 설정 작업을 해야 한다.차트의 데이터 범위는 Range 객체로 정의해야 하는데, "데이터"를 Range로 선언하고 작업을 수행하면 된다. 데이터시트를 선언한 뒤 데이터.. 더보기
엑셀 VBA 웹 데이터 가져오기(웹 크롤링) VBA를 활용하여 정보 요청 보내고 받기HTTP요청 객체 만들고 요청하기엑셀 VBA로 웹 데이터를 가져오는 과정은 서비스 웹 서버에 처리 요청-> 데이터 수신 -> 데이터 처리의 과정을 거친다. 엑셀 VBA에서는 그림 1과 같이 서버에 "요청"을 하나의 객체로 만들어서 웹 서버로 보내고 그 결과를 수신한다.이때 만드는 객체(Object)가 "MSXML2.XMLHTTP.6.0"으로 Microsoft XML Core Services 라이브러리의 HTTP 요청 객체이다. 기본적인 구조는 아래와 같이 객체를 Set 하고 Open 메서드로 "요청"을 구성한 다음에 Send 메서드로 "요청"을 보내면 된다. Sub 웹데이터가져오기() Dim Http요청 As Object ' HTTP요청 객체 생성.. 더보기
엑셀 VBA function 만들어서 활용하기 함수 만들기(public function 사용)엑셀 VBA를 구성할 때 기능별로 function을 만들고 function으로 구한 값을 활용하는 것이 가능하다. 기본적인 구조는 아래와 같다. Public Function 함수명(변수명1 As String, 변수명2 As String)함수 기능 및 결과함수명 = 결과값End Function 위의 구조로 함수에 변수명1, 변수명 2 등 함수에 다양한 변수를 넣을 수 있고, 함수의 계산 결과를 함수명에 저장할 수 있다. 여기서 함수에 들어갈 변수명을 넣을 때 "변수명1 as String"과 같이 변수명들의 형식을 정의해 주는 것이 좋다. 엑셀의 셀에 "1"이라는 값이 문자열(String)로 입력될 수도 있고, 숫자(Integer)로 입력될 수도 있기 때문에 함.. 더보기
엑셀 VBA 사용해서 조건부 항목 구하기 조건문 만들기(if 사용)엑셀 VBA의 조건문은 "if...Then... End if" 형식을 사용해서 만들 수 있다. 여러 가지 조건을 걸어서 결과를 만들고 싶으면, "if... Then... Elseif... Then... Else... End if" 형태를 사용하면 된다. Sub 서브루틴명() If (조건문1) Then (원하는 결과) ElseIf (조건문2) Then (원하는 결과) Else (그 외의 경우 원하는 결과) End IfEnd Sub 조건문을 이용한 수익률이 높은 종목 찾기데이터 입수(KRX정보데이터 시스템)국내 ETF시세는 KRX정보데이터 시스템(http://data.krx.co.kr/)에서 아래 그림과 같이 찾을 수 있다. 2023년 7월 25.. 더보기
엑셀 VBA 실행 버튼 만들기(Active X 컨트롤 삽입) Active X 컨트롤 삽입하기엑셀파일의 VBA를 매번 Alt+F11 버튼으로 VBA를 직접 켜서 실행하는 것은 상당히 불편한 일이다. 액티브 X 컨트롤을 삽입해서 이런 불편함을 쉽게 해결할 수 있다. 먼저 버튼으로 쓸 Active X 컨트롤을 아래 그림 1과 같이 개발도구 -> 삽입 -> Active X 컨트롤 메뉴를 통해서 삽입해 준다. 삽입된 Active X 컨트롤을 클릭한 후 상단 개발도구-> 속성 버튼을 클릭하면 Active X 컨트롤 속성을 설정해 줄 수 있는데, 컨트롤의 이름과 Caption을(화면에 보이는 이름) 바꿔줄 수 있다. 그 외에도 Active X 컨트롤의 색깔이나 캡션의 글꼴, 글자크기 등을 아래 그림 2의 속성에서 바꿔줄 수 있다. Active X 컨트롤과 VBA 코드 연결하기.. 더보기
엑셀 VBA 딕셔너리(Dictionary) 기능 사용하기 딕셔너리 사용: 참조 추가먼저 엑셀 VBA 사용해서 특정 셀에 값 넣기 에서 살펴본 것처럼 엑셀 VBA를 켜고 module을 삽입한다. 딕셔너리 사용을 위한 참조 변경딕셔러리 기능을 사용하기 위해서는 윈도우에서 제공하는 참조 라이브러리를 추가해야 한다. 오피스 추가기능을 가져오는 건데 컴퓨터에 내장되어 있는 것을 가져온다고 생각하면 된다. 아래 그림 1과 같이 추가하면 되고 추가하는 라이브러리 이름은 Microsoft Scripting Runtime이다. 딕셔너리 정의하기딕셔너리를 사용하기 위해서는 딕셔너리를 하나의 객체로 정의해야 한다. 따라서 아래와 같이 "딕셔너리"라는 변수를 Object로 정의하고 CreateObject 함수를 사용해서 Scripting.Dictionary 객체를 생성한 다음 그 .. 더보기
엑셀 VBA 데이터 반복문(for) 사용하기 반복문 만들기(for 사용)엑셀 VBA의 반복문은 "do... loop"를 사용해서 만들 수도 있고 for 를 사용해서 만들 수도 있다. "do... loop"도 사람들이 많이 쓰는 구조이긴 하지만 작은 데이터 상 오류가 있을 때 무한반복이 자주 발생하기 때문에 최대 작업 수를 지정할 수 있는 for 문이 조금 더 좋다. for 문의 기본적인 구조는 아래와 같다.  Sub 서브루틴명()for i = 시작숫자 to 마지막숫자 ... next sub 반복문을 이용한 국내 ETF 종목 찾기국내 ETF시세는 KRX정보데이터 시스템(http://data.krx.co.kr/)에서 아래 그림과 같이 찾을 수 있다. 해당 데이터를 엑셀로 받은 뒤 xlsm 형식의 다른 이름으로 저장한다. 이제 VBA를 넣기 위해서 .. 더보기
엑셀 VBA 사용해서 특정 셀에 값 넣기 엑셀 VBA(Visual Basic for Applications) 실행하기 엑셀에는 무수한 확장성이 있는데, 그중 가장 유용한 점은 엑셀 파일에 코딩을 넣을 수 있다는 점이다. 최초 엑셀을 설치했을 때는 안 보일 수도 있지만 아래와 같이 파일-> 옵션-> 리본 사용자 지정에서 개발도구를 활성화하면 아래와 같이 Visual Basic이 활성화된다. 해당 버튼을 클릭하면 엑셀에 코딩을 입히는 화면에 들어갈 수 있다.(단축키 Alt+F11) 모듈 만들기 Visual Basic에 들어가면 아래와 같은 까만색 화면이 뜨는데 왼쪽 파일명 부분을 "우클릭"하여 삽입-> 모듈을 클릭하면 기본 모듈을 하나 만들 수 있다. 클래스 모듈이라는 옵션도 있는데, 복잡한 코드를 구조화할 때 유용한 기능이다.(클래스를 만들어서 .. 더보기

반응형