動的データ交換機能について(DyamicDataExchange)
GIS Matildaでは実は外部アプリケーションとの連携機能も非常に優れています。DDEサーバーの機能を備えておりますので、ExcelやAccessのVisualBasic(VBA)やPerlやRuby,Python,などインタープリタ言語からもコマンドを送ることで操ることが可能です。


VBAからGIS Matildaを操るサンプル(単体コマンド編)
この例ではExcelのVBAを使い、Matildaのビューウィンドウの表示範囲を設定します。


Dim ch As Long
Dim com As Variant

ch = Application.DDEInitiate(App:="matilda", topic:="DdeMatilda") ' チャンネル定義 (64bitからの実行の時は"matilda64"としてください)
com = "ZOOM_MAIN@-19999.904,-108624.486,-19974.289,-108604.716" ' 送りたいコマンド
Application.DDEExecute ch, com ' データ送信
Application.DDETerminate ch ' チャンネル開放


たった6行(宣言部を除けば4行)で制御できます。これを関数で実行するだけで動作し、非常に強力な汎用性を持ちますので外部のシステムからも簡単に使うことができます。

VBAからGIS Matildaを操るサンプル(まとまったコマンド編)
この例ではExcelのVBAを使い、まとまったコマンドを入力してあるテキストファイルを指定して流す例を示します。まとまったコマンドとは、2個以上の連続した動作をさせたい時に使います。何度もコマンドを送りつけるのではなくて、コマンドプロシージャ(コマプロ)的なバッチファイルに近いイメージで使います。


Dim ch As Long
Dim com As Variant

ch = Application.DDEInitiate(App:="matilda", topic:="DdeMatildaFile") ' チャンネル定義 (64bitからの実行の時は"matilda64"としてください)
com = "c:¥tmp¥samplecmd.txt" ' コマンドを入力したテキストファイル
Application.DDEExecute ch, com ' データ送信
Application.DDETerminate ch ' チャンネル開放


単体コマンドと異なり、GIS Matildaに送信してからMatilda自身がそれを順番に実行していきます。

コマンド一覧(随時追加していっています)
コマンドは随時増加していってますので、別ページに記載いたしました。

その他
・簡単なExcelのVBAサンプル(zip圧縮しています)

その他、各種プログラミング言語のサンプルや、コマンド(今どんどん作っていってます)の仕様については追って説明ページを追記していきます。
現状、コマンド数は少ないですが、たぶんほぼ全ての動きはコマンド化できると思います。皆さんのご意見やリクエストを募っています。


 

(マニュアル一覧に戻る)

(全体的な紹介ページを表示)