How to automate Excel from a client-side VBScript


This article illustrates Microsoft Visual Basic, Scripting Edition (VBScript) client-side code that launches and automates Microsoft Office Excel or Microsoft Excel when a user clicks a button on a Web page.

More Information

Sample code

  1. Create the following HTML file in any text editor and save the file as c:\excel.htm.

    <INPUT id=button1 name=button1 type=button value=Button>


    sub button1_onclick()

    ' Launch Excel
    dim app
    set app = createobject("Excel.Application")

    ' Make it visible
    app.Visible = true

    ' Add a new workbook
    dim wb
    set wb = app.workbooks.add

    ' Fill array of values first...
    dim arr(19,9) ' Note: VBScript is zero-based
    for i = 1 to 20
    for j = 1 to 10
    arr(i-1,j-1) = i*j

    ' Declare a range object to hold our data
    dim rng
    set rng = wb.Activesheet.Range("A1").Resize(20,10)

    ' Now assign them all in one shot...
    rng.value = arr

    ' Add a new chart based on the data
    wb.ActiveChart.ChartType = 70 'xl3dPieExploded
    wb.ActiveChart.SetSourceData rng, 2 ' xlColumns
    wb.ActiveChart.Location 2, "Sheet1" 'xlLocationAsObject

    ' Rotate it around...
    for i = 1 to 360 step 30
    wb.activechart.rotation = i

    ' Give the user control of Excel
    app.UserControl = true

    end sub

  2. Start Microsoft Internet Explorer, type c:\excel.htm in the Address bar, and then press ENTER.
  3. Click the button that is displayed on the page.

    Note If you are prompted by a security warning about an ActiveX control on the page, click Yes.


For more information, click the following article number to view the article in the Microsoft Knowledge Base:

195826 CreateObject fails from client-side scripts


Article ID: 198703 - Last Review: Mar 23, 2009 - Revision: 1