- 0
- 임꺽
- 조회 수 5226
'****************************************************************************************************
'엑셀파일에다가 CIMON태그내용 쓰기
'Notice
'1.엑셀쉬트지정규칙
' - 쉬트 이름에 관계없이 쉬트의 순서를 기준으로 읽음.
'2.엑셀파일이 이미 열려있을때
' - 파일을 갱신할건지 질문한다,따라서 파일이 열린 상태로는 사용하기 불편하다.
'****************************************************************************************************
Sub do_excel_writing_block()
Dim ExcelApp As Object
Dim ExcelFile As Object
Dim Sheet1 As Object
Dim Cell As Object
On Error Goto Errstep
'message
SetTagVal "EXCEL.MESSAGE","writing to excelfile start...!"
'확인:파일이름
If GetTagVal("EXCEL.FILENAME") = "" Then
SetTagVal "EXCEL.MESSAGE", "엑셀파일을 입력한 후 다시하십시요."
PlaySound "sound_fail"
Exit Sub
End If
'설정:excel object
Set ExcelApp = CreateObject("Excel.Application")
'설정:파일경로
file_path$ = "C:\TEMP\"
'설정:파일이름(format:YYYYMMDD)
file_name$ = file_path$ + GetTagVal("EXCEL.FILENAME") + ".xls"
'점검:파일존재
If (FileExists(file_name$) = True) Then
'열기:파일이 있을때
Set ExcelFile = ExcelApp.Workbooks.Open(file_name$)
Else
'엑셀파일생성:파일이 없을때
Set ExcelFile = ExcelApp.Workbooks.Add
'저장:엑셀파일 다른이름으로
ExcelFile.SaveAs file_name$
End If
'message
SetTagVal "EXCEL.MESSAGE", file_name$ + ".xls open...!"
Sleep(1000)
'설정:엑셀쉬트
Set Sheet1 = ExcelFile.Worksheets(1)
'읽기:줄번호
row_no# = GetTagVal ("EXCEL.ROWNO_END")
'확인:줄번호없는경우
If row_no# = 0 Then row_no# = 1
'[Section:엑셀의 셀에 CIMON의 태그값 지정]
'지정:엑셀의 셀
Set Cell = Sheet1.Range("A" + CStr(row_no#))
For i = 1 to row_no#
'A CELL지정:엑셀의 셀
Set Cell = Sheet1.Range("A" + CStr(i))
'쓰기할태그명생성
UTag$ = "EXCEL.A.D" + Format (i,"000#")
'값쓰기:엑셀의 셀에 CIMON의 태그값
Cell.Value = GetTagVal(UTag$)
'B CELL지정:엑셀의 셀
Set Cell = Sheet1.Range("B" + CStr(i))
'쓰기할태그명생성
UTag$ = "EXCEL.B.D" + Format (i,"000#")
'값쓰기:엑셀의 셀에 CIMON의 태그값
Cell.Value = GetTagVal(UTag$)
'C CELL지정:엑셀의 셀
Set Cell = Sheet1.Range("C" + CStr(i))
'쓰기할태그명생성
UTag$ = "EXCEL.C.D" + Format (i,"000#")
'값쓰기:엑셀의 셀에 CIMON의 태그값
Cell.Value = GetTagVal(UTag$)
'D CELL지정:엑셀의 셀
Set Cell = Sheet1.Range("D" + CStr(i))
'쓰기할태그명생성
UTag$ = "EXCEL.D.D" + Format (i,"000#")
'값쓰기:엑셀의 셀에 CIMON의 태그값
Cell.Value = GetTagVal(UTag$)
Next i
'저장:엑셀
ExcelFile.Save
'종료:엑셀
ExcelApp.Quit
'삭제:메모리
Set ExcelApp = Empty
'message
SetTagVal "EXCEL.MESSAGE", file_name$ + ". Excel file writing success...!"
PlaySound "sound_success"
'exit
Exit Sub
Errstep:
'message
SetTagVal "EXCEL.MESSAGE", "엑셀파일 쓰기도중 오류가 발생되었습니다....!"
PlaySound "sound_fail"
End Sub
댓글 0
권한이 없습니다.