1

作業中のVBAツールバーがあります。2つのボタンがあり、プロセスの終わり近くで、Pythonスクリプトを呼び出します。2つのボタンのどちらをクリックするかによって、Pythonスクリプトの特定の部分が実行されるので、ボタンにリンクされている値を渡して、Pythonスクリプトに送信して実行します。

どうすればよいですか?

ありがとう

4

1 に答える 1

1

他のコマンドラインプログラムと同じように、コマンドラインオプションをPythonスクリプトに渡すことができます。押されたボタンに応じて、プログラムにさまざまなスイッチを渡します。

あなたの場合、押されたボタンに応じてコマンドラインで1つの値を渡し、sys.argv変数からこれを選択するのが最も簡単な場合があります。

import sys

def fooClicked():
    # Stuff to do when Foo was clicked

def barClicked():
    # Stuff to do when Bar was clicked

button = sys.argv[1]
if button == 'foo':
    fooClicked()
elif button == 'bar':
    barClicked()

(dictを使用してメソッドを検索することもできますが、それは高度すぎる可能性があります。Pythonにどれほど慣れているかわかりません)。

したがって、このスクリプトを関数で呼び出すとpython.exe H:\Report_v7.py foo、が呼び出されます。fooClicked

これが2つ以上のボタンに拡大する場合は、optparseモジュールを使用してオプションを定義し、選択したオプションに応じて異なるコードパスを実行します。

Python 2.7にアップグレードする場合は、argparse代わりに新しい(より優れた)モジュールを使用してください。

于 2012-05-31T10:42:34.500 に答える