スクリプトツールではなくコマンドとしてPythonスクリプトを呼び出すボタンを作成しますか?


12

Arc9.3では、VBAスクリプトを使用してコマンドを作成できると考えています。カスタムコマンドを追加するには、[カスタマイズ]> [ツールバー]> [カスタマイズ...]に移動し、[UIControls]をクリックします。ただし、UIControlsはバージョン10にはありません。

マップブックプロジェクト用に2つの個別のスクリプトを作成しています。1つのスクリプトはレイアウト設定をテーブルに保存し、もう1つのスクリプトは同じテーブルの設定でレイアウトを更新します。これらのスクリプトの両方を、ツールバーのボタンに割り当てられたコマンドにする必要があります。スクリプトツールとして作成しましたが、クリックするたびに、ジオプロセシングツールとしてスクリプトを実行します。進行状況ウィンドウが表示され、Pythonコマンドラインウィンドウでコードを実行した場合よりも実行に約10倍時間がかかります。進行状況ウィンドウやはるかに長い実行時間は必要ありません。

スクリプトが「ツール」と見なされず、代わりに「保存」ボタンに似たコマンドになるようにするにはどうすればよいですか?

回答:


6

Excel VBAマクロ内で、次のPythonスクリプトを呼び出しますtest.py

Sub test()

rsp = Shell(Environ$("COMSPEC") & " /c C:/test.py", vbNormalFocus)

End Sub

(元のソースはこちら)ArcGIS VBAモジュールの実行方法を忘れてしまいましたが、Pythonスクリプトを呼び出すために同様の行が機能する可能性があります。


動作する別の戦略は、Pythonスクリプトを実行可能ファイル(.exe)またはバッチファイル(.bat)にコンパイルしてから呼び出すことです。


gis.seでもっとエレガントな別の答えを見ました:

Private Sub python_Click()
    Shell "C:\Python25\python.exe ""C:\rowcount.py"
End Sub

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.