개발 도구와 언어 공부/Ms Access, VBA
세금계산서용 엑셀파일 작성시 생각 할 소소한 것들과 코드
바보처럼코딩하기
2022. 7. 6. 17:05
반응형
1. 월별 일괄 발행되는 폼입니다.
2. 최종에는 엑셀파일로 출력이 됩니다.
3. 버튼 하나로 모을 수 있지만, 실수 방지를 위해서 단계별로 차근히 보면서 진행하게끔 만들어 놨습니다.
4. 엑세스 VBA창에 붙여 사용가능하게 코드를 올렸습니다.
대략 월 검색을 하면 해당 발행 대상이 되는 모든 건이 출력이 됩니다.
리스트의 두번째 필드는 업체코드 부분인데, 겹치는 부분들이 있습니다. 이제 업체별로 합쳐줄 겁니다.
마우스로 덧칠하는건 고역이기 때문에 그림을 잘랐습니다. 버튼 하나를 클릭하면 업체별로 합계가 나타납니다.
*우측 상단의 변환준비(1) 버튼"
이제 엑셀변환(2) 버튼을 누르면 파일이 만들어지고, 폴더가 열립니다.
이 파일 그대로 홈텍스의 여러건 발행하는 부분에 첨부해서 보내기면하면 세금계산서 발급은 끝이 납니다.
⇊⇊⇊⇊ 아래의 엑셀파일은 홈텍스에서 제공하는 세금계산서등록양식입니다. ⇊⇊⇊⇊
아래의 그림을 보시면 아시겠지만, A7이 첫행,첫열입니다.
이 엑셀파일을 참고하셔서, 이 엑셀 내용대로 테이블을 짜시고, 데이터를 집어 넣게 한뒤에, 엑셀로 변환 출력하는 내용입니다. 이 파일처럼 첫행 첫열이 A7이기 때문에 출력한 파일을 바로 홈텍스에서 사용가능합니다.
엑셀 부분에 대해서 조금 더 쉽게 접근하실수 있게 정리해놓은 코드를 올립니다.
'엑셀파일이 있는지 확인후 폴더내 파일 전체 삭제
Dim dirPath As String
Dim fileName As String
Dim i As Integer
dirPath = "C:\내폴더경로\폴더명\" '폴더 경로"
fileName = Dir(dirPath & "*.*") '첫번째 파일명 가져오기
Do While fileName <> ""
i = i + 1
Kill dirPath & fileName
fileName = Dir()
Loop
'엑셀로 1차 출력 (spreadsheettype:=acSpreadsheetTypeExcel12Xml과 파일확장자 매치를 잘하는게 중요, 12xml은 복사본 저장 창이 안뜬다.)
DoCmd.TransferSpreadsheet transfertype:=acExport, spreadsheettype:=acSpreadsheetTypeExcel12Xml, tablename:="세금계산서발행", fileName:=dirPath & "세금계산서출력.xlsx"
'row밀어 넣기
Dim XL As Object
Set XL = CreateObject("Excel.Application")
With XL
.Visible = False
.DisplayAlerts = False
.workbooks.Open dirPath & "세금계산서출력.xlsx"
.Rows("5:1").EntireRow.Insert
.Columns("A:A").Delete
.ActiveWorkbook.Close (True)
.Quit
End With
Set XL = Nothing
Shell "C:\WINDOWS\explorer.exe """ & dirPath & "", vbNormalFocus
MsgBox "완료.", vbInformation
1. 설정한 폴더안에 파일이 있으면 지운다.
2. 엑셀로 정해진 폴더에 출력한다.
3. 홈텍스 엑셀 양식대로 변형한다.
4. 저장하고 닫는다.
5. 저장된 폴더를 연다.
끝.
반응형