본문 바로가기
TechNical/WMI

WMI] 엑셀파일 가지고 장난치기

by 강멍멍이 2009. 8. 14.
반응형

엑셀문서에서 뭔가 조합해서 뽑아내기 위해서 만들었던 건데..
그냥 주석만 몇개 달고 그냥 올려 버리는거임... 정리해서 필요한거 몇줄만 올려야 되는데..
귀차나 귀차나 ~ 캬아 캬아
간만에 포스팅질 ~ :D 3개월만인가 ;;

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "테이블 정의서|*.xls|All Files|*.*"
objDialog.FilterIndex = 1
objDialog.InitialDir = "C:\"

intResult = objDialog.ShowOpen
 
If intResult = 0 Then
    Wscript.Quit
Else
    targetFile =  objDialog.FileName
End If

Set objExcel = CreateObject("Excel.Application")
'objExcel.Visible = TRUE  ' 엑셀 파일 띄우기
Set objWorkbook = objExcel.Workbooks.Open(targetFile)

'쓰기용도로 파일객체 하나 생성
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\이거슨주석용컬럼.txt",ForWriting,true)

'vbCrlf 는 줄 바꿈인거져 ~
Wscript.Echo "## INFO ## " & vbCrlf & "C:\이거슨주석용컬럼.txt 이 생성되요."

'시작 쉬트번호를 지정했어
sheetNum = 4
   
Set objWorksheet = objWorkbook.Worksheets(sheetNum)

intRow = 5
colCnt = 0

tempStr = ""

'쉬트갯수를 미리 알아내서 쉬트 갯수만큼 뺑뺑이 돌릴때 쓸꺼야
WSCnt = objWorkbook.Worksheets.Count


'워크시트 마지막까지 뺑뺑이
Do Until WSCnt = 3
 
 'Wscript.Echo "[[테이블명 - " & objWorksheet.Name & "]]"
 
 Do Until objWorksheet.Cells(intRow,5).Value = ""             
 
   If colCnt > 3 Then
    tempStr = tempStr & vbCrlf
    tempStr = tempStr & "     * "
    colCnt = 0
   End If
    
     tempStr = tempStr & objWorksheet.Cells(intRow, 3).Value & "(" & objWorksheet.Cells(intRow, 2) & "), "      
       
     intRow = intRow + 1
     colCnt = colCnt + 1
    
 Loop
 
 objFile.WriteLine "[[워크시트명 - " & objWorksheet.Name & "]]"
 objFile.WriteLine Left(tempStr,Len(tempStr) - 2)
 objFile.WriteLine ""
 
 'Wscript.Echo Left(tempStr,Len(tempStr) - 2)  ' 마지막 콤마 제거하고 보여주기
 'Wscript.Echo ""
 
 tempStr = ""
 
 intRow =  5  
 colCnt = 0
 WSCnt = WSCnt - 1
 
 '이부분이 정상작동하는지는 의문이랄까나..
 If WSCnt > 3 Then
  sheetNum = sheetNum + 1
  Set objWorksheet = objWorkbook.Worksheets(sheetNum)
 End If  
 
Loop

Wscript.Echo "작업 완료 !!"

'엑셀을 닫아주자. 안 닫아주면 좀비 프로세스로 남아있는다 ㅋㅋ
objWorkbook.Close
objExcel.Quit




 

반응형

댓글