2015-11-08

엑셀파일 FTP서버에 바로 저장하기

이번에 엑셀자료를 수합하는 방법을 찾다가 업무망이 달라 공유폴더에 저장이 안되는 문제를 보완할 방법을 검색하던중에 아주 신박한 소스를 찾아서 덕분에 잘 써먹었기에 공유하고자 한다.

 우선 대략적인 수합방식은 엑셀파일을 사내 메신저를 통해 배포한다음,
내용을 채우고 파일을 닫기만하면 자동으로 미리 만들어둔 FTP계정으로 엑셀파일이 그대로 전송이 되는 방식이다. 저장할때 파일이름은 사용자이름-오늘날짜로 세팅해두었기에 하루에 여러번 저장해도 최신 1건만 저장이 되며 여러 사용자가 저장해도 전부 개별 파일로 생성이 되게끔 만들어두었다.

 주의할점은 이렇게 저장된 FTP파일을 익스플러나 탐색기에서 바로열게되면 그 FTP계정은 잠김처리되기 때문에 다시 저장할때 1004오류가 발생하게 되니 반드시 파일을 바탕화면이나 개인PC에 한번 저장한다음 열어야 문제가 없다.
▷ 엑셀 1004 런타임 오류 관련 - DrawAlerts가 원인 - 1004 런타임 오류 발생시 해제하는 방법

그리고 고스트등 백업툴로 PC를 복사했을경우 엑셀 사용자 이름까지 똑같게 복사되었을 가능성이 100%이다. 이때 변경하는 방법은 엑셀 2016기준으로 파일→ 옵션→ 중간쯤에 오피스 개인설정에 사용자이름을 변경해주면 파일명도 따라서 변경된다.

아참, 그리고 엑셀파일 VBA에 FTP아이디와 암호가 입력되어 있어서 배포시 개인정보 유출이 걱정된다면 VBA에 암호를 걸어 배포하면 된다.

- 참고사이트
▷ 무료 웹호스팅 제공(닷홈) - 무료 FTP 계정 생성 - 100MB 제공
▷ Application.UserName Property (Excel) - 오피스 개발자 센터글 - 파일 실행시 사용자 이름 팝업창 띄우기
▷ Save Excel file directly to FTP server - DCC Stephen Knight님 글 - 엑셀파일 FTP서버에 바로저장하기

▷ 파일다운로드



▷ 엑셀파일을 처음 실행하면 팝업창으로 사용자의 이름을 읽어온다.



▷ 팝업창 내용을 바꾸려면 위 Msgbox 내용을 수정하면 된다.


▷ 위 Activeworkbook.SaveAs~의 경로를 FTP 계정정보로 채워주면 된다. 앞에 '는 지우고.
  파일명도 사용자이름, 오늘날짜로 저장된다.


▷ 이 소스는 두가지 방법으로 FTP에 업로드 할수 있도록 만들어두었다.
첫번째 방법은 엑셀파일을 통째로 저장하는 방법, 그리고 요넘은 혹시나 개별로 신청폼을 출력하여 수기로 체크한 자료를 PDF등으로 스캔하여 FTP서버로 보내도록 할때 필요해서 찾은 기능이다. PDF파일외에 확장자를 변경하면 여러파일을 올릴수 있다.


▷ 엑셀 파일을 닫으면 요렇게 전송완료창이 뜨며 파일이 FTP사이트에 저장이 된다.

댓글 없음: