喫茶XRAYトップページ

[スレッド全体
]

[878] Re:DelphiでWord操作の質問です。返信 削除
2006/8/8 (火) 21:21:46 Mr.XRAY
▼ ちいんけさん

> Word_TLBのユニットを作成して、Word_TLB.pasのなかに
> wdGoToPage変数を検索すると確かに存在します。


Wordの操作はServersタブにあるTWordApplicationとTWordDocumen
を使用する場合は,_TLBは関係ありません.
TWordApplicationコンポを配置するとusesにWord2000.pasが追加されます.
この中にあります.
(Delphiインストール時にOfficeのバージョンを2000にした時)

>type
>  WdGoToItem = TOleEnum;
>const
>  wdGoToBookmark = $FFFFFFFF;
>  wdGoToSection = $00000000;
>  wdGoToPage = $00000001;


試してみました.FormにTWordApplicationを一つ配置して,

procedure TForm1.Button1Click(Sender: TObject);
begin
     ShowMessage(IntTostr(Word2000.wdGoToPage));
     //ShowMessage(IntTostr(wdGoToPage)); でも同じ
end;

とすると,確かに1という文字が表示されます.


[879] Re2:DelphiでWord操作の質問です。返信 削除
2006/8/9 (水) 10:18:29 ちいんけ
▼ Mr.XRAYさん

お忙しい中、ありがとうございました。

お陰さまで解決することができました。

//oleVariantの仮配列を宣言しておき
var
  oleVs: array [0..20] of oleVariant;

with WordApplication1 do begin
  //各変数ごとにoleVariant値を代入して
  oleVs[0] := wdGoToPage;
  oleVs[1] := wdGoToNext;
  oleVs[3] := '1';
  //引数に指定することで
  Selection.GoTo_(oleVs[0], oleVs[1], EmptyParam,  oleVs[3]);
end;

//解決することができました。

それにしても全ての処理に対応するのに時間がかかります。
マスターの環境では、こんな前処理は必要なく、Word2000に
定義されたoleVariant変数が関数の引数指定できるのでしょうか?

ふぅ

ちいんけ@東京


[880] Re3:DelphiでWord操作の質問です。返信 削除
2006/8/9 (水) 18:24:08 Mr.XRAY
▼ ちいんけさん

動けば正義です(笑)

> それにしても全ての処理に対応するのに時間がかかります。

ワードの操作関係は,どれもかなり時間がかかるようです.ただ,利用者が
直接編集可能という利点があるのではないかと思います.
個人的には,極力書類は定型化すべきと考えています.

> マスターの環境では、こんな前処理は必要なく、Word2000に
> 定義されたoleVariant変数が関数の引数指定できるのでしょうか?

できています.ワード操作フォームで同様のコードを使用しています.

ちいんけさんのコードのusesにはWord2000とかはないのでしょうか.


[881] Re4:DelphiでWord操作の質問です。返信 削除
2006/8/10 (木) 00:52:38 ちいんけ
▼ Mr.XRAYさん

> ちいんけさんのコードのusesにはWord2000とかはないのでしょうか.

これがあるんですよ、、、Word2000

別変数に移して代入できるということは、いったいどういうことなのか
さっぱりわかりません。そろそろDelphi7をリフレッシュした方がいい
時期かもしれません。

同じマシンにDelphi2005(使ってません)がインストールしてあるのを
思い出したので、試してみます。

ありがとうございました。

ちいんけ@


[882] Re5:DelphiでWord操作の質問です。返信 削除
2006/8/10 (木) 09:59:53 ちいんけ
原因が判明しました。

WordApplication1.Selection.GoTo_メソッド等の引数は
参照形式(var付き)なので、変数宣言したものに
一旦代入しないと引数に代入できないことが分かりました。

お騒がせしました。

ちいんけ@

[883] Re6:DelphiでWord操作の質問です。返信 削除
2006/8/10 (木) 20:10:08 Mr.XRAY
▼ ちいんけさん

> 参照形式(var付き)なので、変数宣言したものに
> 一旦代入しないと引数に代入できないことが分かりました。


おおっ,よかった.お役に立たなくてゴメンなさい.
う〜む.気づきませんでした.くやしい〜!!

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82