ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] Excel VBA¿z¿ï³B²z¸ê®Æ¥[³t°ÝÃD

¥»©«³Ì«á¥Ñ stillfish00 ©ó 2016-11-9 17:20 ½s¿è

¦^´_ 2# wwwlen2002
¥u³B²zcms_value_####.xml
XML_PATH ¦Û¦æ§ï¬°¥¿½T¸ô®|
°Ñ¦Ò :
  1. Sub Test()
  2.     Dim t: t = Timer
  3.    
  4.     Const XML_PATH = "C:\Users\xxxxx\Downloads\CMS\CMS\20150101"
  5.     Dim oXml As Object: Set oXml = CreateObject("msxml2.domdocument")   
  6.     Dim sFile As String, sTime As String, sCmsid As String, sMessage As String
  7.     Dim oNodes As Object, arData, cnt As Long
  8.     ReDim arData(1 To 3, 1 To 1)
  9.     sFile = Dir(XML_PATH & "\")
  10.     Do While Len(sFile) > 0
  11.         If sFile Like "cms_value_####.xml" Then
  12.             oXml.Load XML_PATH & "\" & sFile
  13.             With oXml.ChildNodes(1)
  14.                 sTime = .getAttribute("updatetime")
  15.                 Set oNodes = .getElementsbyTagName("Info")
  16.                 ReDim Preserve arData(1 To 3, 1 To UBound(arData, 2) + oNodes.Length)
  17.                 For Each x In oNodes
  18.                     sMessage = WorksheetFunction.Asc(x.getAttribute("message"))   '¥þ§ÎÂà¥b§Î
  19.                     If HasMyKeyWords(sMessage) Then
  20.                         sCmsid = x.getAttribute("cmsid")
  21.                         cnt = cnt + 1
  22.                         arData(1, cnt) = sTime
  23.                         arData(2, cnt) = sCmsid
  24.                         arData(3, cnt) = sMessage
  25.                     End If
  26.                 Next
  27.                 ReDim Preserve arData(1 To 3, 1 To cnt)
  28.             End With
  29.         End If
  30.         sFile = Dir()
  31.     Loop   
  32.    
  33.     If cnt > 0 Then
  34.         With Sheets.Add(After:=Sheets(Sheets.Count))
  35.             .[a1].Resize(1, 3) = Array("updatetime", "cmsid", "message")
  36.             .[a2].Resize(cnt, 3) = Application.Transpose(arData)
  37.             .UsedRange.Columns.AutoFit
  38.         End With
  39.     End If
  40.    
  41.     MsgBox "°õ¦æ®É¶¡ " & Timer - t & " ¬í", vbOKOnly
  42. End Sub

  43. Function HasMyKeyWords(s As String) As Boolean
  44.     For Each x In Array("¾Ã¶ë", "K", "k", "«B", "¤Ñ­Ô¤£¨Î")
  45.         If InStr(1, s, x) > 0 Then
  46.             HasMyKeyWords = True
  47.             Exit Function
  48.         End If
  49.     Next
  50.     HasMyKeyWords = False
  51. End Function
½Æ»s¥N½X
ªí¹F¤£²M¡BÃD·N¤£©ú½T¡B¨SªþÀɮ׮榡¡B¨S¦³°Q½×°ÝÃDªººA«×~~~~~~¥H¤W·R²ö¯à§U¡C

TOP

        ÀR«ä¦Û¦b : ¡i®É¶¡µLªk¾B¾×¡j©È®É¶¡®ø³u¡Aªá¤F³\¦h¤ß¦å¡A·QºÉ¦U¦¡¤èªk­n¾B¾×®É¶¡¡Aµ²ªG¬O¡G®ö¶O¤F§ó¦h®É¶¡¡A¥B¤@µL©Ò¦¨¡I
ªð¦^¦Cªí ¤W¤@¥DÃD