Excel tiedoston muokkaus WSH:lla

Tallenna oheinen koodi tiedostoon muokkaus.vbs. Tiedosto voi olla vaikka työpöydällä. Raahaamalla excel tiedosto ”muokkaus.vbs” tiedoston päälle, käynnistyy prosessi. Prosessi pyörii taustalla oman aikansa ja lopuksi työpöydälle ilmestyy muokattu tiedosto.

[sourcecode language=”vb”]   
Dim ArgObj
    Set ArgObj = WScript.Arguments
    sfilename =ArgObj(0) ’luetaan raahatun tiedoston nimi

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.GetFile(sfilename)
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open (sfilename)

    intRow = 2

’tässä siirretään solut B1 ja C1 talteen

    kk1 = objExcel.Cells(1,2).value
    kk2 = objExcel.Cells(1,3).value

’soluun A1 lisätään teksti

    objExcel.Cells(1,1).value="Muokattuteksti"

’solut B1 ja C1 tyhjennetään
    objExcel.Cells(1,2).value=""
    objExcel.Cells(1,3).value=""

’soluista B1 ja C1 talteen otetut arvot tallennetaan soluun C1 ja G1
    objExcel.Cells(1,3).value=kk1
    objExcel.Cells(1,7).value=kk2

    akk = (month(kk1))
    ayy = (year(kk1))
    slyhyt =  Right("00" & Month(kk1),2)

’Käydään excel sivua läpi niinkauan että törmätään sanaan TULOSLASKELMA
    Do Until objExcel.Cells(intRow,2).Value = "TULOSLASKELMA"
’Siirretään sarake F -> I
        objExcel.Cells(introw,9).value = objExcel.Cells(introw,6).value
        objExcel.Cells(introw,6).value = ""
’Siirretään sarake E -> G
        objExcel.Cells(introw,7).value = objExcel.Cells(introw,5).value
        objExcel.Cells(introw,5).value = ""
’Siirretään sarake D -> E
        objExcel.Cells(introw,5).value = objExcel.Cells(introw,4).value
        objExcel.Cells(introw,4).value = ""
        intRow = intRow + 1
    Loop

’lopuksi tallennetaan excel tiedosto uudella nimellä…

    objExcel.DisplayAlerts = False
    objWorkbook.SaveAs (objFSO.GetParentFolderName(objFile) & "\(" & ayy & slyhyt & ")" & objFSO.GetBaseName(objFile) & "siistitty." & objFSO.GetExtensionName(objFile))
    objWorkbook.close
    objExcel.Quit

[/sourcecode]