VBScript and multilevel OLE?

后端 未结 1 460
谎友^
谎友^ 2020-12-10 20:09

I have made a vbscript to target some computers and do wmi queries on them, and my boss wants this data to be put inside a document. The problem is that this document is a M

相关标签:
1条回答
  • 2020-12-10 20:29

    Some notes based on the chart being an embedded Excel object, as first stated.

    ''http://msdn.microsoft.com/en-us/library/aa213725(office.11).aspx
    ''http://msdn.microsoft.com/en-us/library/aa174298(office.11).aspx
    
        Dim wd ''As Word.Applicatio
        Dim shs ''As InlineShapes
        Dim objChart ''As Excel.Chart
        Dim objSheet ''As Excel.Worksheet
        Dim objOLE ''As Excel.Workbook
        Dim NewSrs ''As Series
    
        Set wd=CreateObject("Word.Application")
        wd.Documents.Open "C:\Docs\Doc1.docm"
        wd.Visible=True
    
    
        Set shs = wd.ActiveDocument.InlineShapes
        ''Just the one shape in this example
        shs(1).OLEFormat.Activate
    
        ''The OLE Object contained
        Set objOLE = shs(1).OLEFormat.Object
    
        ''The chart and worksheet
        Set objChart = objOLE.Charts("chart1")
        Set objSheet = objOLE.Worksheets("sheet1")
    
        objSheet.Range("e1") = "NewData"
        objSheet.Range("e2") = 11
        objSheet.Range("e3") = 12
    
        Set NewSrs = objChart.SeriesCollection.NewSeries
    
        With NewSrs
            .Name = "=Sheet1!e1"
            .Values = "=Sheet1!e2:e3"
        End With
    

    Notes for MS Graph

    ''VBA: Reference: Microsoft Graph x.x Object Library
    ''Graph Object Model: http://msdn.microsoft.com/en-us/library/aa198537(office.10).aspx
    
    Dim shs ''As InlineShapes
    Dim objDS ''As Graph.DataSheet
    Dim objOLE ''As Graph.Chart
    
        Set shs = ActiveDocument.InlineShapes
    
        ''The OLE Object contained
        shs(3).OLEFormat.Activate
        Set objOLE = shs(3).OLEFormat.Object
        Set objDS = objOLE.Application.DataSheet
    
        ''00=Corners, Row titles = 01,02 ...
        ''Column titles = A0, B0 ...
        ''Cells = A1, B1 ... E9 ...
        objDS.Range("E0") = "New"
        objDS.Range("E1") = 11
        objDS.Range("E2") = 12
        objDS.Range("E3") = 9
    
    Set objDS = Nothing
    Set objOLE = Nothing
    Set shs = Nothing
    
    0 讨论(0)
提交回复
热议问题