PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2019/08/01 23:33:49
Name 산양
Subject [일반] 배워서 남주네) 엑셀과 vba를 이용해 공정관리 시트 구현하기 - 1 (수정됨)

배워서 남주네) 엑셀과 vba를 이용해 공정관리 시트 구현하기 - 0

pgr21.com/?b=8&n=82011
*엑셀 파일은 윗 링크에 있습니다.


안녕하세요. 시간당 생산성을 높여 생산량을 늘려보고 싶은 (전)학생산양입니다.


이번 편에서는 본격적인 vba 코드 리뷰를 하기 전에 시트를 어떻게 건드려놨는지 간단히 뜯어보겠습니다.


1. 기본적인 레이아웃입니다.

1

1) 연도를 갱신하는 곳입니다. 연도를 입력한 뒤 갱신하면 해당 연도에 맞게 토/일을 빨간 색으로 칠해줍니다.
해당 파일에서 크게 의미있는 부분은 아니지만 저는 vba 내부에서 연월일을 다뤄보고 싶어서 추가했습니다.

2) 해당 월로 이동하는 곳입니다. E1셀에 1~12까지의 숫자를 입력한 뒤, 월 이동 버튼을 누르면 우측 월단위 셀로 이동하는 기능을 구현했습니다. 월에 해당하지 않는 숫자를 입력할 경우 데이터 유효성에 걸립니다.

3) 좌측에 새롭게 추가한 공정 일정을 우측 차트에 반영하는 곳입니다. 클릭시 가장 마지막 공정의 월을 찾아 해당 월로 스크롤합니다.

4) 기본적으로 셀에 음영이 들어간 곳을 제외하면 입력이 불가능하게 구현했습니다. 이를 엑셀에서는 '시트 보호'라고 하는데, 뒷 부분에서 다시 설명하겠습니다.

5) 일정을 가시화한 막대그래프입니다. 파란색은 기존 일정, 붉은색은 일정대비 진도율입니다. 3)의 새로고침을 누르면 차트가 가장 마지막 행에 있는 공정의 월을 찾아 해당 월로 스크롤합니다.



2. 내 엑셀에 무슨 지거리를 했길래 입력이 안되는데요

2

1) 시트 보호 기능을 걸었습니다. 
아무것도 건드리지 않은 엑셀은 [시트보호가 꺼져있어서] 셀 서식-보호 탭에서 잠금 기능을 활성화해도 모든 기능에 접근권한이 있기 때문에,
시트 보호 기능을 활성화 한 뒤 잠금 기능을 활용할 수 있습니다.
여기서 어줍잖게 제가 설명해봐야 다른 곳에서 잘 설명해놨으니 저는 기본적인 용례만 간단히 소개한 뒤, 자세한 내용은 검색해서 보시면 좋을 것 같습니다.


2) K열과 L열 사이에 틀고정 기능을 활성화했습니다.
틀 고정 기능은 현재 활성화한 셀 기준 좌상단 화면을 고정하여 스크롤되지 않게 하는 기능입니다. 공정관리 시트는 공정 일정과 가시화된 데이터를 비교해가면서 봐야 효율이 오르니 L열부터 이동하게 만들었습니다.

L, M, N열은 우측 차트에 쓸 값을 참조해둔 열입니다. 관리할 때 이런 데이터는 굳이 볼 필요가 없으니 접어두는 편이 깔끔하겠지요. 스포를 하자면 이 숨기기 기능때문에 코딩하면서 개고생을 한 경험이 있습니다. 이 이야기는 나중에 다시 말씀드리도록 하겠습니다.



3. 입력 양식은 어떻게 일정하게 만들어?

3

우클릭 - 셀 서식을 클릭하면 이렇게 뜹니다.

저처럼 굳이 사용자 지정 탭에서 형식을 고정하지 않더라도 다른 형식을 이용할 수 있겠습니다.
사용자 지정에 있는 여러가지 요상한 문자들이 궁금하다면 [엑셀 와일드카드 문자]로 검색하면 됩니다.

여기서도 월에 데이터 유효성을 걸었던 것처럼 입력 형식을 제한할 수 있습니다.

* 데이터 유효성 검사는 보통 여러명이 돌려가며 쓰는데 입력 패턴이 다양하면 후처리가 매우 곤란해지는 파일]에 사용하면 매우 유용합니다. 



4. 틀고정과 숨기기

4
mybpstation station finder




이렇게 공정관리표에 적용한 기능들을 간단하게 둘러보았습니다.

다음 편부터 본격적으로 vba 코드 리뷰를 해보겠습니다.




* 지난번 글에서 파이썬 이야기가 잠깐 나와 그 이야기를 해보겠습니다.

1. vba보다 파이썬이 쉽나요
- 저도 지금 파이썬을 같이 공부하고 있습니다. 둘 다 극에 달한 입장이 아니다보니 섣부르게 평가하기 어렵다라는 점은 잘 알고 있지만, 감히 코더의 입장이 아닌 단순 업무활용을 위한 사용자의 입장에서만 이야기해보겠습니다.

- 언어 자체로는 저 역시 파이썬이 더 쉽다고 생각합니다. 변수 선언, 직관성, 배열array에 대한 접근성은 훨씬 편하더군요. 특히 딕셔너리형은 배열에 대한 깊은 이해가 없어도 쓸 수 있다는 게 참 매력적이었습니다. 풍부한 레퍼런스 및 입문서도 장점이었구요.

- 그러나 vba는...
1. [내가 코딩의 키읔도 몰라도 마우스로 코딩이 가능하다]는 점이 굉장히 매력적입니다.

매크로 기능을 이용하면 1) 일단 컴퓨터가 짜주는 코드를 보며 역공학을 할 수도 있고, 2) 복잡한 내부 신택스를 다 알 필요 없이 내가 구현하고자 하는 코드뭉치를 따낼 수 있습니다.

물론 손코딩에 비하면 매크로는 굉장히 비효율적이고 느리긴 하지만, 내가 직접 하는 거 보다는 빠르고 편하지요. 


2. 엑셀과의 연동성도 매우 높다보니, [엑셀의 특정 셀들을 vba의 변수 취급해서 꾸역꾸역 기능 구현]을 해낼 수 있다는 점 역시 매력적이라 생각합니다. 변수 선언과 활용에 익숙해지면 빛이 바라는 장점이지만, 초심자들에게 이만큼 강력한 기능을 보여주는 언어는 없다고 생각하구요.


- 이 이야기는 매크로로 구현이 가능한 부분까지에 한정합니다. 예를 들어 매개변수와 함수, 배열, 개체변수 이런 것들은... 좀..

* 파워포인트가 엑셀에 비해 vba나 매크로 관련 언급이 없는 게 바로 개체변수 때문이라고 생각합니다. 얘들은 매크로로 컴퓨터가 코드를 짜주지 않거든요. 그러니 손코딩을 해야하는데 그럴거면 파이썬을 배우는 게 빠른걸요.


- 따라서, 정리해보면...

매크로 -> 셀 참조 방법 익혀서 매크로 일부 수정 -> if나 select case같은 논리문 익혀 조건 지정 -> for / for each / do.. loop 같은 반복문 익혀 필요한 부분까지 실행하게 구현

이 단계까지는 vba쪽 접근성이 훨씬 좋다고 생각합니다. 이 뒤부터는 뭐... 필요하면 그때그때 배워나가는거죠.



2. 왜 자꾸 영어로 된 사이트만 말하세요
- 제가 사이트 고르는 기준은 두가지입니다. 1) 영문일 것, 2) 텍스트일 것. 왜냐구요? 그래야 월급도둑질을 하기가 좋아서요. 엑셀 관련 스크린샷이 떠있다면 더더욱 자신감이 생깁니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
홍승식
19/08/01 23:43
수정 아이콘
선생님 교재용 엑셀파일을 첨부로 올려주실 순 없으신가요? (굽신굽신)
19/08/01 23:43
수정 아이콘
최상단부 링크 0번 글에 있습니다
홍승식
19/08/01 23:44
수정 아이콘
감사. 압도적 감사. (꾸벅~)
19/08/02 08:18
수정 아이콘
(수정됨) 실제 작업은 DB에서 이뤄지는 데이터를 화면에 보여주는 일을 프로세스화 하고 개발중인 미생1인데, 엑셀로 할때 더 편한 경우들이 많습니다.
VBA만 잘하면 뭔가 될거 같은데 막상 그 시작점에서 그걸 못하다보니 매번 그냥 몇개 함수로 이거저거 하고 끝나게 되는게 너무 아쉬운 그런게 있죠..

잘 읽어보고 참고해서 공부를 해볼까 합니다. 감사합니다.
비상하는로그
19/08/02 10:10
수정 아이콘
와 감사합니다.
마침 공부 해야하나 찾아보고 있었는데 감사합니다
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
82310 [일반] 맛집을 찾는 방법 [30] 치열하게14163 19/08/21 14163 11
82304 [정치] 조국 논란 관련 저의 심정을 백프로 표현한 글 [84] aurelius12055 19/08/21 12055 9
82301 [정치] 내로남불. 좋은 이야기입니다. 다만 진짜 내로남불이 뭔지 고민해봤으면 좋겠다는 생각이 듭니다. [60] 쿠루쿠루8984 19/08/21 8984 6
82300 [정치] 폐기된줄 알았던 조국 딸의 자소서가 남아있었군요 [77] 파이어군16505 19/08/21 16505 27
82296 [정치] 조국의 저서와 트윗 내용 모음 [39] LunaseA9471 19/08/21 9471 23
82295 [정치] 하나 둘씩 커밍아웃하는 내로남불 정치인들 [99] Bulbasaur10680 19/08/21 10680 20
82293 [일반] 러브크래프트 소설 입문 가이드 [88] Farce16108 19/08/21 16108 28
82290 [일반] 조국이 정말 무섭긴 무섭네요. [59] 덴드로븀12417 19/08/21 12417 1
82289 [일반] 아베의 개헌이 사실상 무산되었습니다. [38] bifrost10284 19/08/21 10284 12
82288 [일반] 현재 아마존에서 큰 불이 나고 있다고 합니다. [46] 홍승식11962 19/08/21 11962 4
82287 [일반] [국제] 프랑스와 러시아, 전략적 제휴? [12] aurelius6257 19/08/21 6257 2
82284 [정치] 조국딸관련 법무부·高大거짓해명들통+서울대장학금+물리학회상 [410] 차오루19422 19/08/21 19422 27
82279 [일반] 다들 학계와 상관없이 논문 쓴 이야기나 풀어볼까요? [97] 미소속의슬픔11298 19/08/20 11298 20
82275 [정치] 조국 딸 관련, 단국대 공식사과 및 조사착수+내용추가 [116] 차오루14876 19/08/20 14876 12
82274 [정치] 불투명해진 사법개혁, 그 개혁의 지지자의 왼쪽 진영에 대한 당부의 말 [61] 종합백과7614 19/08/20 7614 28
82270 [일반] [자작] 달랑베르시안 3# ~만화와 소설 그 어딘가쯤 존재하는 이야기~ -최종화- [9] 태양연어3019 19/08/20 3019 4
82268 [일반] (번역) 인구 감소를 기뻐하며. [46] OrBef11913 19/08/20 11913 18
82265 [일반] (데이터 주의) 똑딱이로 은하수 찍어보려고 한 얘기.. [13] 포니5483 19/08/19 5483 13
82261 [일반] [단상] 근대유럽 계몽주의 발흥과 몰락 [8] aurelius6635 19/08/19 6635 28
82260 [일반] 공수도에 대하여 [28] 성상우7502 19/08/19 7502 4
82259 [일반] 홍콩의 재벌이 신문 광고를 냈습니다. [77] Leeka22508 19/08/18 22508 32
82257 [일반] 한국(KOREA)이 최강이 되는 법 [41] 성상우8238 19/08/18 8238 8
82253 [일반] [연애] 좋아하게 되는 순간 이미 진 건가..에 대해서 [23] 저팔계10448 19/08/18 10448 10
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로