NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 엑셀 매크로 프로그램의 모든것!

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 마이크로소프트의 오피스에는 엑셀 프로그램이 포함되어 있습니다. 엑셀에도 매크로가 탑재되어 있죠? 하지만, 엑셀의 매크로는 GUI가 아닌 오토핫키나 파이썬과 같이 코딩을 해야 합니다. 언어는 VB(Visual Basic)입니다. 그래서, 프로그래밍 언어를 모르는 일반인분들은 접근하기가 매우 어려운 문제가 있습니다. 업무 자동화를 원하시는 대부분의 사용자분들은 노코딩 매크로를 이용해서 직접 업무 로직을 만들고, 쉽게 수정하는데 목적이 있습니다. 그래서, 노코딩 매크로 프로그램인 엔지엠 매크로와 같은 도구를 사용합니다.

    eITgxf6.jpg

     

     

    업무 자동화 프로그램인 엔지엠 매크로에는 엑셀 및 데이타베이스 관련 기능들이 포함되어 있습니다. 코딩이 필요없고, 원하는 액션을 드래그 앤 드롭으로 쉽게 처리할 수 있습니다. 복잡하게 개발 환경을 구성하고, 프로그래밍 언어를 배워서 처리하기 보다는 이런 GUI 매크로 프로그램이 더 빠르고 쉽게 자동화 소프트웨어를 만들 수 있습니다. 당연히 유지보수도 더 쉽겠죠? 엔지엠 매크로를 이용해서 엑셀 매크로만 만들 수 있는건 아닙니다. 다양한 기능을 활용하면 웹 업무 자동화나 게임 또는 주식, 선착순과 같은 윈도우에서 할 수 있는 모든 일들을 자동화 할 수 있습니다.

    VIQGtnX.png

     

     

    엑셀 업무 자동화 매크로 학습을 위해 엔지엠 매크로를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    바탕화면에 빈 엑셀 파일을 하나 생성 해두었습니다.

    GqzCpO9.png

     

     

    스크립트에 엑셀 카테고리의 [ 셀 값 ]과 [  ] 액션을 추가합니다.

    eUnBzgI.png

     

     

    셀 값과  액션의 차이점은 사용자의 컴퓨터에 엑셀이 설치되어 있느냐 여부입니다. 엑셀이 설치되지 않았더라도 데이타를 추가하거나 가져올 수 있습니다. 하지만, 엑셀 함수를 처리할려면 엑셀이 꼭~ 설치되어 있어야 합니다. 간단하게 데이타 처리만 한다면 굳이 필요하지는 않습니다. 하지만, 복잡한 작업이라면 엑셀이 설치되어 있어야 다양하게 조작 및 작업이 가능합니다. 셀 값 액션을 선택하고, 아래와 같이 데이타를 넣어줍니다. 엑셀의 아래 방향으로 1부터 9까지 데이타를 추가했습니다.

    rTKUSpU.png

     

     

    매크로를 실행하고, 엑셀을 열어보면 아래와같이 데이타가 추가되어 있을겁니다.

    YphxEAk.png

     

     

    열과 행의 인덱스는 0부터 시작합니다. 그래서, 행위치 9에 "=sum(A1:A9)" 수식을 넣어줬습니다.

    eiVTExY.png

     

     

    매크로를 실행하고, 엑셀을 열어보세요. 아래 그림과 같이 합계 함수가 입력되어 있고, 셀에 합계가 표시되는걸 알 수 있습니다.

    J8Beyjo.png

     

     

    공식을 AVERAGE로 변경하고 다시 실행 해보세요. 결과 값 5가 나옵니다.

    PzV4y5c.png

     

     

    셀 값을 10,3으로 변경합니다.

    f8fKV6q.png

     

     

    10을 3으로 나눠줍니다. 결과 값은 3.33333333333333처럼 나옵니다.

    msqeANN.png

     

     

    ROUND 함수를 사용하면 소수점 2자리에서 반올림할 수 있습니다. A열 3행의 값을 소수점 2자리에서 반올림 처리 했습니다. 결과에 3.33이 표시됩니다.

    PsUXwdk.png

     

     

    ROUNDDOWN을 사용하면 내림으로 처리되고, ROUNDUP을 사용하면 올림으로 처리됩니다.

    BSluZVk.png

     

     

    SQRT 함수를 사용하면 양의 제곱근을 구할 수 있습니다. 만약 16이라면 결과 값은 4가됩니다.

    bmOBNPG.png

     

     

    EXP를 사용하면 거듭제곱값을 구할 수 있습니다. 인자로 받은 값의 자연 로그값 e의 밑 값을 거듭제곱합니다.

    5oKrH4V.png

     

     

    LEFT는 숫자 또는 문자를 왼쪽부터 설정한 값만큼 가져옵니다.

    SDyCTGk.png

     

     

    RIGHT는 오른쪽에서 가져옵니다. 오른쪽에서 가져오는지 확인이 안되기 때문에 셀 값 내용을 10,4로 변경하세요. 그러면 10/4해서 2.5가 나옵니다. 오른쪽에서 2개를 가져옵니다. 아래 그림에서 결과 값을 보면 .5를 가져왔습니다. 이걸 넘버(NUMBER)로 변환해볼까요?

    RrudhYh.png

     

     

    위에서 문자 .5를 VALUE함수에 넣어주세요. 아래와 같이 0.5로 변환되는걸 확인할 수 있습니다. 엑셀에서 VALUE는 상당히 다양한 용도로 사용되는 아주 좋은 함수중에 하나입니다. 회사 업무를 하다보면 핵심 함수 12가지를 벽에 붙여놓고 자주 사용하게 되는데요. 그중에서도 VALUE는 가장 많이 사용되는 함수이기도 합니다.

    VP6tPgZ.png

     

     

    이번에는 엑셀(Excel) 또는 CSV 파일에서 랜덤하게 값을 가져오는 방법에 대해 알아보도록 하겠습니다. 우선, CSV 파일을 하나 만들어야 하는데요. CSV 파일은 콤마로 구분된 열과 줄바꿈으로 구분된 행으로 구성됩니다. 엑셀은 Microsoft Office의 Excel 편집기를 이용해서 데이타를 만들어야 합니다. 사용방법이 동일하기 때문에 엑샐은 건너뛰고 CSV로 설명하도록 하겠습니다. 우선, 아래 그림과 같이 CSV 파일을 바탕화면에 하나 생성 해주세요.

    EO9pLxx.png

     

     

    파일명은 test.csv로 설정했습니다.

    tLJNx28.png

     

     

    파일을 메모장으로 열어줍니다.

    V5iZawG.png

     

     

    내용은 아래와 같이 입력하세요. 그리고, Ctrl+S를 눌러서 변경된 내용을 저장하세요.

    EX7s6mW.png

     

     

    엔지엠 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    우측 하단의 외부 API탭을 선택하고, 파일 카테고리의 [ CSV 열기 ]를 스크립트에 추가하세요.

    fYt8pX4.png

     

     

    우측 하단의 속성탭을 선택하고, CSV 파일의 속성창에서 CSV 파일을 클릭하세요. 그러면, 파일을 선택할 수 있는데요. 위에서 만든 CSV 파일을 선택 해줍니다.

    opTRXHx.png

     

     

    매크로 스크립트를 실행하면 CSV 파일을 읽어옵니다. 결과 데이타 속성의 우측에 마우스를 올려놓으면 "..." 메뉴가 표시됩니다. 클릭하면 시각화 도구가 열립니다.

    3pCkFs7.png

     

     

    CSV 파일로부터 2차원 배열 형태의 데이타를 잘 가져왔습니다. 여기서 하나의 값만 추출하기 위해 [ 변수 ]를 하나 추가하세요. 변수는 좌측의 함수 상자의 변수 카테고리에 있습니다. CSV 파일 액션 위에 추가하고, 아이디와 덮어쓰기 속성을 아래 그림처럼 설정하세요.

    M4GGf3a.png

     

     

    CSV 파일로부터 읽어온 데이타를 변수에 저장 해주세요. CSV 파일 액션을 선택하고 속성창의 변수 > 추가하기를 클릭하세요. VariableItem 컬렉션 편집기가 실행되는데요. 추가를 눌러서 CSV 파일 액션의 결과 데이타를 a 변수에 저장하면 됩니다.

    5g6rMJm.png

     

     

    변수에 저장된 2차원 배열 형식의 데이타 테이블에서 랜덤하게 값을 가져오려면 하나의 값을 가져오는 [ 값 가져오기 ] 액션을 사용해야 합니다. 아래 그림을 참고해서 마지막에 추가하세요.

    GmU5Igs.png

     

     

    속성에서 변수 > 가져오기를 클릭한 후 a 변수에 저장되어 있는 데이타 테이블을 가져오세요.

    4pA4Es1.png

     

     

    매크로 스크립트를 실행하고, 결과를 확인 해보면 "홍길동"을 가져온걸 알 수 있습니다. ①열과 행의 인덱스가 0입니다. 그렇다는 의미는 2차원 테이블 구조에서 첫번째 열의 첫번째 행의 데이타를 가져온다는 뜻입니다. ②홍길동이 첫번째 열의 첫번째 행에 있는 값이므로 결과로 가져온겁니다.

    ztJQyIe.png

     

     

    자~ 그럼 랜덤하게 값을 가져오려면 어떻게 해야 할까요? 함수 상자에 보면 [ 랜덤 숫자 ] 액션이 보입니다. 값 가져오기 액션 위에 추가하세요. 그리고, b 변수도 하나 추가해줍니다. b 변수는 a 변수와 동일하게 속성을 설정하면 됩니다. 다만, 아이디만 다릅니다.

    Aj6NMNX.png

     

     

    열은 무조건 첫번째로 고정하고 행을 랜덤하게 가져올겁니다. 그래서, 아래 그림과 같이 랜덤 숫자 최대값에 4를 입력하세요.

    XrnOWPr.png

     

     

    랜덤하게 나온 값을 b 변수에 추가 해줍니다.

    VY22Npd.png

     

     

    마지막으로 값 가져오기 액션에서 행 위치에 b 변수 값을 가져오면 됩니다. 그러면, CSV 파일을 읽어서 데이타를 a 변수에 저장하고, 랜덤 숫자가 실행될 때 b 변수에 0~3사이의 값을 가집니다. 마지막으로 값 가져오기 액션에서 a 변수의 데이타 테이블을 가져오고 b 변수의 행 위치를 랜덤하게 가져옵니다.

    Wfla6fo.png

     

     

    매크로 스크립트를 실행 해보면 랜덤하게 값을 가져오는걸 확인할 수 있습니다. 여러번 실행 해보세요.

    2ZfFKCf.png

     

     

    엔지엠 매크로에서 제공하는 함수와 수식을 이용해도 동일한 결과를 얻을 수 있습니다. 다만~ 상황에 따라서 어떤걸 사용하는게 더 좋을지는 각자 판단하시는게 좋습니다. 엑셀 함수를 사용할려면 사용자의 컴퓨터에 Office Excel이 설치되어 있어야 합니다. 테스틀를 위해 엔지엠 매크로를 실행하고, 새로운 스크립트를 하나 추가하세요.

    cnOuw3h.gif

     

     

    바탕화면에 빈 엑셀 파일을 하나 생성 해두었습니다.

    GqzCpO9.png

     

     

    스크립트에 엑셀 카테고리의 [ 셀 값 ]과 [  ] 액션을 추가합니다.

    eUnBzgI.png

     

     

    셀 값과  액션의 차이점은 사용자의 컴퓨터에 엑셀이 설치되어 있느냐 여부입니다. 엑셀이 설치되지 않았더라도 데이타를 추가하거나 가져올 수 있습니다. 하지만, 엑셀 함수를 처리할려면 엑셀이 꼭~ 설치되어 있어야 합니다. 간단하게 데이타 처리만 한다면 굳이 필요하지는 않습니다. 하지만, 복잡한 작업이라면 엑셀이 설치되어 있어야 다양하게 조작 및 작업이 가능합니다. 셀 값 액션을 선택하고, 아래와 같이 데이타를 넣어줍니다. 엑셀의 아래 방향으로 1부터 9까지 데이타를 추가했습니다.

    rTKUSpU.png

     

     

    매크로를 실행하고, 엑셀을 열어보면 아래와같이 데이타가 추가되어 있을겁니다.

    YphxEAk.png

     

     

    열과 행의 인덱스는 0부터 시작합니다. 그래서, 행위치 9에 "=sum(A1:A9)" 수식을 넣어줬습니다.

    eiVTExY.png

     

     

    매크로를 실행하고, 엑셀을 열어보세요. 아래 그림과 같이 합계 함수가 입력되어 있고, 셀에 합계가 표시되는걸 알 수 있습니다.

    J8Beyjo.png

     

     

    공식을 AVERAGE로 변경하고 다시 실행 해보세요. 결과 값 5가 나옵니다.

    PzV4y5c.png

     

     

    셀 값을 10,3으로 변경합니다.

    f8fKV6q.png

     

     

    10을 3으로 나눠줍니다. 결과 값은 3.33333333333333처럼 나옵니다.

    msqeANN.png

     

     

    ROUND 함수를 사용하면 소수점 2자리에서 반올림할 수 있습니다. A열 3행의 값을 소수점 2자리에서 반올림 처리 했습니다. 결과에 3.33이 표시됩니다.

    PsUXwdk.png

     

     

    ROUNDDOWN을 사용하면 내림으로 처리되고, ROUNDUP을 사용하면 올림으로 처리됩니다.

    BSluZVk.png

     

     

    SQRT 함수를 사용하면 양의 제곱근을 구할 수 있습니다. 만약 16이라면 결과 값은 4가됩니다.

    bmOBNPG.png

     

     

    EXP를 사용하면 거듭제곱값을 구할 수 있습니다. 인자로 받은 값의 자연 로그값 e의 밑 값을 거듭제곱합니다.

    5oKrH4V.png

     

     

    LEFT는 숫자 또는 문자를 왼쪽부터 설정한 값만큼 가져옵니다.

    SDyCTGk.png

     

     

    RIGHT는 오른쪽에서 가져옵니다. 오른쪽에서 가져오는지 확인이 안되기 때문에 셀 값 내용을 10,4로 변경하세요. 그러면 10/4해서 2.5가 나옵니다. 오른쪽에서 2개를 가져옵니다. 아래 그림에서 결과 값을 보면 .5를 가져왔습니다. 이걸 넘버(NUMBER)로 변환해볼까요?

    RrudhYh.png

     

     

    위에서 문자 .5를 VALUE함수에 넣어주세요. 아래와 같이 0.5로 변환되는걸 확인할 수 있습니다. 엑셀에서 VALUE는 상당히 다양한 용도로 사용되는 아주 좋은 함수중에 하나입니다. 회사 업무를 하다보면 핵심 함수 12가지를 벽에 붙여놓고 자주 사용하게 되는데요. 그중에서도 VALUE는 가장 많이 사용되는 함수이기도 합니다.

    VP6tPgZ.png

     

     

    이외에도 엑셀에서 제공해주는 함수가 많이 있습니다. 여기에서 엑셀 관련해서 알아보는건 아니라서 자주 사용하는 몇가지만 테스트 해봤습니다. 엔지엠 매크로에는 오토핫키, 엑셀, 데이타베이스 및 파이썬, C#까지 사용이 가능합니다. 가급적이면 코딩을 안하는 방향으로 가고 싶지만~ 액션을 쌓아올리면서 비즈니스 로직을 만드는데 한계가 있을 수 있습니다. 한계라기 보다는 한줄 코딩이 더 편리한거겠죠? 유용한 함수와 기능들을 잘 조합해서 사용하면 좀 더 효율적인 업무 자동화 매크로를 제작할 수 있을겁니다^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.