3

ここで説明されているように、Excel インスタンスで VB から Python コードを簡単に利用できる興味深い問題があります: Excel/VBA からの Python スクリプトの呼び出し

ただし、ビジュアルスタジオでまったく同じコード構造をフォームで模倣すると、pyscript.language = "python" 行が失敗します。MSScriptControl.ScriptControl を VB .Net で使用して、Excel のように Python を制御できるかどうかは誰にもわかりませんか? これは、Python スクリプトの com オブジェクトを設定するよりもはるかに簡単です。

サンプル コード (Microsoft Script Control 1.0 と Excel オブジェクト ライブラリを追加する必要があります):

Imports Microsoft.Office.Interop

Public Class Form1
    Dim WithEvents PyScript As MSScriptControl.ScriptControl
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim xlApp As New Excel.Application
        xlApp.Visible = True
        Dim xlwbook As Excel.Workbook = xlApp.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet)
        Dim xlSheet As Excel.Worksheet = CType(xlwbook.Worksheets(1), Excel.Worksheet)

        If PyScript Is Nothing Then
            PyScript = New MSScriptControl.ScriptControl
            PyScript.Language = "python"
            PyScript.AddObject("Sheet", xlSheet)
            PyScript.AllowUI = True
        End If
        PyScript.ExecuteStatement("Sheet.cells(1,1).value='Hello'")


    End Sub
End Class
4

1 に答える 1

0

このhttp://msdn.microsoft.com/en-us/library/aa227633(v=vs.60 ) によると、scriptcontrol は VS6 アイテムであるため、それ以降のバージョンと完全に互換性がない可能性があります。2 つの環境 (Windows フォームと Excel) は根本的な点で異なるため、コンテキストの問題もあります。一方で可能なことが、他方で常に可能であるとは限りません。

また、与えられた例の最初の 4 つの手順を再確認し、Excel からこれを実行できることを確認してください。

于 2012-06-11T12:44:47.767 に答える