-
2. 엑셀 VBA로 SAP를 움직여보자카테고리 없음 2022. 6. 23. 15:44
이번엔 엑셀 VBA/매크로 기능을 활용해서
SAP를 작동시켜보겠습니다.
간단한 엑셀 매크로부터 알려줘야 하는게 아닌가?
싶으시겠지만, 제가 엑셀 VBA를 공부하는 목적은
"SAP DATA 추출 + 엑셀 가공작업"에 있기 때문에
순서대로 SAP 컨트롤부터 알려드릴게요.
이번 스터디의 목표는 제목 그대로
"엑셀 매크로 실행으로 SAP를 움직여본다"
정도로 가볍게 정하겠습니다.
우리는 엑셀 매크로 기능 안에 특정 VBA 코드들을 입력해서
그것을 실행시켰을 때 SAP가 움직이도록 만들어볼 예정입니다.
앞서 말씀드린 기본 설정이
모두 되어있다는 가정하에 설명드리겠습니다.
1. 엑셀 VBA/매크로 사용을 위한 기본 설정 :: 일하는 사람 (tistory.com)
1. 엑셀 매크로 파일 만들기
VBA 코드를 입력할 매크로 파일이 필요하겠지요.
일단 새로운 엑셀 창을 하나 여시고,
1) 상단 리본메뉴 [개발 도구] - [매크로 기록] - 매크로 이름 입력 후 [확인]
2) 그냥 바로 [기록 중지] 버튼을 눌러 볼게요.
3) 그 다음 [매크로] 버튼을 다시 눌러보면, 방금 기록한 매크로가 생성되어 있습니다.
ALT + F11 을 눌러서 모듈 생성을 할 수도 있지만, 최대한 직관적으로 단순하게 해봤습니다.
이제 [편집] 버튼을 눌러 볼게요.
4) 이런 화면이 생겼습니다. 저 시커먼 부분에다가 저희에게 필요한 VBA 코드들을 입력할거에요.
저기 떠있는 네 줄이 무슨 의미인지는 나중에 궁금하면 더 알아보는 걸로.
2. VBA 스크립트 만들기
이제 저 시커먼 화면에 SAP를 작동시킬 VBA 스크립트를 작성해야합니다.
근데 우린 할 줄 모르잖아요? 그건 SAP에서 가져옵니다.
1) SAP를 실행하고, 상단에 저 모니터 모양 아이콘을 누르면
[스크립트 기록 및 재생] 메뉴가 있습니다.
2) 그럼 이렇개 재생 / 기록 / 중지 버튼이 있는 작은 창이 뜹니다.
[자세히>] 버튼을 눌러서
저장위치와, 스크립트를 저장할 파일명을 지정할 수 있습니다.
빨간 동그라미 버튼을 누르는 순간부터
SAP를 움직이는 행위들이 스크립트로 기록됩니다.
3. SAP 스크립트 기록이 안될 때 :: 일하는 사람 (tistory.com)
3) 일하면서 자주 쓰시는 SAP T-CODE가 있으시면 들어가서 아무 자료나 받아보세요.
저는 재경 업무를 하고 있어서, fbl3n 프로그램에 들어가서
특정 계정의 2022.05.01~2022.05.31 기간 동안의 DATA를 엑셀로 받았습니다.
끝나면 아래 노란색 네모 [기록 중지]버튼 꼭 누르시고요.
4) 저장위치 경로를 복사해서 폴더를 열어보면 .vbs 확장자의 파일이 하나 생성되어 있습니다.
마우스 우클릭 - 연결 프로그램 - 메모장 으로 열어볼게요.
그럼 이렇게 생긴 스크립트가 나올거에요.
뭐가 뭔지 모르셔도 됩니다. 저도 잘 모르거든요. 필요한 부분만 천천히 알아가시죠.
3. 스크립트를 엑셀 매크로에 붙여넣기
이걸 아까 2번 에서 만든 시커먼 공간에 붙여 넣을 겁니다.
근데 그대로 넣으면 작동이 안돼요. 오류가 생길 겁니다.
약간 손을 봐야하는데,
1) 일단 아래에 노랗게 칠한 부분만 떼서 넣어볼게요.
아까 만들었던 시커면 화면에, 알 수 없는 코드가 4줄 있었지요?
Sub TEST() 와 End Sub 사이에 들어오게 넣어주세요.
각각 매크로의 시작과 종료를 알리는 코드입니다.
작은 따옴표 ' 로 시작하는 TEST 매크로는 그냥 주석입니다. 작동에 영향을 주지 않아요.
뭔가 기억해두고 싶은 내용을 메모해두고 싶을 땐 작은 따옴표 ' 를 앞에 붙이시면 됩니다.
2) 그 다음 저희가 붙여넣었던 스크립트 바로 위에
아래 스크립트를 붙여넣습니다. 저도 그냥 인터넷에서 찾은 거라 아직 해석은 못해요.
일단 SAP 작동 매크로를 짤땐 무조건 넣을게요. 해석할 수 있게 되면 포스팅 하겠습니다.
' SAP 시작 기본 코드
Dim SapGuiAuto As Object
Dim App As Object
Dim Connection As Object
Dim session As Object
Set SapGuiAuto = GetObject("SAPGUI")
Set App = SapGuiAuto.GetScriptingEngine
Set Connection = App.Children(0)
Set session = Connection.Children(0)저는 아래와 같이 넣었습니다.
3) 스크립트 입력 창 상단에 디스켓 모양 [저장] 버튼을 누릅니다.
매크로를 포함한 엑셀파일은 .xlsm 으로 저장해주셔야 합니다.
4. 매크로 실행하기
이제 작성된 스크립트를 실행시켜봅시다.
열려있는 스크립트 편집 화면 상단의 실행버튼을 클릭하셔도 되고,
편집창을 닫고, 엑셀 [개발 도구] - [매크로] - [실행] 으로 하셔도 됩니다.
작동이 되시나요?
실행했을 때 SAP가 움직인다면 성공입니다.
생각보다 내용이 너무 길어졌네요.
근데 우리가 원하는건
SAP에 넣는 날짜나 계정코드, 품번 같은 것들이
알아서 바뀌면서 여러번 반복적으로 움직여 주는거잖아요.
다음 포스팅에선 일단 날짜부터 다뤄보겠습니다.