作業中のVBAツールバーがあります。2つのボタンがあり、プロセスの終わり近くで、Pythonスクリプトを呼び出します。2つのボタンのどちらをクリックするかによって、Pythonスクリプトの特定の部分が実行されるので、ボタンにリンクされている値を渡して、Pythonスクリプトに送信して実行します。
どうすればよいですか?
ありがとう
他のコマンドラインプログラムと同じように、コマンドラインオプションを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
代わりに新しい(より優れた)モジュールを使用してください。