• 목록
  • 아래로
  • 위로
  • 0
  • 임꺽
  • 조회 수 5064
'****************************************************************************************************
'엑셀파일에다가 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

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 0

권한이 없습니다.