Programming WorkShop
VBA+XL 기본 온라인참고서
HOME
신규등록
081
082
083
084
085
086
087
088
089
090
VBA
VB편집기
명령문(Statements)
Sub|Function 프로시져
변수(Variables)
명시적|묵시적 선언
Dim|Static|Private|Public
변수의 타입과 크기
매개변수(Parameters)
상수(Constants)
배열(Array)
표현식(Expressions)
조건문(Conditional Structure)
If ~Then~End If
Select Case~End Select
순환문(Looping Structure)
For~Next|For Each ~Next|UBound()
Do~Loop While|Do~Loop Until|
Do While~Loop|Do Until~Loop
VBA제공 주요함수
문자열다루기
문자열과 배열다루기
날자와 시간_1
날자와 시간_2
I/O함수로 화일다루기
I/O함수로 텍스트문서만들기
With~End With Block
디버깅요령
매크로기록기
Class Module
User Defined Object
Event() RaiseEvent
사용자정의 변수(Type변수)와 비교
WithEvents
Application오브젝트의 Event활용
Chart오브젝트의 Event활용
엑셀프로그래밍이 필요한 이유
Excel
엑셀과 VBA의 만남
오브젝트는 무엇인가?
집합체(Collection)오브젝트
Parent오브젝트
Range오브젝트
Range오브젝트의 중요성
셀들과 행들과 열들
떨어져있는 범위
다양한 정보가 들어 있는 범위
현재셀에 인접한 범위
현재시트에 정보가 있는 범위
현재범위에서 각방향으로 마지막범위
현재셀의 전체열이나 행
수식이 참조하는 셀
셀을 참조하는 수식이 있는 셀
셀에 메모삽입과 메모의 서식
범위의 정렬,부분합,그룹요약의 활용
범위의 유효성검사목록의 활용
콤보상자를 활용하여 조건부서식
콤보상자를 활용하여 다중 조건부서식
ListObject를 활용하여 목적하는 작업후 다시 Range로 변환
WorkSheet
워크시트만들기
워크시트와 Range의 응용
여러시트를 한장의 시트로 요약
워크시트의 중요한 속성과 메소드들
시트숨기기,CodeName속성
Select|Activate의 차이
여러장의 시트를 한꺼번에 처리
숨겨진 시트의 처리
시트와 범위를 순환하면서 처리
시트의 복사와 인쇄
WorkBook
통합문서열고
유용한 ThisWorkBook속성으로 접근
문서존재여부확인
통합문서만들고,저장하고,닫기
I/O함수를 통한 통합문서(화일)다루기
I/O함수를 통한 통합문서를
텍스트문서로 변환하기
텍스트문서를 엑셀로 불러들이기
UserName|CodeName|
WorkBook_BeforeClose|WorkBook_Open|Now()
Application
ActiveCell|ActiveSheet|ActiveWindow|
ActivePrinter|CellDragAndDrop|DisplayFormulaBar|
DisplayStatusBar|ShowWindowsInTaskbar|
OLEObjects.Add|AddOLEObject|Checkboxes
Application.Caller|Application.Wait|ColumnWidth|
Array()|BorderAround|HorizontalAlignment|Buttons.Add
|Characters|Caption|OnAction|Val()|
Replace()|Round()
Application.EnableEvents|Worksheet_Change|Goto
EnableEvents|End|SelectionChange|
OnKey|MoveAfterReturnDirection|
Intersect|End|EntireColumn
Application.OnKey|Select|Collection|
Offset|Resize|CurrentRegion|New|Exit For
Name|Names.Add|Cells|Like|
RefersTo|Delete|On Error GoTo|Int|Rnd|
Find|InStr|Visible=xlVeryHidden
WorkBook_BeforeClose|WorkBook_Open|FollowHyperlink
소루션관리를 위한 정보를 어디엔가 보관하고 싶을때..
Window
SplitRow|SplitColumn|Validation|FreezePanes
DisplayFullScreen|CommandBars|Enabled
|Zoom|NamedParameters|Borders|LineStyle
|Application.InputBox|Address|TypeName()|BorderAround
CommandBar
명령줄접근,생성,수정
명령줄콘트롤과 타입
명령줄과 콘트롤리스팅
명령줄콘트롤의 상하관계와 FaceID
명령줄콘트롤의 아이콘찾고 활용
명령줄에 타입별 콘트롤삽입
명령줄의 응용
Range오브젝트의 Filter,Sort
명령줄 모두 없애기
명령줄을 보호모드로 만들기
단축메뉴명령줄과 휠터,정렬
상위범위의 정보를 읽고
하위범위 단축메뉴만들기
Controls
양식메뉴콘트롤과 콘트롤도구상자콘트롤
VBA:사용자정의 변수의 활용
첵크박스와 옵션버튼
옵션버튼,텍스트박스,스피너,
콤보상자,명령버튼을 활용한 단어장
리스트상자에 도형타입상수채우기
Shape/도형상수리스트요약
Calendar OlEObject Control
TreeView OlEObject Control
Subtotal With TreeView
Refresh ComboBox List On Run
Shape
파워포인트에서의 도형
Shape|FillFormat|Fill|OneColorGradient|
Array|Split|ForeColor|BackColor|ScrollBar|
OptionButton|Transparency|TwoColorGradient|
Shape|CodeName|Fill|FillFormat|ForeColor|
ColorFormat|Line|LineFormat|Shadow|
ShadowFormat|Split|InStr|UCase|Len|Characters|
OffsetX|OffsetY|Transparancy|Replace()
Shape|Top|Left|IncrementTop|IncrementLeft|
Rotation|IncrementRotation|String()|Item|
Shapes.Range()|ShapeRange
Type|AutoShapeType|TypeName()|
Application.Wait|SelectAll|TimeValue
연결선도형|AddConnector
UserForm
UserForm,콤보상자와 리스트상자
Mouse_move 이벤트
Chart
챠트의 Series오브젝트관찰
챠트에 데이타소스를 자동전달
SetSourceData메소드로 자동화|ChartType
Combination Chart|보조축(Secondary Axis)
계열별로 ChartType변화
누적막대챠트|파이챠트
누적바챠트|Gantt챠트
챠트 옵션
범위선택에 따라 챠트의 변화
챠트에 도형붙여넣기|여러개의 챠트
하나의 챠트에 하나의 데이타계열
하나의 챠트에 여러개의 데이타계열
챠트 생성하기
여러개의 챠트들로 모든 정보를 한번에
셀을 더블크릭하면 챠트가 갱신
PivotTable
PivotWizard
PivotCache
PivotFields/PivotField
Pivot을 다루기 위한 Menu만들기
별도의 메뉴로 피봇다루기
PivotField의 Function속성
날자정보휠드를 페이지방향으로 할때..
체크박스콘트롤을 활용하여 날자그룹핑
날자 그룹핑휠드 만들어 활용
크래스모듈을 활용하여 간편하게
크래스모듈로 콘트롤과 피봇테이블생성
MACRO 4.0
Excel Classic
Condition|Loop
External Library
New|CreateObject
FileSystemObject|FileSearch
Dictionary|Class Module|Enum|Type
Word|Synonyminfo Object
DAO
Range.CopyFromRecordset
DataBase.Table.Field.Property
Flat Tables과 Relational Tables
Office Data Connection(odc화일)만들기
DAO로 억세스테이블을 UserForm에 부르기
Access Table의 이해
Field명을 잘 챙기자
Access 쿼리디자인창의 활용
여러 테이블정보에서 챠트
Image콘트롤에 Chart표현하기
UserForm에 RunTime때 콘트롤추가하기
직원버튼을 크릭하면...
크로스탭쿼리
XML
XML|ListObject
XML|억세스로 XML|스키마생성
XML|IO함수의 활용
XML|XMLDom라이브러리의 활용
ADO
ADO|Start
ADO|ConnectionString,AbsolutePosition
ADO|Recordset DISTINCT
ADO|Excel As DB & XML
ADO|ADO EXT의 참조
Solution
나의 성격은?
영어숙어사전
버튼과 콤보상자
시트에 이름지어 활용
관계형테이블로 분산하기
콤보상자에 여러정보담아서 숨기기
UserForm과 ClassModule
UserForm의 콘트롤에 정보 옮기기
새로운 정보의 입력환경만들기
새로운 숙어의 저장
다양한 모드전환에 따른 인터페이스
입력,삭제,수정의 편집끝내기
Game
Tetris_01
Tetris_02
Tetris_03
Tetris_04
Tetris_05
Tetris_englishWord
Essay
Controls..Controls..Controls...
Macro & Micro
Are You Hungry??!!
Early Binding Or Late Binding??!
짜장면과 자장면
Chart|Line,Bar,Column,Bubble,XY Chart
|ChartType|Legend|Location|
|SetSourceData|Iif()|Caller|Name|
ChartType
챠트는 여러가지 타입이 있어서 표현하고 싶은 목적에 따라서
적절히 선택하여 표현하는 테크닉이 필요하다
Chart Type
Sub Type
Area/영역형
6
Bar/가로막대형
6
Column/세로막대형
7
Line/꺽은선형
7
Pie/파이형
6
Doughnut/도넛
2
Radar/방사형
3
XY(Scatter)/분산형
5
Surface/표면형
2
Bubble/거품
4
Stock/주식형
4
Cylinder/원통형
7
Cone/원뿔형
7
Pyramid/피라밋형
7
챠트의 타입이 역전앞 식당의 메뉴만큼이나 다양하다
무얼 먹어야 할지 헷갈린다
어떤 타입의 챠트를 선택하여야 하느냐?
초보님들이 대개 헷갈려하는 것이 당연하다
선택을 하려면 각각의 성질머리를 잘알아야 선택이 가능하다
앞으로 페이지를 나가면서 하나,하나 특징들을 살펴 보도록 하자
Chart오브젝트는 ChartType속성이 있고
이것만 건드려주면 챠트의 모양이 바뀌는것이다
아래의 그림은 비슷한 유형의 챠트간의 ChartType속성을 프로그래밍적으로
바꿔 본것이다
위와 같이 Bar,Line,Column등의 챠트는 같은 정보를 갖고 다른 시각적표현을
한것이다
그러나 예를 들어서 아래의 그림과 같이
동부매출이나 서부매출은 데이타의 성격이 같은것이다
같은 성격의 데이타를 서로 비교하여 볼수 있는 방법으로서
Column Chart나 Bar Chart가 아주 좋은 선택일것이다
그러나 아래와 같은 테이블의 경우
아래의 그림과 같이 표현한다면
금액의 단위가 작은 광고비는 눈에 잘 보이지도 않는
아주 보기 흉한 챠트가 될것이고 분석의 의미가 별로인 챠트가 된다
챠트의 타입이 많다는것은 그냥 보기 좋으라고 준비된것이 아니다
분석하는 목적에 따라서 선택과 활용이 틀려지는것이다
매출정보와 광고비의 데이타는 서로 비교할만한 성격의 것
(같은 유형의 정보가 아니다)은 아니지만
광고비를 어느정도 지출하느냐에 따라서 매출에 어떤 영향을 주는가??
라는 관점에서 데이타를 비교해 보아야 할것이다
이럴때 서로의 데이타의 상관관계를 비교하여 보는 챠트로서는
XY Chart(Scatter Chart,분산형챠트)가 좋은것이다
분산형챠트를 그려보면 광고비가 얼마일때 매출이 얼마정도다 될것인지
예측을 할수 있는 시각적 도구가 되기도 하는것이다
이것은 월에 대한 정보는 관계없이
광고비와 매출의 상관관계를 X축과 Y축에 각각 값축을
둔것이다
X축이나 Y축이나 모두 Value Axis(값축)가 되는것이다
Category Axis(항목축)은 표현되지 않은것이다
만약 월을 Category Axis(항목축)으로 X축에 두고
Y축에 Value Axis(값축)에 광고비를 둔다면
매출(또 다른 값축)을 어디에 표시하면 좋을까???
이때 Bubble Chart가 아주 좋은 역활을 한다
아래와 같이
Chart오브젝트의 SetSourceData메소드를 사용하여
아래와 같은 자동화를 할수도 있다
Series오브젝트의 Formula속성에 수식을 전달하는것과 다르지만
목적은 같으니까..비교해 보시면 좋을것이다
아래의 화일에서는
SetSourceData메소드로 챠트의 쏘스데이타를 변경하거나 설정한다
Name오브젝트가 편리하다는것을 알고
IIf함수,Caller속성같은 기초적 테크닉을 자꾸 연습하는것이 좋고
변수나 오브젝트의 속성등의 명칭을 통일시키는 습관은 코드를 간결하게 하고
Legend오브젝트에도 Location속성이 있군!!
ChartType속성을 바꾸면 챠트의 챠트종류가 바뀌고..
Value Axis(값축)와 Category Axis(항목축)에 대한 감각을 자꾸 느껴보는것이 좋다
Chart SetSourceData Legend ChartType.