Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2009年07月02日] [更新 2013年12月02日] ワード操作フォームEx
ワード操作フォームEx   参考コード類
文字列をカーソル ( キャレット ) 位置に挿入
動作確認等 Windows 7 U64(SP1) + Delphi XE Pro + Word 2010







現在のキャレット位置の後に文字列を挿入


現在のカーソル (キャレット) 位置の後に文字列を挿入する例です.


リスト1
現在のキャレット位置の後に文字列を挿入
procedure TplWordFormEx2.Button1Click(Sender: TObject);
var
  ASelection : Word2000.WordSelection;
  pDelection : OleVariant;
begin
  //現在のカーソル位置のSelectionオブジェクト
  ASelection := wdfWordApp.Selection;

  //現在のカーソルから挿入
  ASelection.InsertAfter('東京都');
  //挿入した文字列の最後にカーソル移動
  pDelection := wdCollapseEnd;
  ASelection.Collapse(pDelection);

  wdfSetFocusWord;
end;




現在のキャレット位置の前に文字列を挿入


現在のカーソル (キャレット) 位置の前に文字列を挿入する例です.


リスト2
現在のキャレット位置の前に文字列を挿入
procedure TplWordFormEx2.Button2Click(Sender: TObject);
var
  ASelection : Word2000.WordSelection;
  pDelection : OleVariant;
begin
  //現在のカーソル位置のSelectionオブジェクト
  ASelection := wdfWordApp.Selection;

  //現在のカーソルの前に挿入
  ASelection.InsertBefore('大阪府');
  //挿入した文字列の先頭にカーソル移動
  pDelection := wdCollapseStart;
  ASelection.Collapse(pDelection);

  wdfSetFocusWord;
end;




ファイルからテキストを読み込んで挿入


ファイルからテキストを読み込んで,現在の入力位置の後に追加する例です.


リスト3
ファイルからテキストを読み込んで挿入
procedure TplWordFormEx2.Button3Click(Sender: TObject);
var
  ASelection          : Word2000.WordSelection;
  pFileName           : WideString;
  pRange              : OleVariant;
  pConfirmConversions : OleVariant;
  pLink               : OleVariant;
  pAttachment         : OleVariant;
  pType               : OleVariant;
begin
  //現在のカーソル位置のSelectionオブジェクト
  ASelection := wdfWordApp.Selection;

  //InsertFileの引数値を設定
  pFileName           := ExtractFilePath(Application.ExeName) + 'Readme.txt';
  pRange              := EmptyParam;  //挿入元のブックマック名等
  pConfirmConversions := False;       //ワード文書以外のファイルの時の警告有無
  pLink               := False;       //リンクとして挿入するか
  pAttachment         := False;       //電子メールのメッセージとするか

  //現在のカーソル(ASelection)から挿入
  ASelection.InsertFile(pFileName,
                        pRange,
                        pConfirmConversions,
                        pLink,
                        pAttachment);
  //選択を解除し新しい段落として挿入
  ASelection.InsertParagraphAfter;
  //挿入後改頁
  pType := wdSectionBreakNextPage;
  ASelection.InsertBreak(pType);

  wdfSetFocusWord;
end;