2017-08-02 6 views
1

ExcelでPythonスクリプトを呼び出すためのVBAマクロを書きたいと思います。 Pythonスクリプトはいくつかのコマンドを実行し、次にpandasデータフレームを返します。私はExcelのスプレッドシートに書き込むコードを持っています。それはPythonスクリプトの中にあります。xlwingsを使用してPythonスクリプトを呼び出すためのVBAマクロの作成

私はxlwingsをインストールし、VBAマクロチュートリアルを読みましたが、まだ混乱しています。ユーザー定義関数を使用すべきですか?スクリプトで「何かを返す」必要がありますか?

答えて

2

Pythonスクリプトがワークブックに直接書き込む場合、これは難しくありません。まず、ワークブックに書き込むものがあなたのために十分であれば、VBAマクロまたはPythonから何も返す必要はありません。

UDFは必要ありません。あなたが必要とするのは、基本的にはxlwingsの公式ドキュメントhereからコピーしたものです:

1)あなたのスクリプトを持っているファイルとあなたのExcelブックが話していることを確認してください(xlwings quickstart <project_name>コマンドラインは、その後、

2)あなたは__main__()のような単機能から必要なすべてを呼び出すことができていることを確認してください。結果のPythonのファイルにスクリプトをコピー(またはexecfileを実行するために準備または類似したもの)

3します)あなたのExcelブックに行き、コマンドボタンを作ってから、xlwingsが親切に提供してくれたSampleCallマクロを割り当ててください

4)VBAエディタを開きます。あなたはすぐにSampleCallマクロが表示されます。

Sub SampleCall() 
    RunPython ("import testproj;testproj.world()") 
End Sub 

だけtestproj、適切worldの名前を編集します。

CommandButtonをクリックしてスクリプトを実行できるようになりました。

+0

testprojはプロジェクトの名前で、世界はpythonファイルの名前です。私はそれをショットを与えるよ! – jenkelblankel

+0

testprojはPythonファイルの名前で、worldはファイルから実行する関数の名前です。 RunPython関数はPythonコードを実際に実行するので、import文は通常のPythonファイルとまったく同じように動作します。がんばろう! –

関連する問題