(57)【特許請求の範囲】
【請求項１】
データのコピー先の指定を受け付け、
前記指定後、コピー元のデータの選択モードに移行し、
前記選択モード中に前記コピー元のデータにおけるコピー範囲の選択を受け付けると、前記コピー先に、前記コピー範囲内のデータを表示する
処理を含み、
前記選択モード中に前記コピー範囲の変更が行われると、当該コピー範囲の変更に応じて前記コピー先に表示されるデータが動的に変化する
ことを特徴とするコンピュータを用いたコピー制御方法。
【請求項２】
前記コピー先に表示する前記コピー範囲内のデータを、前記コピー先の周りのデータと異なる態様で表示させる
請求項１記載のコピー制御方法。
【請求項３】
データのコピー先の指定を受け付け、
前記指定後、コピー元のデータの選択モードに移行し、
前記選択モード中に前記コピー元のデータにおけるコピー範囲の選択を受け付けると、前記コピー先に、前記コピー範囲内のデータを表示する
処理を、コンピュータに実行させ、
前記選択モード中に前記コピー範囲の変更が行われると、当該コピー範囲の変更に応じて前記コピー先に表示されるデータが動的に変化する
ことを特徴とするコピー制御プログラム。
【請求項４】
データのコピー先の指定を受け付ける受付部と、
前記指定後、コピー元のデータの選択モードに移行する移行部と、
前記選択モード中に前記コピー元のデータにおけるコピー範囲の選択を受け付けると、前記コピー先に、前記コピー範囲内のデータを表示する表示処理部と、
を有し、
前記表示処理部は、
前記選択モード中に前記コピー範囲の変更が行われると、当該コピー範囲の変更に応じて前記コピー先に表示されるデータを動的に変化させる
ことを特徴とするコピー制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの編集におけるコピー制御技術に関する。
【背景技術】
【０００２】
例えば文字列を編集する装置において、文字の入力操作を軽減するために、既存の文字列から一部を選択してコピーし、編集エリアに貼り付ける処理を行なうものがある。
【０００３】
しかし、余計な文字まで貼り付けてしまった場合には、その後ユーザは、その文字を削除する修正操作を行なうことになる。一方、貼り付けるべき文字を選択範囲に含めることを失念した場合には、その後ユーザは、その文字を追加する修正操作を行なうことになる。
【０００４】
本来貼り付けるべき文字列の範囲を適切に選択していれば、このような修正操作を行なわなくても済む場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０６−２４３１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、一側面では、ユーザが元となるデータからコピー範囲を選択する際に、コピー結果を予め確認できるようにすることである。
【課題を解決するための手段】
【０００７】
一態様に係るコピー制御方法は、データのコピー先の指定を受け付け、指定後、コピー元のデータの選択モードに移行し、選択モード中になされた選択範囲の変更処理に応じて、コピー先に表示するデータの内容を変更処理前のデータから変更処理後のデータに動的に変化させる処理を含む。
【発明の効果】
【０００８】
一側面としては、ユーザが元となるデータからコピー範囲を選択する際に、コピー結果を予め確認できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、文字列のコピーを指示する操作例を示す図である。
【図２】図２は、一括貼り付けを指示する操作例を示す図である。
【図３】図３は、一括貼り付け操作の別の例を示す図である。
【図４】図４は、動的貼り付けを指示する操作例を示す図である。
【図５】図５は、動的貼り付けを指示する操作例を示す図である。
【図６】図６は、動的貼り付けを指示する操作例を示す図である。
【図７】図７は、動的貼り付けを指示する操作例を示す図である。
【図８】図８は、動的貼り付けを指示する操作例を示す図である。
【図９】図９は、動的貼り付け操作の別の例を示す図である。
【図１０】図１０は、編集装置のモジュール構成例を示す図である。
【図１１】図１１は、共用記憶部の構成例を示す図である。
【図１２】図１２は、編集部の構成例を示す図である。
【図１３】図１３は、内部記憶部の構成例を示す図である。
【図１４】図１４は、編集部のメイン処理フローを示す図である。
【図１５】図１５は、挿入モード処理フローを示す図である。
【図１６】図１６は、受付処理フローを示す図である。
【図１７】図１７は、受付処理後の状態例を示す図である。
【図１８】図１８は、メニュー処理フローを示す図である。
【図１９】図１９は、移行処理フローを示す図である。
【図２０】図２０は、移行処理後の状態例を示す図である。
【図２１】図２１は、選択処理フローを示す図である。
【図２２】図２２は、開始処理フローを示す図である。
【図２３】図２３は、開始処理後の状態例を示す図である。
【図２４】図２４は、変更処理フローを示す図である。
【図２５】図２５は、変更処理後の状態例を示す図である。
【図２６】図２６は、変更処理後の状態例を示す図である。
【図２７】図２７は、終了処理フローを示す図である。
【図２８】図２８は、終了処理後の状態例を示す図である。
【図２９】図２９は、動的貼り付けモード処理フローを示す図である。
【図３０】図３０は、更新処理フローを示す図である。
【図３１】図３１は、更新処理後の状態例を示す図である。
【図３２】図３２は、更新処理後の状態例を示す図である。
【図３３】図３３は、確定処理フローを示す図である。
【図３４】図３４は、確定処理後の状態例を示す図である。
【図３５】図３５は、上書きモード処理フローを示す図である。
【図３６】図３６は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
本実施の形態における文字列編集では、一括貼り付けと動的貼り付けとを行なう。一括貼り付けは、一般に「貼り付け」として知られている従来技術に相当する。一括貼り付けでは、既存の文字列データから一部の文字列データが共用のメモリ領域にコピーされ、その後、共用のメモリ領域に保持されている文字列データが、作成側の文字列データへ挿入される。共用のメモリ領域は、例えばクリップボードと呼ばれることがある。尚、この例では、マウスとキーボードとを用いた操作の例を示す。但し、タッチパネルを用いて操作するようにしてもよい。
【００１１】
まず、一括貼り付けの操作例について説明する。一括貼り付けの操作は、既存の文字列に対する操作から始まる。図１に、文字列のコピーを指示する操作例を示す。この例では、既存の文字列データが展開されている編集エリアを、コピー元の編集エリアと呼ぶ。
【００１２】
図１の上段に示されているコピー元の編集エリア１０１には、「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」の文字列が表示されている。「、」と「東」との間にマウスカーソルが表示されているときに、左ボタンが一定時間を超えて押下され続けるとドラッグ操作が開始された状態に移行する。
【００１３】
図１の中段に示すように、ユーザがコピー元の編集エリア１０３内のドラッグによって「東地区小学校合同大運動会が」まで範囲を拡げて、左ボタンを放す操作を行なうと、選択範囲が確定する。このとき、選択範囲に含まれる文字列は、反転状態で表示されている。
【００１４】
そして、図１の下段に示すように、ユーザがコピー元の編集エリア１０５内で右ボタンをクリックする操作を行なうと、メニューが開く。そして、ユーザが、メニュー上で左ボタンをクリックし、又は右ボタンをクリックして「コピー」の項目を選択する操作を行なうと、選択範囲に含まれる文字列データの「東地区小学校合同大運動会が」が、共用のメモリ領域に格納される。
【００１５】
次に、作成側の文字列に対する操作に移る。図２に、一括貼り付けを指示する操作例を示す。この例では、作成側の文字列データが展開されている編集エリアを、コピー先の編集エリアと呼ぶ。
【００１６】
図２の上段に示されているコピー先の編集エリア２０１には、「今月は、が行なわれます。」の文字列が表示されている。「、」と「が」との間にマウスカーソルが表示されているときに、ユーザが左ボタンをクリックする操作を行なうと、その位置に挿入カーソルが表示される。この例では、挿入モードで挿入カーソルが表示されるが、上書きモードの場合には、上書きカーソルが表示される。
【００１７】
図２の中段に示すように、ユーザがコピー先の編集エリア２０３内で右ボタンをクリックする操作を行なうと、メニューが開く。そして、ユーザがメニュー上で左ボタンをクリックし、又は右ボタンをクリックして「一括貼り付け」の項目を選択する操作を行なうと、図２の下段に示すように、挿入カーソルが表示されていた位置に、共用のメモリ領域に格納されている「東地区小学校合同大運動会が」の文字列が挿入される。
【００１８】
但し、この例では、作成側の文字列に助詞の「が」が含まれ、共用のメモリ領域に格納されていた文字列にも助詞の「が」が含まれているため、貼り付けた結果の文字列データにおいて助詞の「が」が、重複する。このような場合には、一括貼り付けの操作を行なった後で、ユーザが、助詞の「が」の一方を削除させる操作を行なう。
【００１９】
また、貼り付けた結果において文字が足りないこともある。図３に、一括貼り付けの別の例を示す。既存の文字列（「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」）は、図１の場合と同様である。操作の手順も図１の場合と同様である。但し、図３の上段に示したコピー元の編集エリア３０１では、助詞の「が」を含まない「東地区小学校合同大運動会」の文字列の範囲が選択されている。
【００２０】
一方、図３の中段に示したように、作成側の文字列である「今月は、行なわれます。」には、助詞の「が」が含まれていない。そして、図３の中段に示したように、コピー先の編集エリア３０３で挿入カーソルを「、」と「が」との間に表示させた状態で、ユーザは図２の場合と同様にメニューから「一括貼り付け」の項目を選択する操作を行なう。
【００２１】
一括貼り付けの結果は、図３の下段に示したコピー先の編集エリア３０５のように「今月は、東地区小学校合同大運動会行なわれます。」となる。この例では、作成側の文字列に助詞の「が」が無く、共用のメモリ領域に格納されていた文字列にも助詞の「が」が無いため、貼り付けた結果の文字列データにおいて助詞の「が」が、欠落している。このような場合には、一括貼り付けの操作を行なった後で、ユーザが、助詞の「が」を挿入する操作を行なう。
【００２２】
以上のように、一括貼り付けの場合には、貼り付ける文字列をコピー元でドラッグするときに、適切な範囲を選択しなければ誤りが生じる。しかし、ドラッグする段階で一括貼り付けの結果を想像して適切な範囲を選択するように注意することは、面倒である。
【００２３】
続いて、動的貼り付けについて説明する。動的貼り付けでは、作成側の文字列における挿入位置を先に指定して、既存の文字列において選択される範囲の変化に応じて、選択された範囲に含まれる文字列を作成側の文字列に挿入した態様で表示する。
【００２４】
図４乃至図８に、動的貼り付けを指示する操作例を示す。まず、図４を用いて、作成側の文字列に対する操作について説明する。図４の上段に示したコピー先の編集エリア４０１に表示されている文字列は、図２の上段に示したコピー先の編集エリア２０１の場合と同様に「今月は、が行なわれます。」である。「、」と「が」との間にマウスカーソルが表示されているときに、ユーザが左ボタンをクリックする操作を行なうと、その位置に挿入カーソルが表示される。この例では、挿入モードで挿入カーソルが表示されるが、上書きモードの場合には、上書きカーソルが表示される。
【００２５】
図４の中段に示すように、ユーザがコピー先の編集エリア４０３内で右ボタンをクリックする操作を行なうと、メニューが開く。そして、ユーザがメニュー上で左ボタンをクリックし、又は右ボタンをクリックして「動的貼り付け」の項目を選択する操作を行なうと、図４の下段に示すように、メニューが閉じる。
【００２６】
続いて、図５乃至図８を用いて、既存の文字列に対する操作と、作成側の文字列が表示される態様について説明する。図５の上段に示したコピー元の編集エリア５０１に表示されている文字列は、図１の上段に示したコピー元の編集エリア１０１の場合と同様に「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」である。「、」と「東」との間にマウスカーソルが表示されているときに、左ボタンが一定時間を超えて押下され続けるとドラッグ操作が開始された状態に移行する。
【００２７】
一方、コピー先の編集エリア５０３は、図４の下段に示したコピー先の編集エリア４０５と同じ状態である。
【００２８】
図６の説明に移る。図６は、コピー元の編集エリア６０１におけるドラッグによって選択範囲を拡げる過程で、「東」の文字が選択された状態を示している。このとき、選択範囲に含まれる「東」の文字は、反転状態で表示されている。
【００２９】
一方、コピー先の編集エリア６０３では、図４の上段に示したコピー先の編集エリア４０１でクリックされたカーソル位置に「東」の文字が挿入された態様で、作成側の文字列が表示されている。このとき、挿入された「東」の文字には、下線が付されている。下線は、まだ挿入が確定していない文字であることを示している。
【００３０】
図７の説明に移る。図７は、コピー元の編集エリア７０１におけるドラッグによって選択範囲が「会」の文字まで拡げられた状態を示している。このとき、選択範囲に含まれる「東地区小学校合同大運動会」の文字列は、反転状態で表示されている。
【００３１】
一方、コピー先の編集エリア７０３では、図４の上段に示したコピー先の編集エリア４０１でクリックされたカーソル位置に「東地区小学校合同大運動会」の文字列が挿入された態様で、作成側の文字列が表示されている。このとき、挿入された「東地区小学校合同大運動会」の文字列には、下線が付されている。
【００３２】
ここで、ドラッグによって選択範囲を狭めれば、コピー元の編集エリア７０１において反転状態で表示される文字列も短くなる。また、その動きに同期して、コピー先の編集エリア７０３において下線付きで表示されている挿入部分の文字列も短くなる。
【００３３】
図８の説明に移る。図７に示したコピー元の編集エリア７０１の状態で、ユーザが左ボタンを放す操作を行なうと、選択範囲が確定する。そして、選択範囲が確定するとドラッグ操作が終わるので、コピー元の編集エリア８０１に示すように反転状態は解消する。つまり、図５のコピー元の編集エリア５０１に示した当初の状態と同様になる。但し、カーソルの位置は移動している。
【００３４】
一方、作成側の文字列では、確定した選択範囲に含まれていた文字列「東地区小学校合同大運動会」の挿入が確定する。従って、コピー先の編集エリア８０３には、「今月は、東地区小学校合同大運動会が行なわれます。」の文字列が表示される。このとき、挿入された文字列に付されていた下線は消える。下線が消えることによって、ユーザは動的貼り付けが確定したことを認識する。
【００３５】
上述したように、図７のコピー元の編集エリア７０１においてドラッグ操作で範囲を選択しているときに、ユーザはコピー先の編集エリア７０３において動的貼り付け後の文字列の態様を確認することができる。そして、適切な範囲が選択されていることを確認した上で、図８のコピー元の編集エリア８０１に示したように選択範囲を確定させ、図８のコピー先の編集エリア８０３に示したように意図した通りの結果を得ることができる。従って、図２のコピー先の編集エリア２０５に示したように助詞の「が」が重複するような事態は避けられる。
【００３６】
図９に、動的貼り付けを行なう別の例を示す。図３のコピー先の編集エリア３０３に示した作成側の文字列と同じ「今月は、行なわれます。」の文字列に対して動的貼り付けを行なう様子を示している。
【００３７】
コピー元の編集エリア９０１に表示されている文字列は、上述した例と同様に「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」である。
【００３８】
この例においても、コピー先の編集エリア９０３における表示によって、貼り付け後の文字列の態様を確認することができる。そして、適切な範囲が選択されていることを確認した上で、図９のコピー元の編集エリア９０１に示したように選択範囲を確定させれば、意図した通りの結果を得ることができる。従って、図３のコピー先の編集エリア３０５に示したように助詞の「が」が欠落するような事態は避けられる。以上で、本実施の形態に係る操作例についての説明を終える。
【００３９】
続いて、編集装置１００１の構成について説明する。図１０に、編集装置１００１のモジュール構成例を示す。編集装置１００１は、編集部１００３ａ、編集部１００３ｂ、共用記憶部１００５及びオペレーティングシステム部１００７を有している。編集部１００３ａと編集部１００３ｂとは、いずれも編集部１００３の例である。編集部１００３ａと編集部１００３ｂとは、異なるプロセスとして動作してもよいし、同一のプロセスとして動作するようにしてもよい。
【００４０】
編集部１００３は、例えば、文書エディタやワープロソフトなどの文字列の編集を目的とするモジュールである。但し、編集部１００３は、補助的に文字列の編集を行なうものであってもよい。つまり、文書に限らず、例えば名前、メール本文、チャットのメッセージ或いはメモなどに、ユーザの操作によって文字列を入力するモジュールは、編集部１００３の例に相当する。
【００４１】
また、既存の文字列データを表示する方のモジュールは、文字列を編集しないもの（例えば、ブラウザ）であってもよい。つまり、文字列データを文字列として表示し、表示された文字列の一部を選択させ、選択された文字列のデータを共用記憶部１００５に格納させる処理を行なうものであれば、文字の入力や貼り付けの処理を行わないモジュールであっても、動的貼り付けのための文字列をコピーするモジュールとして用いられる。
【００４２】
共用記憶部１００５は、編集部１００３ａと編集部１００３ｂとからアクセスされ、編集部１００３ａと編集部１００３ｂとにおいて共用されるデータを記憶する。共用記憶部１００５は、上述した共用のメモリ領域に相当する。共用記憶部１００５は、例えばメインメモリに設けられる。但し、他のメモリ領域に設けるようにしてもよい。
【００４３】
編集部１００３ａと編集部１００３ｂとは、共用記憶部１００５からデータを直接読んでもよいし、オペレーティングシステム部１００７を介して読むようにしてもよい。また、編集部１００３ａと編集部１００３ｂとは、共用記憶部１００５にデータを直接書いてもよいし、オペレーティングシステム部１００７を介して書くようにしてもよい。
【００４４】
コピー元の編集部１００３とコピー先の編集部１００３とが、同一のプロセスとして動作する場合には、共用記憶部１００５を当該プロセスの記憶領域に設けるようにしてもよい。
【００４５】
共用記憶部１００５の構成について説明する。図１１に、共用記憶部１００５の構成例を示す。共用記憶部１００５には、転送モードを記憶するための領域と、転送バッファとして用いられる領域とが設けられている。
【００４６】
転送モードには、「一括モード」或いは「動的モード」が設定される。「一括モード」は、選択範囲に含まれる文字列のデータが一括して転送バッファに転送されるモードである。「動的モード」は、選択範囲に含まれる文字列のデータが随時転送バッファに転送されるモードである。また、「動的モード」から「一括モード」への切り替えは、動的モードにおいて転送される文字列が確定したことを意味する。つまり、コピー元の編集部１００３が転送モードを「動的モード」から「一括モード」へ切り替える処理は、コピー元の編集部１００３がコピー先の編集部１００３へ動的モードにおいて転送される文字列が確定したことを通知することに相当する。
【００４７】
転送バッファは、編集部１００３ａから編集部１００３ｂへ転送される文字列データ、或いは編集部１００３ｂから編集部１００３ａへ転送される文字列データを格納するために用いられる。
【００４８】
転送モードが「一括モード」である場合には、コピー元の編集部１００３は、一括して文字列データを転送バッファに格納する。そして、コピー先の編集部１００３は、転送バッファから一括して文字列データを取得する。
【００４９】
転送モードが「動的モード」である場合には、コピー元の編集部１００３は、変化する範囲の文字列のデータを随時転送バッファに格納する。そして、コピー先の編集部１００３は、転送バッファから変化する文字列データを随時取得する。
【００５０】
図１０の説明に戻る。オペレーティングシステム部１００７は、例えばマウス或いはキーボードなどのデバイスにおいて検出した信号に応じて、イベントを発生させる。マウス操作に関して、ボタンが押されてから放されるまでの時間が所定閾値よりも短い場合には、オペレーティングシステム部１００７は、ボタンのクリックであると判定する。一方、ボタンが押されてから放されるまでの時間が所定閾値以上の場合には、オペレーティングシステム部１００７は、ボタンの押下であると判定する。
【００５１】
上述した編集部１００３ａ、編集部１００３ｂ及びオペレーティングシステム部１００７は、ハードウエア資源（例えば、図３６）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。また、上述した共用記憶部１００５は、ハードウエア資源（例えば、図３６）を用いて実現される。
【００５２】
図１２に、編集部１００３の構成例を示す。編集部１００３は、受付部１２０１、表示処理部１２０３、第１挿入部１２０５、置換部１２０７、移行部１２０９、保存部１２１１、第２挿入部１２１３、選択部１２１５、第３挿入部１２２３及び内部記憶部１２２９を有している。
【００５３】
受付部１２０１は、例えば、オペレーティングシステム部１００７からイベントを取得し、ユーザからの各種の指示を受け付ける処理を行なう。この例では、受付部１２０１は、メニューの制御に関する処理も行なう。表示処理部１２０３は、例えば編集エリアに文字列やカーソルを表示させる処理を行なう。
【００５４】
第１挿入部１２０５は、挿入モードにおいて、文字キーの押下に応じて、編集中の文字列に文字を挿入する処理を行なう。置換部１２０７は、上書きモードにおいて、文字キーの押下に応じて、編集中の文字列の文字を置換する処理を行なう。移行部１２０９は、例えば編集モードを変更する処理を行なう。編集モードについては、後述する。保存部１２１１は、選択された文字列のデータを共用記憶部１００５の転送バッファに保存させる処理を行なう。第２挿入部１２１３は、動的張り付けモードにおいて、共用記憶部１００５の転送バッファから文字列データを読み取り、読み取った文字列データを貼り付け先の文字列データのカーソル位置に挿入する処理を行なう。
【００５５】
選択部１２１５は、例えばドラッグ操作によって文字列における一部の範囲を選択させる処理を行なう。選択部１２１５は、開始部１２１７、変更部１２１９及び終了部１２２１を有している。開始部１２１７は、範囲の選択を開始する処理を行なう。変更部１２１９は、選択範囲を変更させる処理を行なう。終了部１２２１は、範囲の選択を終える処理を行なう。
【００５６】
第３挿入部１２２３は、動的貼り付けによって文字列を挿入する処理を実行する。第３挿入部１２２３は、更新部１２２５と確定部１２２７とを有している。更新部１２２５は、貼り付けられる文字列の表示を動的に変化させる処理を行なう。確定部１２２７は、貼り付けられる文字列を確定させる処理を行なう。
【００５７】
内部記憶部１２２９は、編集部１００３の内部で用いられるデータを記憶する。図１３に、内部記憶部１２２９の構成例を示す。
【００５８】
内部記憶部１２２９は、編集モードを記憶するための領域を有している。編集モードには、「挿入モード」、「上書きモード」或いは「動的貼り付けモード」が設定される。「挿入モード」は、編集エリアにおける文字列中に挿入カーソルを表示し、文字キーが押下されると、挿入カーソルの位置に新たな文字を挿入するモードである。「上書きモード」は、編集エリアにおける文字列中に上書きカーソルを表示し、文字キーが押下されると、上書きカーソルの文字を新たな文字に置換するモードである。「動的貼り付けモード」は、挿入カーソルの位置又は上書きカーソルの位置に、貼り付け対象の文字列を動的に表示させ、貼り付け対象が確定するとその文字列を挿入カーソルの位置又は上書きカーソルの位置に挿入するモードである。
【００５９】
内部記憶部１２２９は、カーソル位置を記憶するための領域を有している。カーソル位置には、編集されている文字列における挿入カーソル或いは上書きカーソルの位置が設定される。
【００６０】
内部記憶部１２２９は、選択モードを記憶するための領域、選択範囲の始点を記憶するための領域及び選択範囲の終点を記憶するための領域を有している。選択モードは、例えばフラグ形式のデータである。つまり、選択モードには、「ＯＮ」あるいは「ＯＦＦ」が設定される。選択モードが「ＯＮ」であれば、範囲の選択が行なわれている状態であることを示す。選択範囲の始点に整数Ｎが設定されれば、Ｎ＋１文字目から範囲が始まることを示す。選択範囲の終点に整数Ｍが設定されれば、Ｍ文字目までで範囲が終わることを示す。選択範囲の始点と選択範囲の終点とが一致する場合には、範囲が選択されていないことを意味する。
【００６１】
内部記憶部１２２９は、編集バッファとして用いられる領域を有している。編集バッファには、編集中の文字列を示すデータが格納される。表示バッファには、編集エリアに表示される文字列を示すデータが格納される。尚、表示バッファに格納される文字列には、反転や下線などのような文字の表示態様を指定するコードが含まれる場合がある。
【００６２】
図１２に示した受付部１２０１、表示処理部１２０３、第１挿入部１２０５、置換部１２０７、移行部１２０９、保存部１２１１、第２挿入部１２１３、選択部１２１５、開始部１２１７、変更部１２１９、終了部１２２１、第３挿入部１２２３、更新部１２２５及び確定部１２２７は、ハードウエア資源（例えば、図３６）と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。また、上述した内部記憶部１２２９は、ハードウエア資源（例えば、図３６）を用いて実現される。
【００６３】
次に、編集部１００３の処理について説明する。図１４に、編集部１００３のメイン処理フローを示す。編集部１００３は、内部記憶部１２２９に設けられた編集モードに「挿入モード」が設定されているか否かを判定する（Ｓ１４０１）。内部記憶部１２２９に設けられた編集モードに「挿入モード」が設定されていると判定した場合には、編集部１００３は、挿入モード処理を実行する（Ｓ１４０３）。
【００６４】
図１５に、挿入モード処理フローを示す。受付部１２０１は、オペレーティングシステム部１００７からイベントを取得する（Ｓ１５０１）。受付部１２０１は、取得したイベントが文字キーの押下であるか否かを判定する（Ｓ１５０３）。取得したイベントが文字キーの押下であると判定した場合には、第１挿入部１２０５は、文字を挿入する（Ｓ１５０５）。Ｓ１５０５における文字の挿入は、従来技術による。例えば、第１挿入部１２０５は、内部記憶部１２２９からカーソル位置を読み、編集バッファに格納されている文字列データのカーソル位置に、押下された文字キーに対応する文字を挿入する。更に、第１挿入部１２０５は、編集バッファに格納されている文字列データを表示バッファにコピーする。そして、表示処理部１２０３は、表示バッファに格納されている文字列データを編集エリアに表示させる。文字を挿入すると挿入モード処理を終え、図１４に示したＳ１４０１の処理に戻る。
【００６５】
Ｓ１５０３において、Ｓ１５０１で取得したイベントが文字キーの押下ではないと判定した場合には、受付部１２０１は、Ｓ１５０１で取得したイベントが左ボタンクリックであるか否かを判定する（Ｓ１５０７）。Ｓ１５０１で取得したイベントが左ボタンクリックであると判定した場合には、受付部１２０１は、受付処理を実行する（Ｓ１５０９）。
【００６６】
図１６に、受付処理フローを示す。受付部１２０１は、オペレーティングシステム部１００７からクリック位置を取得する（Ｓ１６０１）。クリック位置は、例えば表示デバイスの表示エリアにおけるドット単位の位置を示す。受付部１２０１は、クリック位置に基づいてカーソル位置を算出する（Ｓ１６０３）。カーソル位置は、例えば編集中の文字列データにおける文字間の位置を示す。この例では、カーソル位置がＮであれば、Ｎ番目の文字とＮ＋１番目の文字の間の位置を示す。
【００６７】
受付部１２０１は、内部記憶部１２２９に設けられたカーソル位置の領域に、算出したカーソル位置を設定する（Ｓ１６０５）。表示処理部１２０３は、カーソル位置に相当する編集エリアの位置に、カーソルを表示させる（Ｓ１６０７）。表示処理部１２０３は、挿入モードであることを示す挿入カーソルを表示させる。尚、上書きモードでは、表示処理部１２０３は、上書きモードであることを示す上書きカーソルを表示させる。
【００６８】
図１７に、受付処理後の状態例を示す。この例は、図４の上段に示したように、コピー先の編集エリア４０１において左ボタンがクリックされた後の状態を示している。
【００６９】
まず、コピー先の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードには、「挿入モード」が設定されている。また、４文字目と５文字目との間のクリック位置に基づいて、カーソル位置に「４」が設定されている。従って、コピー先の編集エリア４０１の４文字目と５文字目との間に、挿入カーソルが表示されている。
【００７０】
このとき、ドラッグによる範囲の選択は行なわれていないので、選択モードは「ＯＦＦ」であり、選択範囲の始点と選択範囲の終点とには無効を示すコードが設定されている。
【００７１】
編集バッファには、「今月は、が行なわれます。」の文字列データが格納されている。表示バッファにも、「今月は、が行なわれます。」の文字列データが格納されている。従って、表示バッファの文字列データに基づいて、コピー先の編集エリア４０１に「今月は、が行なわれます。」の文字列が表示されている。
【００７２】
続いて、共用記憶部１００５の状態について説明する。まだ動的モードに移行していないので、転送モードには「一括モード」が設定されている。また、転送バッファには何も設定されていないので、空の状態になっている。以上で、受付処理後の状態例についての説明を終える。
【００７３】
図１６に示した受付処理を終えると、図１５に示した挿入モード処理も終え、図１４に示したＳ１４０１の処理に戻る。
【００７４】
図１５に示したＳ１５０７において、Ｓ１５０１で取得したイベントが左ボタンクリックではないと判定した場合には、受付部１２０１は、Ｓ１５０１で取得したイベントが右ボタンクリックであるか否かを判定する（Ｓ１５１１）。Ｓ１５０１で取得したイベントが右ボタンクリックであると判定した場合には、受付部１２０１は、メニュー処理を実行する（Ｓ１５１３）。
【００７５】
図１８に、メニュー処理フローを示す。受付部１２０１は、「コピー」、「一括貼り付け」及び「動的貼り付け」などの項目の選択を促すメニューを表示する（Ｓ１８０１）。そして、受付部１２０１は、オペレーティングシステム部１００７からイベントを取得する（Ｓ１８０３）。
【００７６】
受付部１２０１は、取得したイベントが「動的貼り付け」の選択に相当するクリックであるか否かを判定する（Ｓ１８０５）。取得したイベントが「動的貼り付け」の選択に相当するクリックであると判定した場合には、移行部１２０９は、移行処理を実行する（Ｓ１８０７）。
【００７７】
図１９に、移行処理フローを示す。移行部１２０９は、内部記憶部１２２９に設けられた編集モードを「動的貼り付けモード」に変更する（Ｓ１９０１）。移行部１２０９は、共用記憶部１００５に設けられた転送モードを「動的モード」に変更する（Ｓ１９０３）。移行部１２０９は、内部記憶部１２２９に設けられた転送バッファをクリアする（Ｓ１９０５）。
【００７８】
図２０に、移行処理後の状態例を示す。この例は、図４の下段に示したように、コピー先の編集エリア４０５のメニューから「動的貼り付け」が選択された後の状態を示している。
【００７９】
まず、コピー先の編集部１００３における内部記憶部１２２９の状態について説明する。メニューにおいて「動的貼り付け」が選択されたので、編集モードが「挿入モード」から「動的貼り付けモード」に切り替わっている。挿入カーソルは移動していないので、カーソル位置の「４」は変更されない。この例では、動的貼り付けモードにおいて挿入カーソルを表示させていない。但し、動的貼り付けモードにおいて挿入カーソルを表示させるようにしてもよい。また、動的貼り付けモードにおいて動的貼り付けモードであることを示すカーソルを表示させるようにしてもよい。
【００８０】
また、ドラッグによる範囲の選択は行なわれていないので、選択モードの「ＯＦＦ」と、選択範囲の始点の無効を示すコードと、選択範囲の終点の無効を示すコードとは、変更されない。
【００８１】
編集バッファに格納されている文字列データも変更されない。また、表示バッファに格納されている文字列データも変更されない。従って、コピー先の編集エリア４０１に表示されている文字列「今月は、が行なわれます。」は、変わっていない。
【００８２】
続いて、共用記憶部１００５の状態について説明する。転送モードが、「一括モード」から「動的モード」に切り替わっている。また、転送バッファはクリアされ、空の状態になっている。以上で、移行処理後の状態例についての説明を終える。
【００８３】
図１８の説明に戻る。Ｓ１８０７における移行処理を終えると、受付部１２０１は、メニューを消す（Ｓ１８１７）。
【００８４】
Ｓ１８０５において、Ｓ１８０３で取得したイベントが「動的貼り付け」の選択に相当するクリックではないと判定した場合には、受付部１２０１は、Ｓ１８０３で取得したイベントが「コピー」の選択に相当するクリックであるか否かを判定する（Ｓ１８０９）。Ｓ１８０３で取得したイベントが「コピー」の選択に相当するクリックであると判定した場合には、保存部１２１１は、内部記憶部１２２９に設けられた編集バッファに格納されている文字列データのうち、選択範囲に含まれる文字列データを共用記憶部１００５の転送バッファに格納する（Ｓ１８１１）。メニューにおいて「コピー」が選択された場合の処理は、従来技術によるので、これ以上説明しない。そして、受付部１２０１は、メニューを消す（Ｓ１８１７）。
【００８５】
Ｓ１８０９において、Ｓ１８０３で取得したイベントが「コピー」の選択に相当するクリックではないと判定した場合には、受付部１２０１は、Ｓ１８０３で取得したイベントが「一括貼り付け」の選択に相当するクリックであるか否かを判定する（Ｓ１８１３）。Ｓ１８０３で取得したイベントが「一括貼り付け」の選択に相当するクリックであると判定した場合には、第２挿入部１２１３は、共用記憶部１００５の転送バッファから文字列データを読み取り、読み取った文字列データを内部記憶部１２２９に設けられた編集バッファに格納されている文字列データに挿入する（Ｓ１８１５）。メニューにおいて「一括貼り付け」が選択された場合の処理は、従来技術において「貼り付け」が選択された場合と同様であるので、これ以上説明しない。そして、受付部１２０１は、メニューを消す（Ｓ１８１７）。
【００８６】
Ｓ１８１３において、Ｓ１８０３で取得したイベントが「一括貼り付け」の選択に相当するクリックではないと判定した場合には、受付部１２０１は、メニューを消す（Ｓ１８１７）。
【００８７】
メニューを消すと、受付部１２０１はメニュー処理を終える。メニュー処理を終えると図１５に示した挿入モード処理も終え、図１４に示したＳ１４０１の処理に戻る。
【００８８】
図１５の説明に戻る。Ｓ１５１１において、Ｓ１５０１で取得したイベントが右ボタンクリックではないと判定した場合には、受付部１２０１は、取得したイベントが左ボタンの押下であるか否かを判定する（Ｓ１５１５）。取得したイベントが左ボタンの押下であると判定した場合には、選択部１２１５は、選択処理を実行する（Ｓ１５１７）。
【００８９】
図２１に、選択処理フローを示す。開始部１２１７は、開始処理を実行する（Ｓ２１０１）。
【００９０】
図２２に、開始処理フローを示す。開始部１２１７は、左ボタンの押下のイベントに含まれる左ボタンの押下位置を特定する（Ｓ２２０１）。左ボタンの押下位置は、左ボタンが押下されたときの表示エリアにおけるマウスの位置である。開始部１２１７は、押下位置に基づいてカーソル位置を算出する（Ｓ２２０３）。開始部１２１７は、内部記憶部１２２９に設けられたカーソル位置の領域に、算出したカーソル位置を設定する（Ｓ２２０５）。表示処理部１２０３は、編集エリアにおけるカーソル位置に挿入カーソルを表示させる（Ｓ２２０７）。
【００９１】
開始部１２１７は、内部記憶部１２２９に設けられた選択モードをＯＮに変更する（Ｓ２２０９）。開始部１２１７は、内部記憶部１２２９に設けられた選択範囲の始点を設定する（Ｓ２２１１）。このとき、選択範囲の始点は、カーソル位置と同じである。開始部１２１７は、内部記憶部１２２９に設けられた選択範囲の終点を設定する（Ｓ２２１３）。このとき、選択範囲の終点は、カーソル位置と同じである。
【００９２】
図２３に、開始処理後の状態例を示す。この例は、図５の上段に示したように、コピー元の編集エリア５０１の文字列における文字間にマウスカーソルが表示されているときに、左ボタンが押下された後の状態を示している。
【００９３】
まず、コピー元の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードには、「挿入モード」が設定されている。また、１１文字目と１２文字目との間の押下位置に基づいて、カーソル位置に「１１」が設定されている。従って、コピー先の編集エリア４０１の４文字目と５文字目との間に、挿入カーソルが表示されている。
【００９４】
ドラッグによる範囲の選択が開始されたので、選択モードは、「ＯＦＦ」から「ＯＮ」に切り替わっている。また、選択範囲の始点にはカーソル位置と同様に「１１」が設定されている。このとき、まだ範囲が拡がっていないので、選択範囲の終点にはカーソル位置と同様に「１１」が設定されている。
【００９５】
編集バッファには、「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」の文字列データが格納されている。表示バッファにも、「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」の文字列データが格納されている。従って、表示バッファの文字列データに基づいて、コピー元の編集エリア５０１に「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」の文字列が表示されている。
【００９６】
続いて、共用記憶部１００５の状態について説明する。転送モードに設定されている「動的モード」は、変更されない。また、転送バッファには、まだ文字列データが格納されていない。以上で、開始処理後の状態例についての説明を終える。
【００９７】
図２１の説明に戻る。Ｓ２１０１における開始処理を終えると、選択部１２１５は、オペレーティングシステム部１００７からイベントを取得する（Ｓ２１０３）。選択部１２１５は、取得したイベントがドラッグであるか否かを判定する（Ｓ２１０５）。取得したイベントがドラッグであると判定した場合には、変更部１２１９は、変更処理を実行する（Ｓ２１０７）。
【００９８】
図２４に、変更処理フローを示す。変更部１２１９は、ドラッグのイベントに含まれるドラッグ位置を特定する（Ｓ２４０１）。ドラッグ位置は、ドラッグを検出したときの表示エリアにおけるマウスカーソルの位置である。変更部１２１９は、ドラッグ位置に基づいてカーソル位置を算出する（Ｓ２４０３）。変更部１２１９は、算出したカーソル位置が内部記憶部１２２９に記憶されているカーソル位置と一致するか否かを判定する（Ｓ２４０５）。算出したカーソル位置が内部記憶部１２２９に記憶されているカーソル位置と一致すると判定した場合には、変更処理を終え、図２１に示したＳ２１０３に戻る。算出したカーソル位置が内部記憶部１２２９に記憶されているカーソル位置と一致すると判定した場合には、内部記憶部１２２９のデータ及び共用記憶部１００５のデータを更新しないからである。
【００９９】
一方、算出したカーソル位置が内部記憶部１２２９に記憶されているカーソル位置と一致しないと判定した場合には、変更部１２１９は、内部記憶部１２２９に記憶されているカーソル位置を変更する（Ｓ２４０７）。つまり、変更部１２１９は、内部記憶部１２２９に設けられたカーソル位置の領域に、算出したカーソル位置を記憶させる。表示処理部１２０３は、挿入カーソルの表示を停止させる（Ｓ２４０９）。但し、既に挿入カーソルの表示が停止している場合には、Ｓ２４０９の処理は省かれる。
【０１００】
変更部１２１９は、内部記憶部１２２９に設けられた選択範囲の終点を変更する（Ｓ２４１１）。このとき、変更部１２１９は、内部記憶部１２２９に設けられた選択範囲の終点にカーソル位置と同じ値を設定する。変更部１２１９は、内部記憶部１２２９に設けられた表示バッファに格納されている文字列データに、選択範囲を特定する反転コードを挿入する（Ｓ２４１３）。具体的には、変更部１２１９は、選択範囲の始点である文字の前に反転の始点を示すコードを挿入し、選択範囲の終点である文字の後に反転の終点を示すコードを挿入する。但し、既に反転の始点を示すコードが挿入されている場合には、Ｓ２４１３での挿入は省く。また、既に反転の終点を示すコードが挿入されている場合には、反転の終点を示すコードの位置を移動させる。
【０１０１】
表示処理部１２０３は、内部記憶部１２２９に設けられた表示バッファに格納されている文字列データを、編集エリアに表示させる（Ｓ２４１５）。変更部１２１９は、共用記憶部１００５に設けられた転送モードが「動的モード」であるか否かを判定する（Ｓ２４１７）。共用記憶部１００５に設けられた転送モードが「動的モード」であると判定した場合には、変更部１２１９は、内部記憶部１２２９に設けられた編集バッファに格納されている文字列データのうち、選択範囲に含まれる文字列データを共用記憶部１００５の転送バッファに格納する（Ｓ２４１９）。この処理によって、転送バッファに格納されている文字列データが書き換えられる。そして、変更部１２１９は、変更処理を終了する。
【０１０２】
一方、Ｓ２４１７において、共用記憶部１００５に設けられた転送モードが「動的モード」ではないと判定した場合には、変更部１２１９は、変更処理を終了する。つまり、一括モードでは、この段階で文字列データの転送を行わない。
【０１０３】
図２５に、変更処理後の状態例を示す。この例は、図６の上段に示したように、コピー元の編集エリア６０１に表示されている文字をドラッグで選択している状態を示している。そして、選択範囲に「東」の文字が含まれている。
【０１０４】
まず、コピー元の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードに設定されている「挿入モード」は、変更されない。また、１２文字目と１３文字目との間のドラッグ位置に基づいて、カーソル位置に「１２」が設定されている。この例では、ドラッグしているときに挿入カーソルを表示させていない。但し、ドラッグしているときも挿入カーソルを表示させるようにしてもよい。
【０１０５】
選択モードの「ＯＮ」と、選択範囲の始点の「１１」とは、変更されていない。選択範囲の終点に、カーソル位置と同様に「１２」が設定されている。つまり、選択範囲の終点は、「１１」から「１２」に変更されている。
【０１０６】
編集バッファに格納されている文字列データ「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」は、変更されていない。表示バッファでは、編集バッファに格納されている文字列データと同じ文字列データにおける選択範囲の始点である文字の前（１２文字目の前）に反転の始点を示すコード（図２５では、［ＲＳ］と示している。）が挿入されている。表示バッファでは、更に選択範囲の終点である文字の後（１２文字目の後）に反転の終点を示すコード（図２５では、［ＲＥ］と示している。）が挿入されている。従って、表示バッファの文字列データに基づいて、コピー元の編集エリア６０１に「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」の文字列が表示されている。そして、「東」の文字は、反転状態で表示されている。
【０１０７】
続いて、共用記憶部１００５の状態について説明する。転送モードに設定されている「動的モード」は、変更されない。転送バッファには、選択範囲に含まれる「東」の文字が格納されている。
【０１０８】
更に、図２６を用いて、変更処理によって選択範囲を拡げた場合の状態例について説明する。この例は、図７の上段に示したように、コピー元の編集エリア７０１に表示されている文字列をドラッグで選択している状態を示している。選択範囲に「東地区小学校合同大運動会」の文字列が含まれている。
【０１０９】
まず、コピー元の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードに設定されている「挿入モード」は、変更されない。また、２３文字目と２４文字目との間のドラッグ位置に基づいて、カーソル位置に「２３」が設定されている。
【０１１０】
選択モードの「ＯＮ」と、選択範囲の始点の「１１」とは、変更されていない。選択範囲の終点は、ドラッグ操作に伴い図２５に示した「１２」から増加し、この時点で「２３」となっている。
【０１１１】
編集バッファに格納されている文字列データ「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」は、変更されていない。表示バッファでは、編集バッファに格納されている文字列データと同じ文字列データにおける選択範囲の始点である文字の前（１２文字目の前）に反転の始点を示すコードが挿入されている。表示バッファでは、更に選択範囲の終点である文字の後（２３文字目の後）に反転の終点を示すコードが挿入されている。従って、表示バッファの文字列データに基づいて、コピー元の編集エリア７０１に「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」の文字列が表示されている。そして、「東地区小学校合同大運動会」の文字は、反転状態で表示されている。
【０１１２】
続いて、共用記憶部１００５の状態について説明する。転送モードに設定されている「動的モード」は、変更されない。転送バッファには、選択範囲に含まれる「東地区小学校合同大運動会」の文字が格納されている。以上で、変更処理後の状態例についての説明を終える。
【０１１３】
図２４に示した変更処理を終えると、図２１に示したＳ２１０３に戻る。Ｓ２１０５において、Ｓ２１０３で取得したイベントがドラッグではないと判定した場合には、選択部１２１５は、Ｓ２１０３で取得したイベントが左ボタンの解放であるか否かを判定する（Ｓ２１０９）。Ｓ２１０３で取得したイベントが左ボタンの解放ではないと判定した場合には、Ｓ２１０３に戻る。一方、Ｓ２１０３で取得したイベントが左ボタンの解放であると判定した場合には、終了部１２２１は、終了処理を実行する（Ｓ２１１１）。
【０１１４】
図２７に、終了処理フローを示す。終了部１２２１は、内部記憶部１２２９に設けられた選択モードを「ＯＦＦ」に変更する（Ｓ２７０１）。終了部１２２１は、内部記憶部１２２９に設けられた選択範囲の始点に無効を示すコードを設定し（Ｓ２７０３）、内部記憶部１２２９に設けられた選択範囲の終点にも無効を示すコードを設定する（Ｓ２７０５）。終了部１２２１は、内部記憶部１２２９に設けられた表示バッファに格納されている文字列データに挿入されている反転コードを削除する（Ｓ２７０７）。具体的には、変更部１２１９は、選択範囲の始点に挿入されている反転の始点を示すコードと、選択範囲の終点に挿入されている反転の終点を示すコードとを削除する。
【０１１５】
表示処理部１２０３は、内部記憶部１２２９に設けられた表示バッファに格納されている文字列データを、編集エリアに表示させる（Ｓ２７０９）。更に、表示処理部１２０３は、カーソルの表示が停止されていれば、カーソルの表示を再開させる（Ｓ２７１０）。
【０１１６】
終了部１２２１は、共用記憶部１００５に設けられた転送モードが「動的モード」であるか否かを判定する（Ｓ２７１１）。共用記憶部１００５に設けられた転送モードが「動的モード」であると判定した場合には、終了部１２２１は、共用記憶部１００５に設けられた転送モードを「一括モード」に変更する（Ｓ２７１３）。そして、終了部１２２１は、終了処理を終える。
【０１１７】
一方、Ｓ２７１１において、共用記憶部１００５に設けられた転送モードが「動的モード」ではないと判定した場合、つまり一括モードである場合には、終了部１２２１は、内部記憶部１２２９に設けられた編集バッファに格納されている文字列データのうち、選択範囲に含まれる文字列データを共用記憶部１００５の転送バッファに格納する（Ｓ２７１５）。そして、終了部１２２１は、終了処理を終える。
【０１１８】
図２８に、終了処理後の状態例を示す。この例は、図８の上段に示したように、コピー元の編集エリア８０１におけるドラッグ操作を終えた状態を示している。
【０１１９】
まず、コピー元の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードに設定されている「挿入モード」は、変更されない。また、カーソル位置の「２３」も、変更されていない。
【０１２０】
ドラッグによる範囲の選択が開始されたので、選択モードは、「ＯＮ」から「ＯＦＦ」に切り替わっている。更に、選択範囲の始点と選択範囲の終点とには、無効を示すコードが設定されている。
【０１２１】
編集バッファに格納されている文字列データは、変更されていない。表示バッファに格納されている文字列データのうち、反転の始点を示すコードと反転の終点を示すコードとが削除されている。従って、表示バッファの文字列データに基づいて、コピー元の編集エリア８０１に「さて、１０月１０日に、東地区小学校合同大運動会が予定されております。」の文字列が表示されている。範囲を選択しているときの反転状態は、解消している。
【０１２２】
続いて、共用記憶部１００５の状態について説明する。転送モードは、「動的モード」から「一括モード」に切り替わっている。転送バッファに格納されている「東地区小学校合同大運動会」の文字列データは、まだ削除されていない。以上で、終了処理後の状態例についての説明を終える。
【０１２３】
図２７に示した終了処理を終えると、図２１に示した選択処理も終える。更に、図１５に示した挿入モード処理も終え、図１４に示したＳ１４０１に戻る。
【０１２４】
図１５の説明に戻る。Ｓ１５１５において、Ｓ１５０１で取得したイベントが左ボタンの押下ではないと判定した場合には、受付部１２０１は、Ｓ１５０１で取得したイベントがＩＮＳＥＲＴキーの押下であるか否かを判定する（Ｓ１５１９）。Ｓ１５０１で取得したイベントがＩＮＳＥＲＴキーの押下であると判定した場合には、移行部１２０９は、内部記憶部１２２９に設けられた編集モードを「上書きモード」に変更する（Ｓ１５２１）。編集モードを「上書きモード」に変更すると、挿入モード処理を終え、図１４に示したＳ１４０１の処理に戻る。
【０１２５】
Ｓ１５１９において、Ｓ１５０１で取得したイベントがＩＮＳＥＲＴキーの押下ではないと判定した場合には、挿入モード処理を終え、図１４に示したＳ１４０１の処理に戻る。
【０１２６】
図１４の説明に戻る。Ｓ１４０１において、内部記憶部１２２９に設けられた編集モードに「挿入モード」が設定されていないと判定した場合には、編集部１００３は、内部記憶部１２２９に設けられた編集モードに「動的貼り付けモード」が設定されているか否かを判定する（Ｓ１４０５）。内部記憶部１２２９に設けられた編集モードに「動的貼り付けモード」が設定されていると判定した場合には、第３挿入部１２２３は、動的貼り付けモード処理を実行する（Ｓ１４０７）。
【０１２７】
図２９に、動的貼り付けモード処理フローを示す。更新部１２２５は、更新処理を実行する（Ｓ２９０１）。更新部１２２５は、更新処理において、挿入カーソルの位置又は上書きカーソルの位置に、貼り付け対象の文字列を動的に表示させる。
【０１２８】
図３０に、更新処理フローを示す。更新部１２２５は、内部記憶部１２２９に設けられた編集バッファに格納されている文字列データを、内部記憶部１２２９に設けられた表示バッファにコピーする（Ｓ３００１）。更新部１２２５は、共用記憶部１００５の転送バッファに格納されている文字列データを取得する（Ｓ３００３）。更新部１２２５は、内部記憶部１２２９に設けられた表示バッファに格納されている文字列データにおいてカーソル位置を特定し、特定されたカーソル位置にＳ３００３で取得した文字列データを挿入する（Ｓ３００５）。更新部１２２５は、挿入された文字列データの前に下線の始点を示すコードを挿入し、挿入された文字列データの後に下線の終点を示すコードを挿入する（Ｓ３００７）。表示処理部１２０３は、内部記憶部１２２９に設けられた表示バッファに格納されている文字列データを、編集エリアに表示させる（Ｓ３００９）。
【０１２９】
図３１に、更新処理後の状態例を示す。この例は、図６の下段に示したように、コピー先の編集エリア６０３において挿入される文字「東」が表示されている状態を示している。図３１に示した状態は、図２０に示した状態の続きである。
【０１３０】
まず、コピー先の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードに設定されている「動的貼り付けモード」は、変更されない。カーソル位置の「４」も、変更されない。
【０１３１】
また、選択モードの「ＯＦＦ」と、選択範囲の始点の無効を示すコードと、選択範囲の終点の無効を示すコードとは、変更されない。
【０１３２】
編集バッファに格納されている「今月は、が行なわれます。」の文字列データも変更されていない。表示バッファでは、挿入される文字「東」の前に下線の始点を示すコード（図３１では、［ＵＳ］と示している。）が挿入されている。表示バッファでは、更に挿入される文字「東」の後に下線の終点を示すコード（図３１では、［ＵＥ］と示している。）が挿入されている。従って、表示バッファの文字列データに基づいて、コピー先の編集エリア６０３に「今月は、東が行なわれます。」の文字列が表示されている。そして、「東」の文字には、下線が付されている。
【０１３３】
続いて、共用記憶部１００５の状態について説明する。転送モードに設定されている「動的モード」は、変更されない。転送バッファには、転送された「東」の文字が格納されている。このときの共用記憶部１００５の状態は、図２５に示した状態と同様である。
【０１３４】
更に、図３２を用いて、選択範囲が拡げられた場合の状態例について説明する。この例は、図７の下段に示したように、コピー先の編集エリア７０３において挿入される文字列「東地区小学校合同大運動会」が表示されている状態を示している。
【０１３５】
まず、コピー先の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードに設定されている「動的貼り付けモード」は、変更されない。カーソル位置の「４」も、変更されていない。
【０１３６】
また、選択モードの「ＯＦＦ」と、選択範囲の始点の無効を示すコードと、選択範囲の終点の無効を示すコードとは、変更されない。
【０１３７】
編集バッファに格納されている「今月は、が行なわれます。」の文字列データも変更されていない。表示バッファにおいて、挿入される文字列「東地区小学校合同大運動会」の前に下線の始点を示すコードが挿入されている。表示バッファにおいて、更に挿入される文字列「東地区小学校合同大運動会」の後に下線の終点を示すコードが挿入されている。従って、表示バッファの文字列データに基づいて、コピー先の編集エリア７０３に「今月は、東地区小学校合同大運動会が行なわれます。」の文字列が表示されている。そして、「東地区小学校合同大運動会」の文字列には、下線が付されている。
【０１３８】
続いて、共用記憶部１００５の状態について説明する。転送モードに設定されている「動的モード」は、変更されない。転送バッファには、転送された「東地区小学校合同大運動会」の文字列が格納されている。以上で、更新処理後の状態例についての説明を終える。
【０１３９】
図２９の説明に戻る。Ｓ２９０１における更新処理を終えると、第３挿入部１２２３は、共用記憶部１００５に設けられた転送モードが「一括モード」であるか否かを判定する（Ｓ２９０３）。共用記憶部１００５に設けられた転送モードが「一括モード」でないと判定した場合、つまり動的モードである場合には、Ｓ２９０１に戻る。
【０１４０】
一方、共用記憶部１００５に設けられた転送モードが「一括モード」であると判定した場合には、確定部１２２７は、確定処理を実行する（Ｓ２９０５）。つまり、コピー元の編集部１００３における終了部１２２１が、転送モードを「動的モード」から「一括モード」へ切り替えるタイミング（図２７のＳ２７１３）を待って、コピー先の編集部１００３における確定部１２２７は、貼り付け対象の文字列を挿入カーソルの位置又は上書きカーソルの位置に挿入する。
【０１４１】
図３３に、確定処理フローを示す。確定部１２２７は、共用記憶部１００５の転送バッファに格納されている文字列データを取得する（Ｓ３３０１）。確定部１２２７は、内部記憶部１２２９に設けられた編集バッファに格納されている文字列データにおいてカーソル位置を特定し、特定されたカーソル位置にＳ３３０１で取得した文字列データを挿入する（Ｓ３３０３）。確定部１２２７は、内部記憶部１２２９に設けられた編集バッファに格納されている文字列データを、内部記憶部１２２９に設けられた表示バッファにコピーする（Ｓ３３０５）。表示処理部１２０３は、内部記憶部１２２９に設けられた表示バッファに格納されている文字列データを、編集エリアに表示させる（Ｓ３３０７）。確定部１２２７は、共用記憶部１００５の転送バッファに格納されている文字列データを削除する（Ｓ３３０９）。
【０１４２】
図３４に、確定処理後の状態例を示す。この例は、図８の下段に示したように、コピー先の編集エリア８０３において文字列が挿入された状態を示している。
【０１４３】
まず、コピー先の編集部１００３における内部記憶部１２２９の状態について説明する。編集モードに設定されている「挿入」は、変更されない。カーソル位置の「４」も、変更されていない。
【０１４４】
また、選択モードの「ＯＦＦ」と、選択範囲の始点の無効を示すコードと、選択範囲の終点の無効を示すコードとは、変更されない。
【０１４５】
編集バッファには、「東地区小学校合同大運動会」の文字列データが挿入された「今月は、東地区小学校合同大運動会が行なわれます。」の文字列データが格納されている。表示バッファにも、編集バッファと同様に「今月は、東地区小学校合同大運動会が行なわれます。」の文字列データが格納されている。
【０１４６】
続いて、共用記憶部１００５の状態について説明する。転送モードが「動的モード」から「一括モード」に切り替わったときに、確定処理が実行される。転送バッファはクリアされ、空の状態になっている。以上で、確定処理後の状態例についての説明を終える。
【０１４７】
図３３に示した確定処理を終えると、図２９に示した動的貼り付けモード処理も終了し、図１４に示したＳ１４０１に戻る。
【０１４８】
図１４の説明に戻る。Ｓ１４０５において、内部記憶部１２２９に設けられた編集モードに「動的貼り付けモード」が設定されていないと判定した場合には、編集部１００３は、上書きモード処理を実行する（Ｓ１４０９）。
【０１４９】
図３５に、上書きモード処理フローを示す。Ｓ１５０１及びＳ１５０３の処理は、挿入モードの場合と同様である。
【０１５０】
Ｓ１５０３において、Ｓ１５０１で取得したイベントが文字キーの押下であると判定した場合には、置換部１２０７は、文字を上書きする（Ｓ３５０１）。Ｓ３５０１における文字の上書きは、従来技術による。例えば、置換部１２０７は、内部記憶部１２２９からカーソル位置を読み、編集バッファに格納されている文字列データにおいてカーソル位置を特定し、特定されたカーソル位置の次の文字を、押下された文字キーに対応する文字に置き換える。更に、置換部１２０７は、編集バッファに格納されている文字列データを表示バッファにコピーする。そして、表示処理部１２０３は、表示バッファに格納されている文字列データを編集エリアに表示させる。
【０１５１】
Ｓ１５０７乃至Ｓ１５１９の処理は、挿入モード処理において説明した通りである。但し、表示処理部１２０３がカーソルを表示させる処理では、挿入カーソルに代えて上書きカーソルを表示させる。
【０１５２】
Ｓ１５１９において、Ｓ１５０１で取得したイベントがＩＮＳＥＲＴキーの押下であると判定した場合には、移行部１２０９は、内部記憶部１２２９に設けられた編集モードを「挿入モード」に変更する（Ｓ３５０３）。編集モードを「挿入モード」に変更すると、上書きモード処理を終え、図１４に示したＳ１４０１の処理に戻る。
【０１５３】
Ｓ１５１９において、Ｓ１５０１で取得したイベントがＩＮＳＥＲＴキーの押下ではないと判定した場合には、上書きモード処理を終え、図１４に示したＳ１４０１の処理に戻る。
【０１５４】
上述した例では、文字列の全部又は一部をコピーする態様について説明したが、数字列の全部又は一部をコピーするようにしてもよい。楽譜の編集において、音符列の全部又は一部をコピーするようにしてもよい。また、例えばマークのような図形の全部又は一部をコピーするようにしてもよい。更に、その他の形式に係るデータの全部又は一部をコピーするようにしてもよい。
【０１５５】
上述した例では、コピーされる文字列に下線を付す例を示したが、文字の太さ、文字の色、文字の輝度や文字の大きさなどの他の態様によって、他の文字列と区別されるようにしてもよい。また、数字列をコピーする場合には、コピーされる数字列を下線、数字の太さ、数字の色、数字の輝度や数字の大きさなどの態様によって、他と区別されるようにしてもよい。音符列をコピーする場合には、音符列を下線、音符の線の太さ、音符の色、音符の輝度や音符の大きさなどの態様によって、他と区別されるようにしてもよい。マークのような図形をコピーする場合には、図形の線の太さ、図形の色や図形の輝度などの態様によって、他と区別されるようにしてもよい。表形式に係るデータをコピーする場合には、カラムの背景色などの態様によって、他と区別されるようにしてもよい。
【０１５６】
本実施の形態によれば、ユーザが元となるデータからコピー範囲を選択する際に、コピー結果を予め確認できる。例えば、文字列を貼り付ける場合には、ユーザが元となる文字列データからコピー範囲を選択する際に、コピー結果となる文字列を予め確認できる。
【０１５７】
また、張り付けられる文字列に下線を付すので、範囲の選択によって変更される部分を視覚的に把握しやすくなる。
【０１５８】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
【０１５９】
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、処理を並列に実行させるようにしても良い。
【０１６０】
なお、上で述べた編集装置１００１は、コンピュータ装置であって、図３６に示すように、メモリ２５０１とＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２５０３とハードディスク・ドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１６１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１６２】
本実施の形態に係るコピー制御方法は、データのコピー先の指定を受け付け、指定後、コピー元のデータの選択モードに移行し、選択モード中になされた選択範囲の変更処理に応じて、コピー先に表示するデータの内容を変更処理前のデータから変更処理後のデータに動的に変化させる処理を含む。
【０１６３】
このようにすれば、ユーザが元となるデータからコピー範囲を選択する際に、コピー結果を予め確認できる。
【０１６４】
上記データは、文字列データ又は数字列データであってもよい。
【０１６５】
このようにすれば、コピー元の文字列データ又は数字列データにおける選択範囲の変更に合わせて、コピー結果となる文字列データ又は数字列データをユーザが予め確認できる。
【０１６６】
更に、コピー先に表示するデータの内容を、コピー先の周りのデータと異なる態様で表示させるようにしてもよい。
【０１６７】
このようにすれば、変更される部分を視覚的に把握しやすくなる。
【０１６８】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
【０１６９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７０】
（付記１）
データのコピー先の指定を受け付け、
前記指定後、コピー元のデータの選択モードに移行し、
前記選択モード中になされた選択範囲の変更処理に応じて、前記コピー先に表示するデータの内容を前記変更処理前のデータから前記変更処理後のデータに動的に変化させる、
処理を実行することを特徴とするコンピュータを用いたコピー制御方法。
【０１７１】
（付記２）
前記データは、文字列データ又は数字列データである
付記１記載のコピー制御方法。
【０１７２】
（付記３）
前記コピー先に表示するデータの内容を、前記コピー先の周りのデータと異なる態様で表示させる
付記１又は２記載のコピー制御方法。
【０１７３】
（付記４）
データのコピー先の指定を受け付け、
前記指定後、コピー元のデータの選択モードに移行し、
前記選択モード中になされた選択範囲の変更処理に応じて、前記コピー先に表示するデータの内容を前記変更処理前のデータから前記変更処理後のデータに動的に変化させる、
処理をコンピュータに実行させることを特徴とするコピー制御プログラム。
【０１７４】
（付記５）
データのコピー先の指定を受け付ける受付部と、
前記指定後、コピー元のデータの選択モードに移行する移行部と、
前記選択モード中になされた選択範囲の変更処理に応じて、前記コピー先に表示するデータの内容を前記変更処理前のデータから前記変更処理後のデータに動的に変化させる更新部と
を有することを特徴とするコピー制御装置。
【符号の説明】
【０１７５】
１０１  コピー元の編集エリア  １０３  コピー元の編集エリア
１０５  コピー元の編集エリア  ２０１  コピー先の編集エリア
２０３  コピー先の編集エリア  ２０５  コピー先の編集エリア
３０１  コピー元の編集エリア  ３０３  コピー先の編集エリア
３０５  コピー先の編集エリア  ４０１  コピー先の編集エリア
４０３  コピー先の編集エリア  ４０５  コピー先の編集エリア
５０１  コピー元の編集エリア  ５０３  コピー先の編集エリア
６０１  コピー元の編集エリア  ６０３  コピー先の編集エリア
７０１  コピー元の編集エリア  ７０３  コピー先の編集エリア
８０１  コピー元の編集エリア  ８０３  コピー先の編集エリア
９０１  コピー元の編集エリア  ９０３  コピー先の編集エリア
１００１  編集装置  １００３  編集部
１００５  共用記憶部  １００７  オペレーティングシステム部
１２０１  受付部  １２０３  表示処理部
１２０５  第１挿入部  １２０７  置換部
１２０９  移行部  １２１１  保存部
１２１３  第２挿入部  １２１５  選択部
１２１７  開始部  １２１９  変更部
１２２１  終了部  １２２３  第３挿入部
１２２５  更新部  １２２７  確定部
１２２９  内部記憶部
【図１】
0006398566.tif 000002
【図２】
0006398566.tif 000003
【図３】
0006398566.tif 000004
【図４】
0006398566.tif 000005
【図５】
0006398566.tif 000006
【図６】
0006398566.tif 000007
【図７】
0006398566.tif 000008
【図８】
0006398566.tif 000009
【図９】
0006398566.tif 000010
【図１０】
0006398566.tif 000011
【図１１】
0006398566.tif 000012
【図１２】
0006398566.tif 000013
【図１３】
0006398566.tif 000014
【図１４】
0006398566.tif 000015
【図１５】
0006398566.tif 000016
【図１６】
0006398566.tif 000017
【図１７】
0006398566.tif 000018
【図１８】
0006398566.tif 000019
【図１９】
0006398566.tif 000020
【図２０】
0006398566.tif 000021
【図２１】
0006398566.tif 000022
【図２２】
0006398566.tif 000023
【図２３】
0006398566.tif 000024
【図２４】
0006398566.tif 000025
【図２５】
0006398566.tif 000026
【図２６】
0006398566.tif 000027
【図２７】
0006398566.tif 000028
【図２８】
0006398566.tif 000029
【図２９】
0006398566.tif 000030
【図３０】
0006398566.tif 000031
【図３１】
0006398566.tif 000032
【図３２】
0006398566.tif 000033
【図３３】
0006398566.tif 000034
【図３４】
0006398566.tif 000035
【図３５】
0006398566.tif 000036
【図３６】
0006398566.tif 000037