COMマクロのmethod引数扱いについてNo.06954
おすぎ さん 12/05/18 15:38
 
同じような質問ですみません。

次のことをしようとしています。
(1) COMマクロでWORDファイルを開いて、そこに文章をペーストする。
(2)文章から作表する。

(1)については、秀丸担当さまのおかげで実現することができました。
(2)については、次のようなマクロで一応、実現しました。

 callmethod #objContent, "ConvertToTable";

ただ、VBA の文法によれば、"ConvertToTable"は、
複数の引数を指定することができます(表の行数、列数など)。

このように、複数の引数を指定するmethodは、
comマクロではどのように記述するのでしょうか?

もし過去にすでにご教授いただいていた場合には、お許し下さい。

[ ]
RE:06954 COMマクロのmethod引数扱いにつNo.06958
秀丸担当 さん 12/05/18 16:25
 

>このように、複数の引数を指定するmethodは、
>comマクロではどのように記述するのでしょうか?

callmethod文のパラメータに続いて、「,」区切りで数値などを書いていくとで
きます。
例:
callmethod #obj, "Method", 1, 2, 3;

例えば wdSeparateByTabs とか、ワード固有の定数は、WSHでも秀丸マクロでも
そのままでは書けないので、数値として書く必要があります。

callmethod #obj, "ConvertToTable", 1; //wdSeparateByTabs

定数が実際はどういう数値かというのは、どこかから調べてこないとわからない
と思います。
調べてみたら以下のようなページが見つかりました。
http://www.geocities.co.jp/SiliconValley-SanJose/9156/wordconst.rb.html

[ ]
RE:06958 COMマクロのmethod引数扱いにつNo.06959
秀丸担当 さん 12/05/18 16:34
 

あと、省略可能なパラメータについては説明が不足していました。

callmethod #obj, "Method", 1, 2, 3;

と書くと4番目のパラメータ以降は省略可能ですが、


callmethod #obj, "Method", 1, , 3;

というように2番目のパラメータだけを省略するといった書き方は秀丸マクロで
はできないです。
何らかの適当な値を入れてやる必要があります。

vbsではこの省略する書き方はできました。
jsではできませんでした。

ここは秀丸マクロとWSH(というよりvbs)との相違点になるかと思います。

[ ]
RE:06959 COMマクロのmethod引数扱いにつNo.06960
おすぎ さん 12/05/18 16:48
 
秀丸担当さま

ありがとうございました。
クリアーになりました。

[ ]
RE:06960 COMマクロのmethod引数扱いにつNo.06961
おすぎ さん 12/05/18 16:50
 
秀丸担当さま

定数の数値テーブル、ありがとうございました。
とても助かります。

[ ]