4 Stimmen

VBScript und mehrstufiges OLE?

Ich habe ein VBScript erstellt, um einige Computer anzuvisieren und wmi-Abfragen auf ihnen durchzuführen, und mein Chef möchte, dass diese Daten in ein Dokument eingefügt werden. Das Problem ist, dass dieses Dokument ein Microsoft Word-Dokument mit eingebetteten Excel-Objekten ist. Ich habe bei Google lange nach Möglichkeiten gesucht, ein Objekt innerhalb eines Objekts mit OLE anzuvisieren und zu manipulieren, aber ich scheine nicht weiterzukommen.

Also meine Frage an Sie ist, wenn jemand einige Code für diese ich über oder vielleicht ein Tutorial aussehen könnte, und ganz möglich sogar mir sagen, wenn es überhaupt möglich ist?

0 Stimmen

Sie möchten eine Excel-Datei aktualisieren, die in ein Word-Dokument eingebettet ist, ja oder nein? Warum nicht die Excel-Datei selbst aktualisieren?

5voto

Fionnuala Punkte 89346

Einige Anmerkungen zum Diagramm als eingebettetes Excel-Objekt, wie zuerst erwähnt.

''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

Hinweise für 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 Stimmen

Bei der Verwendung von objOLE brauchen Sie nur VBA zu berücksichtigen, wie es für Excel gilt, so dass Sie beispielsweise verschiedene Anweisungen geben können: objOLE.Charts.Count ou Set objChart = objOLE.Charts(1) ou ChartName = objOLE.Charts(1).Name Genau das Gleiche kann man mit Arbeitsblättern machen.

0 Stimmen

Ist das enthaltene Objekt ein Excel-Diagrammobjekt oder ein MS-Diagrammobjekt?

0 Stimmen

Sie können versuchen objOLE.Application und/oder shs(1).OLEFormat.ClassType um Informationen zu erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X