2월, 2020의 게시물 표시

(VBA) 012 - Cells 를 사용한 상대좌표 활용

이미지
#毎日育ちゃん可愛い大会 (설명자료) pptx파일 (예제파일) xlsm파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) VBA 를 사용하다보면 , ActiveCell 을 선택 후에 영역을 지정해야하는 경우가 왕왕 있죠 ! 2) Cells 를 모르면 매번 주소를 만들어서 사용해야 하는 단점이 있습니다 . 3) 하지만 Cells 를 사용할 수 있으면 , ActiveCell 이나 Range 를 지정하고 , 필요한 만큼 선택 하여 사용할 수 있습니다 ! ★ 어떤 경우 사용합니까 ? 1) for, Do~Loop 등을 사용한 반복문을 사용하여 데이터나 이미지 여러 개를 한 번에 옮겨야 하는 경우 가 있습니다 . 2) 이를 매번 주소를 입력하여 처리하는 것은 반복문 작성에 불리하게 됩니다 . 3) 그런 경우 , ActiveCell, Range, Offset 과 Cells 를 사용한다면 손쉽게 처리 할 수 있습니다 ! ★ 어떻게 사용하는가 ? 1) ActiveCell, Range 뒤에 붙여서 사용할 수 있습니다 . 2) Offset 뒤에 붙여서도 사용할 수 있습니다 ! 3) 단독으로도 사용 가능합니다 ! 이 경우 , 상응하는 절대좌표로 인식합니다 ! 4) Range (Cells( 시작행 , 시작열 ), Cells( 마지막행 , 마지막열 )) 로 사 용 ! ( 中谷育 ちゃんのイメージ について) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます。 何か問題があったら、教えてください。 直ちに処理します。 (About translation this material to the other languages) If you need this information with other language, then let me know about that. I will do my best to translate this material to language you as

(VBA) 011 - 만든 함수에 변수(Parameter)넣기

이미지
#毎日育ちゃん可愛い大会 (pptx파일) pptx파일 (xlsx파일) xlsx파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 함수를 쪼개서 만들다보면 , 행이나 열을 제어하는 인자를 전달해야 할 때가 있습니다 . 2) 같은 기능을 행이나 열을 통해 반복할 때 사용하는 기능입니다 ! 3) 예를 들자면 , 한 열에 대한 기능을 만들어놓고 , 반복문을 통해 옆의 열로 이동하면서 처리할 때 사용하면 유용하죠 ! ★ 어떻게 생겼는가 ? 1) 아래와 같이 만든 Sub 함수의 옆의 괄호를 사용합니다 ! 2) 지금까지는 Sub 나 Function 에 변수를 넣지 않았는데 , 이제는 사용할 때가 되었네요 ! 1 2 3 4 5 Function data_input(j  As  Integer)     ActiveCell.Offset( 0 , j).Value  =  j End  Function cs ★ 어떻게 사용하는가 ? 1) 이렇게 매개변수 (Parameter) 가 들어가면 , 단독으로는 실행이 되질 않습니다 ! 2) 이미 반복실행하거나 , 외부에서 제어하여 사용할 것으로 계획한 것 이기 때문입니다 . 3) 그렇기 때문에 아래와 같이 제어인자 입력부 -> 데이터 처리부가 세트가 됩니다 . ( 中谷育 ちゃんのイメージ について) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます。 何か問題があったら、教えてください。 直ちに処理します。

(VBA) 010 - 이름 비교 후 데이터와 이미지를 복사하는 모듈 만들기

이미지
#毎日育ちゃん可愛い大会 (pptx파일) pptx파일 (xlsx파일) xlsm파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 일반적으로 회사에서는 데이터와 이미지를 필터라는 기능을 이용해서 수동으로 처리하고 있습니다 . 2) 일반적으로 Serial labeling 을 합니다만 , 이걸 다시 처리하는 것도 Loss, 제대로 안되면 다시하는 것도 Loss 입니다 . 3) 어째선가 데이터가 수백개가 넘어가고 이미지가 제대로 pre-processing 되어 있지 않으면 Human error 가 다발합니다 . 4) 그런 관점에서 자동 비교 후 데이터 & 이미지 카피가 필요하게 됩니다 . ★ 오늘은 난이도가 조금있는 주제가 되겠습니다 ! 1) 제가 회사생활하면서 직접 만들어 본 주제를 일반문제에 해결할 수 있도록 간략화하여 설명드리겠습니다 . 2) 한 가지 주제에 대한 것이 아니라 복합적 주제를 동시에 다루니까 조금 어려우실 수도 있어요 ! 3) 전체 코드를 기능별로 묶어드릴 테니 , Divide & Conquer 관점에서 한 번 확인해봅시다 ! ★ Divide & Conquer 를 해봅시다 ! 1) 첫 번째는 역시 기능을 쪼개서 메쏘드를 만든 뒤 하나의 함수로 합치는 것이겠죠 ! 2) 여기선 기준 데이터 Sheet 를 먼저 옮기고 , 그 다음에 비교 데이터 Sheet 에서 같은 이름이 있을 때 결과 Sheet 로 옮기는 방법을 사용해보려고 합니다 ! ★ Excel Module 을 구성해봅시다 ! 1) 예시를 위해 아래와 같이 Excel Tab 을 준비해서 진행하려고 합니다 . 2) Option sheet 에서는 사용할 유저의 편의를 위해 Sheet 이름과 시작점을 바꿀 수 있도록 몇 가지 설정을 넣습니다 . 어째선가 이런식으로 만들어 두는 편이 회사에서 범용으로 쓰기 편했다고 생각합니다 . 3) 마지막

(VBA) 003 - Cell 선택을 통한 이미지 복사

이미지
#毎日育ちゃん可愛い大会 (설명자료) pptx파일 (예제파일) xlsx파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 회사에서 데이터를 처리하다보니 이미지 복사를 해야하는 경우가 있었습니다 . 2) 이런 경우 엑셀의 Cell 을 선택하여 복사 - 붙여넣기를 흉내내어 매크로로 처리하는 방법 이 있습니다 . 3) 이전 004 세션에서 설명드린 것과 같이 object 를 선택하여 처리하는 방법도 있겠습니다만 , Object 선택 처리방식도 분명 장단점이 있기 때문에 매크로 기록을 통한 이미지 복사 를 말씀드리려고 합니다 . ★ 매크로 기록을 사용해보자 ! 1) 매크로 기록은 절대좌표와 상대좌표를 이용하여 사용할 수 있습니다 . 2) 절대좌표를 사용하여 기록하면 , 기록했을 때 사용한 Cell 위치를 기준으로 처리하게 됩니다 ! 3) 상대좌표를 사용하여 기록하면 , 현재 선택된 Cell 위치를 기준으로 처리하게 됩니다 ! ★ Cell 선택을 통해 이미지를 복사할 때는 이미지보다 크게 Cell 을 잡아야 합니다 ! 1) 이미지 전체를 포함하지 않으면 , 복사가 되질 않습니다 ! 2) 그래서 이미지보다 크게 Cell 을 선택하여 매크로를 기록해 볼 거에요 ! ★ 상대 참조와 for 문을 사용하여 이미지 반복처리도 가능 ! 1) 상대좌표를 사용하면 현재 선택된 Cell 의 주소를 기준으로 행동을 기록 하여 줍니다 ! 2) 잘 생각해보면 , 주기적인 처리는 for 문과 같이 반복문을 사용할 수 있을 것 입니다 . 3) 그렇게 해서 우리는 주기적 Image 처리를 할 수 있게 되는 것입니다 . ★ VBA Code 에 For 문을 추가해주면 되겠죠 ! 1) VBA 편집기를 통해 기록된 Code 를 보면 , 앞선 행동들이 기록이 되어있습니다 . 2) 상대좌표니까 ActiveCell 을 기준으로 기록해놨네요 ! 3) 여기에다가 반복문 For 를 붙이면 한 번에 이미지

(VBA) 009 - 닫힌 파일에서 데이터 읽어오기 (ExecuteExcel4Macro)

이미지
#毎日育ちゃん可愛い大会 예시의 매크로 파일을 테스트 할 때는 저장된 폴더를 사용하실 폴더로 꼭 바꿔주세요! (pptx파일) pptx파일 (xlsx파일) 예제데이터파일   Macro파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 행이나 열 , 또는 Sheet 과 같이 다른 특성을 가지는 1,2,3 차 데이터배열에 대한 처리 방법을 지금까지 설명드렸습니다 . 2) 그럼 이제 , 다른 파일에서 데이터를 읽어올 방법을 알아볼 필요가 있습니다 . 어째선가 회사의 데이터를 처리하다보면 , 주기적인 이름의 엑셀 파일 특정 Sheet, Cell 에 있는 경우가 많았습니다 . 3) 엑셀에서 이미 열려있는 파일의 참조는 ‘=‘ 을 사용하면 가능하지만 , 닫힌 파일은 데이터를 읽지 못합니다 . 4) 그래서 이를 처리하기 위해 VBA 의 ‘ExecuteExcel4Macro( 주소 )’ 를 사용합니다 ! ★ 다른 파일의 참조는 어떻게 합니까 ? 1) 열려 있는 다른 파일의 데이터를 읽는 방식은 ‘=‘ 을 입력하고 해당 Cell 을 클릭하면 됩니다 ! 2) 그러면 아래와 같이 (=‘ 파일이 있는 폴더 [ 파일명 ]Sheet 명 ’!Cell 주소 ) 의 형태로 기록 이 됩니다 . ★ 닫힌 파일에 대해서는 INDIRECT 는 사용이 되질 않습니다 ! 1) INDIRECT 로는 처리가 되질 않습니다 . 2) 어째선가 전에 사용하던 INDIRECT 를 사용하고 싶지만 , 사용이 되질 않습니다 . 검색을 해봐도 안된다는 답변만 있네요 ! 3) 파일이 하나 두 개라면 , 이전과 같이 ‘=‘ 를 쓰면 되겠지만 , 그러면 자동화를 통한 효율화가 불가능해지겠죠 ! 4) 그래서 이를 처리하기 위해 VBA 의 ‘ExecuteExcel4Macro( 주소 )’ 를 사용합니다 ! ★ ExecuteExcel4Macro 는 어떻게 사용합니까 ? 1) VBA 의 ExecuteExcel4Macro 란 매크로 실행을

(VBA) 001- Divide & Conquer, 다단함수의 구성

이미지
 #毎日育ちゃん可愛い大会 (pptx 파일) pptx파일 (xlsx 파일) xlsx파일 ★ Divide & Conquer 컨셉과 다단함수를 사용하는 이유 1) 일반적으로 큰 문제를 한 번에 풀려고 하면 어려움이 많이 발생 합니다 . 2) 그렇기 때문에 VBA 도 큰 문제를 각 기능을 쪼개서 만들 필요가 있습니다 . 쪼개서 (Divide) 정복한다 (Conquer) 라고 합니다 . 3) 그렇다면 쪼개진 기능을 합쳐줄 필요도 있는 것 입니다 . 4) 여기서 여러 기능 (Method) 의 집합인 다단함수 (Multi-level Function) 가 등장합니다 . ( 거창하지만 별 거 아닙니다 .) ★ 왜 쪼개서 정복합니까 ? (Why we use divide & conquer concept?) 1) 예를 들어서 자동차를 만든다고 생각해봅니다 . 처음부터 다 만들려면 막막할 것입니다 . 2) 그러면 타이어 , 엔진 , 문짝 , 유리 , 에어컨 , 디스플레이 등등을 쪼개서 만들게 될 것입니다 . 그걸 또 쪼개서 다른 부품들로 만들겠죠 ! 그렇게 쪼개다 보면 결국 최소 단위까지가 나올 것입니다 . 자동차는 만들기 어려워도 간단한 유리판이나 철판은 만들기 쉽겠죠 ! 3) 그렇기 때문에 만들기 어려운 걸 쉽게 할 수 있는 방법이 됩니다 . ★ 쪼갠걸 합쳐야겠네요 ! Call 을 사용해봅시다 ! 1) 타이어만 있다고 , 유리만 있다고 , 엔진만 있다고 자동차가 되는 것이 아니죠 ! 2) 그걸 합쳐주는 (Assembly) 하는 과정도 필요합니다 . 3) 간단합니다 . 합쳐줄 함수에서 Call 을 사용해서 호출 하면 됩니다 ! ^^ 4) 합쳐준 함수를 저는 단계가 여러 개가 있으므로 다단함수 라고 부릅니다 . ( 中谷育 ちゃんのイメージ に対して) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます。 何か問題があったら、教えてくださ

(Excel) 004- 같은 행에 여러 조건이 있는 경우 처리 방법 / 식별자와 VLOOKUP

이미지
(pptx 파일) pptx파일 (xlsx 파일) xlsx파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1)행이나 열, 또는 Sheet과 같이 다른 특성을 가지는 1,2,3차 데이터배열에 대한 처리 방법을 지금까지 설명드렸습니다. 2)어째선가 데이터 로그라던가, 실험계획법을 진행하다보면 같은 행에 여러 조건과 데이터가 같이 있는 경우 가 있습니다. 3)이 때, 식별자(Finder)라는 개념을 도입하면 쉽게 처리할 수 있습니다. ★ 어떤 경우 사용합니까 ? 1)식별자를 사용하는 경우는 명확합니다. 한 행에 여러 조건과 데이터가 있는 경우입니다. 2)보통 필터를 사용하거나 해서 데이터를 수동을 처리하곤 합니다만, 제 생각에 그런 방법은 비효율의 극치이므로, 식별자와 1차원배열 처리 방법인 (HLOOKUP, VLOOKUP을 사용하면 쉽게 처리가 가능합니다. ★ 식별자가 무엇이고 , 역할은 무엇입니까 ? 1) 제가 기억력이 너무 안 좋아서 , 사용할 땐 이거 하나밖에 기억하질 못합니다 . LOOKUP은 유일한 이름을 찾는 방법! 2) 위의 키워드를 요약해보면 , ‘ 서로 다른 이름이 있으면 ’ 찾을 수 있다는 논리입니다 ! 3) 그러니까 , 각 조건이 ‘ 서로 다른 이름 ’ 을 가진다면 위의 방법을 사용할 수 있는 것입니다 . 4) 그렇기 때문에 식별자를 달아주는 것이란 , 유일한 이름을 달아주는 것 입니다 ! ★ 식별자는 어떻게 달아주는 겁니까 ? 1) 정말 간단합니다 . ‘&’ 연산자와 2) 저는 공식처럼 사용합니다 . =( 조건 1)& ”_” &( 조건 2)& ”_” &( 조건 3)&… 3) 그러면 조건은 유일한 이름을 갖게 되겠지요 . 4) 그 다음엔 VLOOKUP 을 사용해주면 되겠습니다 . ( 中谷 育 ちゃんのイメージ に対して) 本当に可愛い中谷育ちゃんのイメージが 含まれています。 ありがとうございます