掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WORDオブジェクトモデルの使用方法 (ID:31923)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はづき:「おはようございます、昨日はごちそう様でした…」 真琴 :「あっ、ハヅキさん、おはようございます」 はづき:「あんなに美味しいバーベキュー初めて食べました、アタシ」 勝爺 :「そうでしょう? 近い内にまたご招待しましょうね」 はづき:「それが…、実はアタシ…今日、東京に帰ることになりました」 真琴 :「あ、そうなんだ…、もうコッチには戻らないンですか?」 はづき:「ええ、最初はこんな長く居る予定じゃなかったのに、ココが好きになって」 真琴 :「ハヅキさん、だったら、もう少しココに…」 はづき:「ダメなんです、もうコレ以上病院での定期検査を延ばせなくて…これからしばらくは病院生活です」 真琴 :「それなら、来年の夏にまた来てくださいね」 勝爺 :「そう、待ってますよ」 はづき:「はい、必ず来年もまた夏に来ます、じゃあ、母が待ってますからこれで…」 春子:「おっはよう〜、途中でハヅキさんに会ったけど、東京に帰るらしいネ」 真琴:「うん、また来年の夏に来るって…、ハルコさん、チョット教えてくれる?」 春子:「ン? 来年の夏にリープする方法とか? そんなのやめた方がイイと思うよ」 真琴:「違うよ^^; ハルコさん、これナンだけど…」 function CopyWordPage(WordApp: Variant; Page: Integer): Boolean; var vS, vR: Variant; begin result := False; if Page = 0 then exit; try vS := WordApp.ActiveDocument.Range.GoTo(wdGoToPage, wdGoToAbsolute, Page); vR := WordApp.ActiveDocument.Range.GoTo(wdGoToPage, wdGoToAbsolute, Page+1); WordApp.ActiveDocument.Range(vS.Start, vR.Start).Select; WordApp.Selection.Copy; result := True; except raise Exception.Create('コピー失敗'); end; end; 春子:「ふ〜ん、この関数はWordのページを指定してコピーするってわけネ」 真琴:「そぅ、でもコレだと、どうしても最終ページの選択が出来ないの」 春子:「それはそうよ、これじゃ最終ページで"Page+1"が範囲外になっちゃう」 真琴:「やっぱり、最終ページだけは別の方法にしなくちゃダメかなぁ…」 春子:「まぁね」 真琴:「それに、ページが最終かどうかの判定方法も分からないし…」 春子:「そう? "Page+1"が範囲外なら vR.StartとvS.Startが等しくなるよ、マコト」 真琴:「えっ、そうなの?」 春子:「だから….Range().Select;の後にコレを追加」 ....... if (vR.Start = vS.Start) then begin //最終ページの場合 Cnt := WordApp.Selection.MoveDown(Count:=10000, Unit:=wdLine, Extend:=wdExtend); ShowMessageFmt('最終ページの全行数(%d行)を選択', [Cnt]); end; ....... 真琴:「ナルホド〜…、でも、Count:=10000って、ナンで10000なの?」 春子:「最終ページの行数が分からないから、適当に大きな数を書いておけばイイの」 真琴:「そんなアバウトで大丈夫? 引数の順番もアバウトだし…」 春子:「アバウトは懲りたのかな? 適当な時間目標で時の迷子になっちゃったから」 真琴:「あんな怖い想いはもうコリゴリ、でもこの場合はOKなのね」 春子:「マコトは省略してるけど、GoToメソッドでも"What:="、"Which:="、"Count:="などキチンと書けば、引数の順序は適当で大丈夫」 真琴:「その等号はDelphiと同じだし、引数の順番がアバウトなんて面白いよね」 春子:「面白いといえば…」 真琴:「え? ナンなの?」
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.