誰かがJacobを使ってVBコードをJavaに変換する方法を説明できますか?
質問
jacob / javaを介してテンプレートから単語文書を作成しようとしています。私はjacobのまともな文書を見つけることはできません。誰かがディスパッチの機能(.get | .todispatch)を説明してください。私は次のコードをJacobに変換しようとしています:
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
Selection.Cells.Merge
.
私は試してみました:
Dispatch.call(oSelection, "MoveRight", 2, "Extend");
Dispatch.call(oSelection, "Merge").toDispatch();
.
しかし、それは確かに機能していません。
任意の助けが理解されるでしょう。
解決
jacobに問題はありません。宣伝どおりに機能します。
まず、Word 2003のオブジェクト参照を見つける必要があります。 その理由は、名前付きパラメータを使用する場合、いくつかのオプションのパラメータを省略することができ、いくつかのパラメータを順序で指定することができることです。だから私は最初にselectionの署名を確認する必要があります..Moveright。 Moveright: http:// msdn.microsoft.com/en-us/library/aa212388(v=オフィス11).aspx
expression.MoveRight(Unit, Count, Extend)
.
単位と拡張は列挙性であるため、右整数定数を見つける必要があります。 WDCharacterは1で、wdextendも1(これらの値をどのように考えていますか、最も簡単な方法で、オフィスアプリケーションのVBAエディタ内のオブジェクトブラウザを見ることです)。
oselectionが有効なオブジェクトであると仮定すると、これが機能するはずです。
Dispatch.call(oSelection, "MoveRight", 1, 2, 1);
.
今2行目の場合、翻訳内のセルについて忘れました。あなたはこのようなものを必要とするでしょう:
Dispatch cells=Dispatch.get(oSelection,"Cells").toDispatch();//Selection.Cells.
Dispatch.call(cells, "Merge"); //Selection.Cells.Merge()
.
マージが何も返さないので、2行目にtodispatchを呼び出さないことに注意してください。 TodisPatchは、最初の行のような戻り値を後で使用できるディスパッチオブジェクトに変換するために使用されます。