(57)【要約】【課題】パソコンのアプリケーションソフトの文字列自動修正機能を用いて所望の文字列を自動で入力する場合に、簡易に修正対象の文字列と修正後の文字列を登録および削除する方法を提供すること。【解決手段】本願に係る文字列変換方法は、予め登録した文字列と関連付けて所望の文字列に変換する文字列変換方法であって、第一の文字列と第二の文字列とを関連付けて登録するステップと、入力手段により第一の文字列を入力して確定するステップと、確定する際に記憶手段に記憶している登録した前記第一の文字列及び第二の文字列を一組とした所望の文字列として変換して表示手段に出力するステップを含むことを特徴とする。【選択図】図４
2010262325.tif 000002
【特許請求の範囲】
【請求項１】
予め登録した文字列と関連付けて所望の文字列に変換する文字列変換方法であって、
第一の文字列と第二の文字列とを関連付けて登録するステップと、
入力手段により第一の文字列を入力して確定するステップと、
確定する際に記憶手段に記憶している登録した前記第一の文字列及び第二の文字列を一組とした所望の文字列として変換して表示手段に出力するステップを含むことを特徴とする文字列変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばコンピュータ装置での入力した文字列の変換に関する方法等であって、特に入力した文字列に関連付けて登録した他の文字列を付随して出力する文字列変換方法、プログラム及びそのプログラムを記憶した記憶媒体に関する。
【背景技術】
【０００２】
コンピュータ装置において入力した文字列は、所定の変換方法により所望の文字列に変換することができるようになった。したがって、ユーザは所望の文字列全てを入力する必要がなくなった。また、これにより誤字脱字を未然に防ぐこともできるようになった。
【０００３】
特に、特許明細書を作成するにあたり、参照符号を自動入力するソフトウェアが提案されてきた。たとえば、こうした提案内容においては、マイクロソフト社の文書作成アプリケーションソフト「ワード」のＶＢＡを用いたプログラムにより、ユーザがキーボードの所定のキー（「コントロール」キーと「Ｊ」キーを同時操作）を操作することで、文章中に記載されている参照符号を解析して候補を表示し、ユーザが表示された候補から所望の参照符号を選択する方法を提案した。
【０００４】
しかしながら、当該方法では文章の入力中に所定のキーを操作する必要があり、煩わしさがある。また、関係のない候補を表示することがあるため、その表示されたものから選択するという手間があった。
【０００５】
また、特許文献１において開示されている技術思想により、ワープロ等の文書編集中の操作を効率良く行うために、編集位置に入力されている文字列から所定の要素名として文字列を検索し、当該文字列に符号を付して画面出力することができる。
【０００６】
しかしながら、当該技術思想では、文書編集中の範囲を検索領域としているため、当該文書編集中の範囲に存在しない限り符号を付して所望の文字列として出力することができない。また、当該検索領域を都度検索する処理が実行されるため、文書編集の量が多い分、検索時間が余分に必要となり、ひいては所望の文字列を出力するまでの処理時間が無駄であり、文書作成に多大な時間を要する。
【０００７】
また、非特許文献１において開示されている技術思想により、ワープロソフトの文字列自動修正機能（オートコレクト機能）を用いた参照符号の自動入力においては、前述したようなユーザがキーボードから所定のキーを操作したり、候補の参照符号を選択したりする必要はない。
【０００８】
しかしながら、当該方法ではオートコレクト機能に用いる「修正対象の文字列」と「修正後の文字列」のペアを登録する作業が煩雑であった。また、一度登録した文字列を削除したり、または入れ替えたりする作業も、特殊な知識を要するため煩雑であった。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−２５２６５号公報
【非特許文献】
【００１０】
【非特許文献１】http://www.shimizupatent.jp/jp/sspoTips2.html
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、パソコンのアプリケーションソフトの文字列自動修正機能を用いて所望の文字列を自動で入力する場合に、簡易に修正対象の文字列と修正後の文字列を登録および削除する方法を提供することである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するために、本願に係る文字列変換方法は、予め登録した文字列と関連付けて所望の文字列に変換する文字列変換方法であって、第一の文字列と第二の文字列とを関連付けて登録するステップと、入力手段により第一の文字列を入力して確定するステップと、確定する際に記憶手段に記憶している登録した前記第一の文字列及び第二の文字列を一組とした所望の文字列として変換して表示手段に出力するステップを含むことを特徴とする。
【発明の効果】
【００１３】
本願によれば、登録の重複がなくなる。また、余計なキー入力がなく、自動で符号をつけることができる。
【図面の簡単な説明】
【００１４】
【図１（ａ）】管理画面にてギヤボックスを登録する状態を示す図である。
【図１（ｂ）】ツールバーからギヤボックスを登録する状態を示す図である。
【図２（ａ）】重複確認用フローチャートである。
【図２（ｂ）】重複確認のフローチャートで判定したフラグ（Ｆｌａｇ１、Ｆｌａｇ２、Ｆｌａｇ３、Ｆｌａｇ４）の数値によって、登録処理をどのように行うのかを示した登録処理の一覧表である。
【図３（ａ）】テキストを選択している図である。
【図３（ｂ）】第２文字列が選択されている図である。
【図３（ｃ）】第１文字列が選択されている図である。
【図４】テキスト登録用のフローチャートである。
【図５（ａ）】管理画面の符号表を表示する図である。
【図５（ｂ）】管理画面の変換表を表示する図である。
【図５（ｃ）】ツールバーに符号表を表示させた場合の図である。
【図６】符号表（ワード文書）例の図である。
【図７】符号表の表示作成のフローチャートである。
【図８（ａ）】管理画面にて登録済みの名称を表示させた場合の図である。
【図８（ｂ）】ツールバーにて登録済みの名称を表示させた場合の図である。
【図８（ｃ）】ツールバーにて登録済みの符号を表示させた場合の図である。
【図９】符号表の図である。
【図１０】参照符号を＠として文章を仮入力した場合の図である。
【図１１】参照符号によって文章が置換された場合の図である。
【図１２】参照符号を＠として別の文章を仮入力した場合の図である。
【図１３】参照符号によって別の文章が置換された場合の図である。
【図１４】参照符号を＠として別の文章を仮入力した場合の図である。
【図１５】符号表の図である。
【図１６】図１５の符号表を並び替えた場合の図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明を実施するための形態について説明する。なお、以下では、本発明の目的を達成するための説明に必要な範囲を模式的に示し、本発明の該当部分の説明に必要な範囲を主に説明することとし、説明を省略する箇所については公知技術によるものとする。
【００１６】
（第１実施形態）
本実施形態においては、マイクロソフト社のワープロのアプリケーションソフトであるワードを用いて説明する。また、ワードのオートコレクト機能（文字列自動修正機能）を利用する。
【００１７】
本実施形態における文字列自動修正機能もしくはオートコレクト機能とは、特定の文字列の入力が確定された場合に、その文字列を別の文字列に自動で置換する機能である。
【００１８】
例えば、「つづりが間違った文字列」をユーザが入力した場合に、この「つづりが間違った文字列」に対応するあらかじめ登録された「正しいつづりの文字列」に自動で置換するものである。これらの「つづりが間違った文字列」とそれに対応する「正しいつづりの文字列」とは、あらかじめ登録されている。例えば、ユーザが「つづりが間違った文字列」としてtehと入力した場合には、このtehが、これに対応する「正しいつづりの文字列」としてのtheに自動で置換される。
【００１９】
また、矢印やマークなどの特殊文字も登録されており、煩雑な置換の手間を削減することにも役立つ。例えば、ユーザが「簡易表記の文字列」として（ｃ）と入力した場合に、それに対応する「正確な表記の文字列」としての
2010262325.tif 000003
に自動で置換する。
【００２０】
上記の「つづりが間違った文字列」および「簡易表記の文字列」を本実施形態では、オートコレクト機能における「修正対象の文字列」と定義する。また、上記の「正しいつづりの文字列」および「正確な表記の文字列」を「修正後の文字列」と定義する。ひとつの「修正対象の文字列」には、対応するひとつの「修正後の文字列」が組み合わせて登録されている。
【００２１】
一般的にワードには９２８組の「修正対象の文字列」と「修正後の文字列」とが登録されている。
【００２２】
本実施形態では、このオートコレクト機能を明細書作成における参照符号の入力支援に用いる場合の「修正対象の文字列」と「修正後の文字列」との登録方法を示す。
【００２３】
（登録方法）
名称と参照符号の登録方法を図を用いて説明する。
【００２４】
図１（ａ）および図１（ｂ）は、「ギヤボックス１５」を登録する場合の入力例を示している。入力する方法は、所定の管理画面を起動させて入力する図１（ａ）や、ツールバーに用意された入力欄に入力する図１（ｂ）がある。参照符号と名称を別々に入力しているが、組み合わせて一度に入力欄に入れてもよい。または、図3(a）に示すように、文章を入力中に対象となる参照符号と名称を選択して登録処理を実施してもよい。
【００２５】
これらは名称と参照符号を取得するための入力なので、名称と参照符号とが正確に取得できれば、どのような入力方法でもかまわない。
【００２６】
例えば「エンジン１０」の登録方法を示す。入力画面は、管理画面を起動させて入力する図１（ａ）や、ツールバーに用意された項目に入力する図１（ｂ）がある。参照符号と名称を別々に入力しているが、組み合わせて一度に入力窓に入れてもよい。または、図３（ａ）に示すように、文章を入力中に対象となる参照符号と名称を選択して登録処理を実施してもよい。
【００２７】
本実施形態においては、上記のいずれの方法においても、入力された名称（第１文字列）と参照符号（第２文字列）に基づいて、以下の二つの登録方法が用いられる。ただし、下記のいずれか一方の登録方法だけを用いてもよい。
【００２８】
以下に、「エンジン１０」を用いて、登録方法を詳述する。
・登録方法（１）
修正対象の文字列：「１０」  （第２文字列）
修正後の文字列」「エンジン１０」  （第１文字列＋第２文字列）
・登録方法（２）
修正対象の文字列：「エンジン」  （第１文字列）
修正後の文字列」「エンジン１０」  （第１文字列＋第２文字列）
【００２９】
このように登録方法（１）と登録方法（２）を用意することで、文書中に「エンジン」と入力した場合にも、「１０」と入力した場合にも、ともに「エンジン１０」に修正されることになる。
【００３０】
以後、本明細書中では、「エンジン１０を登録する」と記載された場合には、上記の登録方法（１）と登録方法（２）を用いてそれぞれの修正対象の文字列と修正後の文字列をオートコレクトに登録することを意味する。
【００３１】
なお、本実施形態においては、第２文字列に「＠」を用いた場合には、「＠」は重複可能な文字列として登録できるようにする。つまり、第２文字列（参照符号）＠に対応する構成要素の名称は複数登録できるようにする。したがって、＠を参照符号として含む文字列を登録する場合には、＠と特定の１つの第１文字列（名称）とを関連付けるための登録方法（１）は実施されない。結果、登録方法（２）のみが実施される。
【００３２】
具体的には、「エンジン＠」を登録する場合には、登録方法（２）による登録のみが行われる。そのため、「エンジン」と入力した場合に、「エンジン＠」へ修正されるが、「＠」と入力しても修正されない。
【００３３】
なお、明細書の作成では、参照符号と名称はそれぞれが重複しないことが前提である。よって、登録時には、今回新規に登録する修正対象の文字列である第１文字列と第２文字列のそれぞれが、すでに登録された修正対象の文字列と重複しないことを確認する必要がある。
【００３４】
（重複確認処理）
図２（ａ）は、重複確認用フローチャートを示す。このフローチャートのステップ１００では、修正対象の文字列として新規に登録する「第１文字列＋第２文字列」がすでに登録されているか否かを判定する。具体的には、修正対象の文字列として新規に登録する「第１文字列＋第２文字列」と同一の文字列が、ワードに登録されている「デフォルトの９２８の修正後の文字列」および「明細書作成用に登録された修正後の文字列」のそれぞれと一致するか否かを確認する。以後、上記の”ワードに登録されている「デフォルトの９２８の修正後の文字列」および「明細書作成用に登録された修正後の文字列」”を「登録済みの修正後の文字列」と表記する。
【００３５】
修正対象の文字列として新規に登録する「第１文字列＋第２文字列」と同一の文字列が、登録済みの「修正後の文字列」と一致しない場合、つまり、修正対象の文字列として新規に登録する「第１文字列＋第２文字列」が登録されていない場合、ステップ１１０に進む。「第１文字列＋第２文字列」と同一の文字列がすでに登録されている場合は、登録が不要であるため、図２（ａ）に示した重複確認処理を終了する。この場合に、「『第１文字列＋第２文字列』は登録済みです。」などのメッセージを表示してから本処理を終了するようにしてもよい。
【００３６】
ステップ１１０では、第１文字列が修正対象の文字列として登録されているか否かを判定する。具体的には、第１文字列と同一の文字列が、ワードに登録されている「デフォルトの９２８の修正対象の文字列」および「明細書作成用に登録された修正対象の文字列」のそれぞれと一致するか否かを確認する。以後、上記の”ワードに登録されている「デフォルトの９２８の修正対象の文字列」および「明細書作成用に登録された修正対象の文字列」”を「登録済みの修正対象の文字列」と表記する。
【００３７】
第１文字列が修正対象の文字列として登録されている場合、ステップ１１１に進み、Ｆｌａｇ１の値を１とする。一方、第１文字列が修正対象の文字列として登録されていない場合、ステップ１１２に進み、Ｆｌａｇ１の値を０とする。
【００３８】
ステップ１１１でＦｌａｇ１の値を１とした場合、ステップ１２０に進み、登録済みの第１文字列に対応する参照符号が「＠」であるか否かを判定する。本実施形態において、登録されている文字列は、「デフォルトの９２８の修正対象の文字列」および「明細書作成用に登録された修正対象の文字列」のいずれかである。よって、デフォルトの文字列以外には、明細書作成用の構成要素名称と参照符号とが必ずセットになって登録されている。
【００３９】
つまり、「明細書作成用に登録された修正対象の文字列」に対応する「明細書作成用に登録された修正後の文字列」は、文字列の最後尾に参照符号が記載されている。
【００４０】
ステップ１２０では、「修正対象の文字列」として登録されている第１文字列に対応する「修正後の文字列」の最後尾に記載されている参照符号が「＠」であるか否かを判定している。以下、上記対応する”登録済みの「修正後の文字列」の参照符号”を、「登録済み符号」と呼ぶ。
【００４１】
登録済み符号が「＠」であると判定された場合、ステップ１２１に進み、Ｆｌａｇ２の値を１に設定する。一方、登録済み符号が「＠」ではないと判定された場合、ステップ１２２に進み、Ｆｌａｇ２の値を０と設定する。
【００４２】
ステップ１１２、ステップ１２１、ステップ１２２にてそれぞれの値を設定した後、ステップ１３０に進む。ステップ１３０では、第２文字列が修正対象の文字列として登録されているか否かを判定する。
【００４３】
具体的には、第２文字列に対応する文字列が「登録済みの修正対象の文字列」のいずれかに一致するかどうかを判定し、一致した場合には、第２文字列が登録済みであると判定し、一致しない場合には、第２文字列が登録されていないと判定する。
【００４４】
第２文字列が登録されている場合、ステップ１３１に進み、Ｆｌａｇ３の値を１に設定して、本重複確認の処理を終了する。
【００４５】
なお、上述のとおり、本実施形態においては、＠を第２文字列（符号）とする文字列を登録する場合には、登録方法（２）のみが実施される。よって、＠が修正対象の文字列として登録されることはない。具体的には、「エンジン＠」を登録する場合には、修正対象の文字列になるのは、「エンジン」のみであり、「＠」は修正対象の文字列にはならない。
【００４６】
このことから、ステップ１３０にて、第２文字列が修正対象の文字列として登録されていると判定された場合には、この第２文字列は＠ではないと判断することができる。つまり、Ｆｌａｇ３の値が１であるときには、新規に登録する第２文字列は＠以外の文字列であるとわかる。
【００４７】
一方、ステップ１３０にて、第２文字列が登録されていないと判定された場合、ステップ１３２に進み、Ｆｌａｇ３の値を０に設定する。
【００４８】
その後、ステップ１４０に進み、第２文字列が「＠」であるか否かを判定する。第２文字列が「＠」である場合、ステップ１４１に進み、Ｆｌａｇ４の値を１に設定する。一方、第２文字列が「＠」ではない場合、ステップ１４２に進み、Ｆｌａｇ４の値を０に設定する。
【００４９】
Ｆｌａｇ４の値を設定すると、重複確認処理を終了する。
【００５０】
たとえば、新規に登録する文字列が「エンジン１０」である場合には、修正対象の文字列は、第１文字列である「エンジン」と第２文字列である「１０」である。また、「エンジン１０」が修正後の文字列である。
【００５１】
よって、ステップ１００では、修正後の文字列である「エンジン１０」が登録済みの修正後の文字列と一致するか否かを判定する。
【００５２】
ステップ１１０では、第１文字列である「エンジン」が登録済みの修正対象の文字列と一致するか否かを判定する。つまり、登録方法（２）により、「エンジン」がすでに修正対象の文字列として登録されているか否かを判定している。
【００５３】
ステップ１２０では、「エンジン」がすでに修正対象の文字列として登録されている場合に、「エンジン」に対応して登録されている符号が＠であるか否かを判定する。つまり、登録されている修正後の文字列が「エンジン＠」なのか否かを判定する。
【００５４】
ステップ１３０では、第２文字列である「１０」が登録済みの修正対象の文字列と一致するか否かを判定する。つまり、登録方法（１）により、「１０」が修正対象の文字列としてすでに登録されているか否かを判定する。
【００５５】
また、ステップ１４０では、第２文字列である「１０」が＠であるか否かを判定する。
【００５６】
（重複状況に応じた登録処理）
図２（ｂ）は、図２（ａ）に示された重複確認のフローチャートで判定したフラグ（Ｆｌａｇ１、Ｆｌａｇ２、Ｆｌａｇ３、Ｆｌａｇ４）の数値によって、登録処理をどのように行うのかの一例を示した登録処理の一覧表である。
【００５７】
ステップ１００で、今回新規で登録しようとした「第１文字列＋第２文字列」が、すでに登録されていると判定された場合には、登録処理をする必要がない。よって、この場合には図２（ｂ）に対応する項目がない。
【００５８】
登録処理の一覧表の列（縦の欄）は、第２文字列（符号）の重複があるのか否かを示しており、Ｆｌａｇ３に対応する。また、図２（ａ）のフローチャートに示されたように、Ｆｌａｇ３が０の場合には、第２文字列が＠か否かにより分類されている。
【００５９】
登録処理の一覧表の行（横の欄）は、第１文字列（名称）の重複があるのか否かを示しており、Ｆｌａｇ１に対応する。また、図２（ａ）のフローチャートに示されたように、Ｆｌａｇ１が１の場合には、登録済み符号が＠か否かで分類されており、この分類はＦｌａｇ２に対応する。
【００６０】
具体的に、図２（ｂ）における例（２）の欄（Ｆｌａｇ１＝１、Ｆｌａｇ２＝１、Ｆｌａｇ３＝０、Ｆｌａｇ４＝０）の場合と、例（３）の欄（Ｆｌａｇ１＝１、Ｆｌａｇ２＝０、Ｆｌａｇ３＝１）の場合とを説明する。
【００６１】
どちらの場合にも、基本的な考え方は、重複する登録済みのものを削除し、新規の登録をする、ということである。＠の符号が含まれる文字列を扱う場合には、登録方法（２）の場合のみを削除もしくは登録し、@以外の符号が含まれる文字列の場合には、登録方法（１）と（２）を削除もしくは登録する。
【００６２】
なお、重複可能な参照符号（本実施形態においては「＠」）を登録しない場合には、図２（ｂ）の例（３）、（５）、（６）、（８）の登録のみとなり、Ｆｌａｇ２およびＦｌａｇ４は判別する必要がなくなる。
【００６３】
（例（２）の場合）
図２（ｂ）に例示されるとおり、「エンジン＠」が登録されている状態で、「エンジン２０」を登録する場合について説明する。
【００６４】
この場合には、図２（ａ）のフローチャートにより、フラグ（Ｆｌａｇ１＝１、Ｆｌａｇ２＝１、Ｆｌａｇ３＝０、Ｆｌａｇ４＝０）の値が決定され、処理内容が例（２）のとおりになる。実際には、「エンジン＠がすでに登録されています。＠を２０に変更しますか？」などのメッセージをユーザに通知し、ユーザが登録を進める場合にのみ、例（２）に示したようにエンジンの符号を＠から２０に変更する処理を行うようにしてもよい。
【００６５】
例（２）では、「エンジン２０」について登録方法（１）および登録方法（２）を実施する。また、すでに登録されていた「エンジン＠」の登録方法（２）の内容を削除する。前述のとおり、第２文字列が＠の場合には、登録方法（１）による＠の登録はされていないため、登録方法（１）の内容を削除する必要はない。
【００６６】
また、マイクロソフト社のワードのオートコレクト機能においては、登録方法（２）の場合に、修正対象の文字列である「エンジン」の修正後の文字列を「エンジン２０」とすれば、すでに登録されていた修正後の文字列である「エンジン＠」は削除されたことになる。よって、実際にはプログラム上では、「エンジン＠」の登録方法（２）による登録内容の削除をする必要がない。
【００６７】
（例（３）の場合）
同様に、「エンジン１０」と「ピストン２０」が登録されている場合に、「エンジン２０」を登録する場合を説明する。
【００６８】
この場合、「エンジン１０とピストン２０が登録されています。エンジン２０として登録しますか？」などのメッセージをユーザに通知して、ユーザが登録を許可した場合にのみ、以下の処理をするようにしてもよい。こうすれば、ユーザが登録の重複を知った上で、新規の内容を登録することができる。特に、例（３）の場合には、ピストン２０の登録を完全に削除することになるため、符号表の登録内容をユーザが確認しやすくなるという点において、上記通知は効果的である。
【００６９】
ユーザが登録を許可した場合には、「エンジン１０」と「ピストン２０」に対応する登録方法（１）の内容を削除する。そして、「エンジン２０」の登録方法（１）の内容を新規に登録する。
【００７０】
また、「エンジン１０」と「ピストン２０」に対応する登録方法（２）の内容を削除する。そして、「エンジン２０」の登録方法（２）の内容を新規に登録する。
【００７１】
（テキスト登録処理）
図１（ａ）および図１（ｂ）に示したような登録画面やツールバーに名称と参照符号を入力しなくても、文章作成中に登録する文字列を選択した状態でユーザが所定の操作をすることにより、上記と同様の登録方法（１）および登録方法（２）を実行することができる。このように、文字入力中の文字列またはテキストを選択して登録することを「テキスト登録処理」という。以下、図３（ａ）〜図３（ｃ）および、図４のテキスト登録処理のフローチャートを用いて登録方法を説明する。
【００７２】
テキスト登録処理では、選択された文字列の範囲内で、第１文字列と第２文字列とを取得し、それぞれを用いて登録処理を行う。
【００７３】
たとえば、エンジン１０を登録する場合には、図３（ａ）のとおり、「エンジン１０は」を文章中で選択する。このとき、図３（ａ）のように登録するための文字列の語尾に参照符号以外の文字「は」が含まれていてもよいし、登録する文字列「エンジン１０」のみを選択してもよい。
【００７４】
選択された状態で、ユーザが所定の操作をすると、図４のテキスト登録処理が実行される。所定の操作とは、「Ａｌｔ＋Ｒ」の入力（キーボードのＡｌｔキーとＲキーを同時に押すこと）、右クリックからショートカットボタンをクリックすること、またはツールバーの所定のボタンをクリックすることを意味する。ワードで実行可能な所定のマクロプログラムが実行されるための操作であれば上記に限定されない。
【００７５】
図４のテキスト登録処理が実行されると、ステップ３０１において、文字列が選択されているか否かを判定する。文字列が選択されていない場合には、テキスト登録処理を終了する。
【００７６】
ステップ３０１にて文字列が選択されていると判定された場合には、選択された文字列の末尾の文字（日本語においては右端）から選択された文字列の先頭（日本語においては左端）に向かって、選択されている文字列の中で所定の文字列を検索する。
【００７７】
所定の文字列とは、参照符号に相当する文字列である。本実施形態では、全角の英数字、全角の＠マークに相当する。なお全角の英字は大文字および小文字を含む。しかし、上記に限る必要はない。
【００７８】
マイクロソフトのワードにて用いられるプログラム言語であるＶＢＡでは、ワイルドカード検索する文字列として、例えば以下のものが用いられる。
.Text = "([Ａ-Ｚａ-ｚ０-９＠]{1,})"  
この条件により、１文字以上の連続した上記所定の文字列を検索する（ステップ３０２）。
【００７９】
ステップ３０１にて選択された文字列の中から所定の文字列が見つかったか否かをステップ３０３にて判定し、図３（ｂ）のとおり所定の文字列（本実施形態では「１０」）が見つかった場合にはステップ３０４にて見つかった所定の文字列を第２文字列として取得する。
【００８０】
ステップ３０３にて所定の文字列が見つからなかった場合には、本処理を終了する。このときに、「参照符号が見つかりません。」などのメッセージを表示してもよい。
【００８１】
ステップ３０５では、ステップ３０３で見つかった文字列の左側からステップ３０１にて選択された文字列の先頭（左端）までの文字列を選択する。図３（ｃ）に示すように、所定の文字列を含まずに、「エンジン」のみが選択される。
【００８２】
ステップ３０５で取得された文字列「エンジン」は、第１文字列として取得される（ステップ３０６）。
【００８３】
上記のように第１文字列と第２文字列を取得したあとは、前述のとおり図２（ａ）に基づいて重複確認を実施する（ステップ３０７）。
【００８４】
その後、ステップ３０８にて取得したフラグの情報と、図２（ｂ）のマップとにもとづいて、登録方法（１）と登録方法（２）を実行して取得した第１文字列と第２文字列を登録する。
【００８５】
上記のように、参照符号（第２文字列）を最初に取得して、その後、名称（第１文字列）を取得するようにしたが、順序はどちらが先でもよい。
【００８６】
（自動入力）
以上のようにして登録した名称および参照符号を、明細書作成において自動入力する方法を以下に示す。
【００８７】
文章を入力時に「エンジン」と入力すると、オートコレクト機能が使われるために「エンジン１０」へ修正される。また、「１０」と入力した場合にも、「エンジン１０」へ修正される。
【００８８】
ここでいう入力とは、ひらがなで「えんじん」と入力した後にカタカナに変換「エンジン」として、例えばエンターキーを押して確定することを意味する。また、「エンジン」または「１０」として修正対象となる第１文字列または第２文字列だけを確定する場合に限らず、第１文字列または第２文字列とそれ以外の文字列を含む場合（例えば、「１０の上に」をエンターキーにて確定した場合）にも同様の修正がなされ、「エンジン１０の上に」と修正される。
【００８９】
これは、マイクロソフトのワードのオートコレクト機能の仕様によるため、他のワープロソフトにおいては別の確定方法および自動修正機能としてもよい。また、文字列の入力や確定の手段はキーボードに限らず、マイクなどを利用した音声入力でもよい。
【００９０】
（表示方式）
本発明では、文章作成時に入力すべき符号や名称を確認できるように、符号表を表示できる。
【００９１】
図５（ａ）に示すとおり、符号表をワードの文字入力画面に表示させてもよい。現在登録されている名称と符号の関係を表示させることが出来る。また、図５（ｂ）のとおり、登録方法（１）と登録方法（２）の両方にて登録した内容（変換表とよぶ）を全て表示するようにしてもよい。また、図５（ｃ）には、ツールバーに符号表を表示させる方法を示す。この場合には、文章を入力中は表示させておくことは出来ず、つまり、ツールバーのプルダウンメニューをクリックした場合にしか表示されない。
【００９２】
これにより、本発明では、重複を確認した上で登録をするため、符号や名称を登録する際の重複がなくなる。
【００９３】
また、自動で符号を入力することが可能であるため、余計なキー入力は不要となり、より簡便な操作が実現される。
【００９４】
さらに、図５（ａ）〜図５（ｃ）に示すように、当該符号表を画面に表示させることで、文章入力中に随時登録されている名称と符号の関係を確認することが可能である。
【００９５】
加えて、「＠」を符号に使うことも可能である。これにより、符号を＠を使用して仮入力した後に、一括で置換することも可能である。
【００９６】
また、図１（ａ）のように、登録済みの名称や符号を確認しながら新規登録を行うことができる。
【００９７】
さらに、テキスト登録処理により、文書中に文字入力をしながら随時登録が可能である。
【００９８】
（一括書き出し機能）
図５（ａ）および図５（ｂ）に記載された画面に登録された符号表を、一括してワード文書として抜き出すことができる。よって、書き出した符号表を、特許明細書の「符号の説明」欄に用いることができる。また、明細書作成に用いた符号であるので、書き出した符号表には誤記がない。その結果、符号表の作成の手間が省け、かつ正確性の向上をはかることができる。
【００９９】
（登録内容の全削除機能）
図５（ｂ）に記載された画面の登録内容をボタンのワンクリックですべて削除することができる。
【０１００】
現在のワードの仕様では、オートコレクトの管理画面にて、登録された一組ずつを選択して削除する。よって、例えば、１００組の登録文字列がある場合には、削除の操作を１００回繰り返すことになり手間である。
【０１０１】
上記のように、登録された修正対象の文字列をワンクリックで削除できるようにすれば、時間の節約ができる。
【０１０２】
（一括登録機能・一括削除機能）
また、本実施形態においては、ワード文書にタブ区切りなどの所定の区切り方式にて参照符号と名称を複数セット記載しておけば（図６）、図１（ａ）および図１（ｂ）に記載された画面にて所定のボタンをクリックすると符号表の内容を一括で登録できる。逆に、その対象となるワード文書に記載された符号表の内容を一括で削除することも可能である。
【０１０３】
よって、明細書作成実務において、分野や発明者に応じて、複数の符号表をあらかじめ用意しておき、対象となる発明に応じて、その複数の符号表から対応する符号表を選んで登録することができる。
【０１０４】
（個別削除機能）
図５（ａ）に表示された符号表の登録内容を個別に選択して、削除することが可能である。図１（ａ）の「現在の登録内容」の表示において、たとえば「２０  ピストン」を選択して所定のボタンをクリックすると、対応する登録方法（１）と登録方法（２）による登録内容が削除される。具体的には、「修正対象の文字列：２０」と「修正後の文字列：ピストン２０」との組み合わせおよび「修正対象の文字列：ピストン」と「修正後の文字列：ピストン２０」との組み合わせが登録から削除される。
【０１０５】
また、例えば「＠  クランク軸」を選択して、削除をするための所定のボタンをクリックした場合には、登録方法（２）による登録内容のみが削除される。具体的には、「修正対象の文字列：クランク軸」と「修正後の文字列：クランク軸＠」との組み合わせが登録から削除される。
【０１０６】
また、変換表の表示（図５（ｂ）参照）にて、特定の組み合わせを選択した場合に所定の削除操作をした場合にも、同様に対応する組みあわせも削除するようにしてもよい。例えば、図５（ｂ）の「現在の登録内容」に表示される「弁体  弁体４０」を選択して所定の操作を行った場合、「修正対象の文字列：弁体」と「修正後の文字列：弁体４０」との組み合わせだけではなく、「修正対象の文字列：４０」と「修正後の文字列：弁体４０」との組み合わせも登録から削除される。
【０１０７】
このようにすれば、削除もれがなくなるため、常に対になる組み合わせが登録されていることになる。また、上記のようにひとつの組合せを選択した場合だけではなく、複数の組合せを同時に選択した場合に所定の削除操作をした場合に、それぞれに対応する組合せが削除されるようにしてもよい。例えば、図５（ａ）において、「１０  エンジン」と「２０  ピストン」とを同時に選択した状態で所定の削除操作をすると、「修正対象の文字列：１０」と「修正後の文字列：エンジン１０」との組み合わせ、「修正対象の文字列：エンジン」と「修正後の文字列：エンジン１０」との組合せ、「修正対象の文字列：２０」と「修正後の文字列：ピストン２０」との組み合わせ、および「修正対象の文字列：ピストン」と「修正後の文字列：ピストン２０」との組合せが削除される。
【０１０８】
また、特定の発明に関する明細書を作成途中で、別の発明の明細書を作成する場合、以下の手順で簡単に設定が可能である。
【０１０９】
（２つの異なる発明の場合）
まず、後で使うために、現在の登録内容を「一括書き出し機能」にてワード文書に書き出して保存し、現在の登録内容を「登録内容の全削除機能」で削除する。次に作成する明細書で用いられる符号表を「一括登録機能」にて登録する。
【０１１０】
（類似の発明の場合）
後で使うために、現在の登録内容は「一括書き出し機能」にてワード文書に書き出して保存し、現在の登録内容のうち、現在作成中の明細書に特有の符号を削除する。もし、現在作成中の明細書に特有の符号のみを記載した図６に示したワード文書の符号表があれば、「一括削除機能」にて削除する。「個別削除機能」にて削除してもよい。この結果、現在作成中の明細書と次に作成する明細書との共通項目のみが登録されていることになる。次に、作成する明細書に特有の符号を登録する。登録には、「一括登録機能」を用いると手間が省くことができ、作業の効率化につながる。
【０１１１】
（登録スピードの向上）
上記の実施形態においては、図２（ａ）のステップ１００、１１０、１２０、１３０、および１４０では、重複確認のために現在登録されている内容（参照符号と名称との組み合わせ、およびワードにデフォルトで登録されている９２８個の修正項目）を全て確認している。そのため、ひとつの新規登録に対して重複を確認するために、例えば、１０００個の登録内容と比較する必要があり、コンピュータの性能が低い場合には、比較的長めの処理時間を要する。
【０１１２】
そこで、ワードにデフォルトで登録されている９２８個のうち、一部または全てを一時的に削除することで、毎回１０００個の登録内容と比較する必要がないようにしてもよい。
【０１１３】
このとき、一部または全てのデフォルト登録文字列を一時的に削除するタイミングは、いつでもよい。例えば、登録処理を実施する前に、デフォルト内容を削除し、登録処理を実施後に、デフォルト内容を再登録するようにしてもよい。また、常にデフォルト内容を削除したままで登録処理を実施してもよい。デフォルト内容を修正項目として用いたい場合には、所定の操作でデフォルト内容を一括で登録できるようにすればよい。
【０１１４】
このようにすることで、性能の低いコンピュータであっても、ストレスなく登録処理を実施することができる。
【０１１５】
登録や削除の方法は様々である。たとえば、あらかじめデフォルトの「修正対象の文字列」と「修正後の文字列」の変換表（対応表）を作成しておき、一括登録・削除をできるようにしておいてもよい。この場合、ワード文書で変換表を作っておいてもよいし、プログラム中に組み込んでおいてもよい。
【０１１６】
なお、たとえば、添付のプログラム文においては、登録されている修正対象の文字列および修正後の文字列をすべてプログラム文の中に保存している。ただし、機種依存文字が修正対象の文字列または修正後の文字列にデフォルトで登録されていた場合には、これらは削除せずに登録したままにしておく。なぜなら、機種依存文字が、プログラムを作成するソフトウェアにて表示できない文字種の場合、プログラム文にその機種依存文字を書いた場合に文字化けをするおそれがある。
【０１１７】
例えば、ワードのプログラム作成ソフトウェアであるビジュアルベーシックエディタ（ＶＢＥ）では、特定の機種依存文字を表示できないため、文字化けしてしまう。よって、ビジュアルベーシックエディタのプログラム文にて、特定の機種依存文字を入力する命令文を書いても、文字化けした文字列が登録されてしまうことになる。
【０１１８】
よって、上記のように、機種依存文字は登録したままにしておけば、上述のような登録スピードを向上させる処理を行ったとしても、文字化けした文字列を誤って登録してしまうことがなくなる。
【０１１９】
（管理画面およびツールバーの符号表の表示）
図５（ａ）〜図５（ｃ）の符号表の表示には、デフォルトで登録された文字列は表示されないようになっている。つまり、「デフォルトで登録される９２８個の修正対象の文字列」以外のものを選択し、表示するようにしている。
【０１２０】
また、修正後の文字列は、全て「名称＋参照符号」であるため、符号表の表示用として、修正後の文字列から参照符号を削除して名称だけを表示するようにしている。具体的な符号表の作成方法の一例を図７のフローチャートに示す。
【０１２１】
まず、ステップ２０１にて、ひとつの修正対象の文字列を所定のデータベース（オートコレクトの対象となる文字列が登録されているデータベース）から取得する。そして、この取得した修正対象の文字列が、参照符号用に登録した文字列であるか否かを判定する。つまり、この取得した修正対象の文字列がデフォルトで登録された文字列ではないことを確認する。
【０１２２】
ステップ２０１にて、この取得した修正対象の文字列が参照符号用に登録した文字列であると判定された場合、ステップ２０２にて、修正対象の文字列が所定の種類の文字列であるか否かを判定する。このことにより、修正対象の文字列が登録方法（１）で登録された「参照符号」なのか、もしくは登録方法（２）で登録された「名称」なのかを判定する。
【０１２３】
上記の所定の種類の文字列とは、例えば、日本語明細書の作成にあたり、「全角英数字」を示す。符号として使用する文字列に別の記号を用いる場合には、それらの記号も所定の種類の文字列に含めるとよい。
【０１２４】
アスキーコードでは、以下の判別式で判定が可能である。この場合、全角の０から９、全角の大文字アルファベットＡからＺ、および全角の小文字アルファベットａからｚのいずれかに該当するか否かを判別している。
【０１２５】
本実施形態では、全角の＠は修正対象の文字列として登録されることがないため、所定の種類の文字列に含まれない。
If
(Asc(Left(修正対象の文字列, 1)) >= -32177 And _
Asc(Left(修正対象の文字列, 1)) <= -32168) Or _
(Asc(Left(修正対象の文字列, 1)) >= -32160 And _
Asc(Left(修正対象の文字列, 1)) <= -32135) Or _
(Asc(Left(修正対象の文字列, 1)) >= -32127 And _
Asc(Left(修正対象の文字列, 1)) <= -32102) Then
【０１２６】
また、修正対象の文字列に含まれるすべてのテキスト文字に対して、上記の判定を行ってもよいし、テキスト文字の一部だけを判定に用いてもよい。
【０１２７】
本実施形態においては、ステップ２０２にて、修正対象の文字列の最初の１文字（左から１文字目）が全角英数字であるかを判定している。
【０１２８】
ステップ２０２にて、修正対象の文字列の最初の１文字（左から１文字目）が全角英数字であると判定された場合には、ステップ２０３に進み、第２文字列（参照符合）として修正対象の文字列を取得する。
【０１２９】
次に、ステップ２０４にて、ステップ２０１にて取得した「修正対象の文字列」に対応する「修正後の文字列」を取得する。
【０１３０】
例えば、「エンジン１０」が登録されている場合には、ステップ２０３にて判定された修正対象の文字列は「１０」であり、対応する修正後の文字列は「エンジン１０」である。
【０１３１】
ステップ２０５では、第１文字列を修正対象の文字列と修正後の文字列をもとにして取得する。
【０１３２】
本実施形態においては、まず、修正対象の文字列をLen1とし、修正後の文字列の文字数をLen2とする。この場合、修正後の文字列の左から（Len2-Len1）数のテキスト文字が、第１文字列に対応する。
具体的には、
Len1 = Len(修正対象の文字列)
Len2 = Len(修正後の文字列)
第１文字列 = Left(修正後の文字列,
Len2 - Len1)
のコードにて、第１文字列を取得する。
【０１３３】
次に、ステップ２０６にて、符号表に登録する。符号表は「参照符号」とそれに対応する「名称」が一組で記載される。本実施形態においては、参照符号は左に書かれ、名称がその右側に空欄や記号で区切られて記載される。
【０１３４】
本実施形態では、一覧表の管理画面（図５（ｂ））における表示形式にListboxを用いているが、この登録を、以下のコードにて行っている。
Listbox.AddItem refNum(m)
& vbTab & tgtEntry1
【０１３５】
この登録が終了した後、別の修正対象の文字列が所定のデータベースに保存されているか否かを判定する。
【０１３６】
もし次の修正対象の文字列がある場合には、ステップ２０１に戻り、上記の登録処理を繰り返す。次の修正対象の文字列がない場合には、本登録処理を終了する。
【０１３７】
なお、上記、ステップ２０２にて、修正対象の文字列の最初の１文字（左から１文字目）が全角英数字であると判定されなかったこの場合にも、ステップ２０７に進む。
【０１３８】
このような処理をすることによって、明細書作成者が見慣れた符号表を管理画面およびツールバーに表示させることができる。
【０１３９】
上記とは別に、修正対象の文字列が第１文字列（名称）の場合（ステップ２０２でＮＯと判定された場合）に、同様の方法で第２文字列を取得する処理としてもよい。
【０１４０】
また、上記方法に限らず、登録された「修正対象の文字列」と「修正後の文字列」との組み合わせから、符号と名称の対応関係を取得できる方法があれば、どのような方法でも適用が可能である。また、Listboxに表示する場合には、符号が昇順に表示されると見やすく、作業の効率が高まる。
【０１４１】
さらに、文字列を登録するたびに上記の符号表の作成を行うと、常に最新の登録内容が符号表として表示されるため便利である。
【０１４２】
なお、上記実施形態においては、「デフォルトの９２８の文字列」および「明細書作成用に登録された文字列」がオートコレクト用に登録されている場合において説明をした。しかし、上記の登録内容に限らず、別の文字列が登録されている場合においても、所定の判別式を用いることで、上述のような重複確認および登録、または符号表の表示の作成が可能である。
【０１４３】
（英語の明細書の組み合わせ）
上記実施形態では、日本語明細書の作成に用いられる名称と参照符号の登録と自動修正の方法を示した。しかし、本発明は上記に限らず、日本語以外の言語に適用が可能である。たとえば、英語の明細書においても同様のことができる。ただし、英語の場合には、参照符号と名称との間に半角スペースをいれて登録する必要があるため、登録する言語に応じて、登録方法を適宜変更するとよい。
【０１４４】
（参照符号の自動入力のオンオフ）
ワードのオートコレクトのオン・オフは、所定の操作により実行が可能である。これによって、この参照符号の自動入力作業のオン・オフの設定は、オートコレクトのオン・オフを切り替えれば可能である。また、このオートコレクトのオン・オフを切り替えるためのボタン（図１（ｂ）における「ＡＣ」と表示されたボタン）をツールバーに表示すると、操作性が向上する。
【０１４５】
（登録済みの文字列の表示）
明細書の書き方によっては、実施形態ごとに同じ名称であっても別の参照符号をふりなおす場合がある。そのようなときのために、図８（ａ）および図８（ｂ）に示すように、名称を記入する欄に、プルダウンメニューを設け、すでに登録済みの名称を表示させることができる。このことで、登録されている名称に対して、符号だけを修正したい場合に便利である。
【０１４６】
また、図８（ｃ）に示すように、名称だけではなく、すでに登録済みの符号もプルダウンメニューなどを用いて表示させるようにしてもよい。この場合も、登録済みの符合と似た符合を登録する場合に便利である。例えば、すでに「２００ａ」が登録されており、「２００ｂ」、「２００ｃ」、、、と登録を続ける場合に、プルダウンメニューから２００ａを選択して、そのａを新しい文字ｂ、ｃ、、、に書き換えるだけで符号が完成する。
【０１４７】
または、登録済みの符号をプルダウンメニューで表示させれば、すでに登録済みの符号がわかるので、重複しない符号を選んで登録することにも役に立つ。この場合には、＠を表示してもしなくてもよい。
【０１４８】
上記のように、登録済みの符号や名称を表示させることで、入力の手間が削減され、かつ入力の正確性が向上する。
【０１４９】
（参照符号＠の一括置換機能について）
明細書を作成するにあたり、参照符号を特定せずに書く場合、＠を仮の参照符号として記載する方法がある。この場合、一旦明細書を作成し終えたら、＠で仮に入力した参照符号を、正式な符号に書きなおす必要がある。
【０１５０】
本実施形態の参照符号の一括置換機能を利用すれば、＠で仮入力した全ての参照符号を一括で入力できる。また、構成要素の名称に誤記があった場合には置換されないため、一括置換の際に名称の誤記も発見することができる。
【０１５１】
まず、図９に示すような参照符号表を用意する。本実施形態においては、符号を左に記載し、その符号に対応する構成要素名称をタブで区切った右側に記載している。符号と名称の組合せが表記されていれば、上記に限らず、スペースで区切ることもできるし、符号を右側に記載することもできる。また罫線で区切られた表に記載してもよい。
【０１５２】
この参照符号表には、＠で仮入力した符号のみならず、明細書で使われている符号を記載してもよい。
【０１５３】
図１０に示されたように、参照符号として仮に＠で入力された文章を用意する。すべての参照符号を＠で入力する必要はなく、一部の名称だけが＠の参照符号がふられていてもよい。
【０１５４】
参照符号の一括置換機能では、例えば、図１０の符号表の上の１段目から２段目以降にかけて順番に符号と名称とを読み取り、対象となる文章に対して一括置換をする。
【０１５５】
このときの置換式は、以下のとおりである。
検索する文字列：名称＠
置換後の文字列：名称＋符号
【０１５６】
具体的には、図９の符号表の１段目を読み込んだ場合には、以下の一括置換を実施することになる。
検索する文字列：車椅子＠
置換後の文字列：車椅子１
【０１５７】
この場合、図１１のように、＠を対応する符号に置換することができる。
【０１５８】
また、図１２のような別の文章があり、これを図９で示した符号表にて参照符号の一括置換機能を実行する。
【０１５９】
もし、名称と符号が符号表に記載されていない場合には、＠が文中に置換されずに残る。よって、この場合には、例えば＠を蛍光色で着色することにより、符号の入力漏れがあることが確認できる（図１３）。
【０１６０】
また、図１４のような文章において、図１５の符号表を用いて一括置換をする場合には、符号表に掲載する名称を所定の順序で読み込む必要がある。つまり、図１５の符号表に、同様の名称が含まれている場合には、名称を読み込む順序を所定の順序にする必要がある。
【０１６１】
たとえば、「座部＠」を「座部４」に変更する前に、「第１座部＠」を「第１座部４ａ」に変換する必要がある。そうでなければ、「第１座部＠」を「第１座部４ａ」に置換する前に、「座部＠」を「座部４」と置換してしまうため、「第１座部４」と間違った置換結果となってしまう。
【０１６２】
本実施形態では、符号表の１段目から符号と名称を読み込むようにしてあるので、この場合には、図１６のように、符号表に記載する名称を文字数が多い順で記載すれば、上記のような間違った置換を予防することができる。
【０１６３】
また、置換に用いられた符号を別の表に書き出したり、図９の符号表中の置換に用いられた符号に着色や下線をひいたりして印をつけることで、どの文字列が置換されたのか確認しやすくなる。
【０１６４】
（別の用途）
なお、上記実施形態においては、ワードにて明細書を作成する場合の例を示したが、本発明は上記に限定されない。たとえば、ワード以外のワープロソフトにおいて明細書を作成する場合にも、対応したプログラミング言語にて同様の機能を達成することが可能である。
【０１６５】
また、明細書を作成する以外にも記号や符号を伴う文字列を入力する際に、本発明を用いることができる。
【０１６６】
また、本発明はワープロ機能以外にも、文字入力を伴うコンピュータアプリケーションであれば、用いることができる。例えば、表計算ソフト、メールソフト、時間管理ソフト、音楽作成ソフト、音楽管理ソフト、動画作成ソフト、データベースソフト、プレゼンテーション資料作成ソフトなどに用いても、上記実施形態と同様の効果を得ることができる。また、この場合、同じ符号表を用いれば、すべてのアプリケーションソフトにおいて符号と名称とが統一されるため、複数のアプリケーションを用いた作業における品質とスピードの向上が期待できる。
【０１６７】
なお、本発明は上述した実施形態に限定されるものではなく、本発明の主旨を逸脱しない範囲内で種々変更して実施することが可能である。
【０１６８】
また、上述した実施形態は、本発明に係る技術思想を具現化するための実施形態の一例を示したにすぎないものであり、他の実施形態でも本発明に係る技術思想を適用することが可能である。
【０１６９】
さらにまた、本発明を用いて生産される装置、方法、システムが、その２次的生産品に搭載されて商品化された場合であっても、本発明の価値は何ら減ずるものではない。
【実施例】
【０１７０】
重複確認用のプログラム文は、以下のとおりである。
Option Explicit
Sub 登録処理(srcWord As String, rplWord As
String, refNum0 As String)
'●重複確認と登録
'登録読込み
Dim m, mCnt As Integer
Dim tgtEntry(0 To 300) As String
Dim refEntry(0 To 300) As String
Dim refNum(0 To 300) As String
Dim eQuNum, eQuNam, eQu As Boolean
Dim msg As Variant
Dim tgtLen, refLen As Integer
Dim CntNam, CntNum As Integer
Dim dltEntry As String
Dim i, iStart As Integer
Dim defEntry(1 To 947) As String
Dim acEntry As AutoCorrectEntry
Dim mMax As Integer
'デフォルトのオートコレクト項目一覧
defEntry(1) = "(c)"
・・・
defEntry(917) = "こんばんわ"
'デフォルトのオートコレクト項目一覧  （高速処理で削除しないで残す）
defEntry(918) = "-->"
defEntry(919) = ":("
defEntry(920) = ":)"
defEntry(921) = ":-("
defEntry(922) = ":-)"
defEntry(923) = ":-|"
defEntry(924) = ":|"
defEntry(925) = "<--"
defEntry(926) = "<=="
defEntry(927) = "<=>"
defEntry(928) = "==>"
defEntry(929) = "(c)"
defEntry(930) = "(r)"
defEntry(931) = "(tm)"
defEntry(932) = "blase"
defEntry(933) = "cafe"
defEntry(934) = "cliche"
defEntry(935) = "creme"
defEntry(936) = "decor"
defEntry(937) = "deja vu"
defEntry(938) = "detente"
defEntry(939) = "eclair"
defEntry(940) = "emigre"
defEntry(941) = "entree"
defEntry(942) = "facade"
defEntry(943) = "naive"
defEntry(944) = "protege"
defEntry(945) = "protoge"
defEntry(946) = "seance"
defEntry(947) = "vis-a-vis"
'デフォルト登録の有無確認
iStart = 918
For Each acEntry In AutoCorrect.Entries
If acEntry.Name <> defEntry(50) Then
GoTo nSkip
Else
iStart = 1
Exit For
End If
nSkip:
Next acEntry
m = 0
For Each acEntry In AutoCorrect.Entries
eQu = False
For i = iStart To
947
If acEntry.Name <> defEntry(i) Then
GoTo nn
Else
eQu = True
Exit For
End If
nn:
Next i
If eQu = False Then
m = m + 1
tgtEntry(m) =
acEntry.Name
refEntry(m) =
acEntry.Value
tgtLen =
Len(tgtEntry(m))
refLen =
Len(refEntry(m))
'修正対象の文字列が符号の場合
If
(Asc(Left(tgtEntry(m), 1)) >= -32177 And _
Asc(Left(tgtEntry(m), 1)) <= -32168) Or _
(Asc(Left(tgtEntry(m), 1)) >= -32160 And _
Asc(Left(tgtEntry(m), 1)) <= -32135) Or _
(Asc(Left(tgtEntry(m), 1)) >= -32127 And _
Asc(Left(tgtEntry(m), 1)) <= -32102) Then
'符号の取得
refNum(m) = tgtEntry(m)
'修正対象の文字列が名称の場合
Else
'符号の取得
refNum(m) = Right(refEntry(m), refLen - tgtLen)
End If
End If
Next acEntry
mMax = m
'●明細書用に用語が登録されていない場合●
'新規登録用語と重複するものがないと判断して、そのまま登録
If mMax = 0 Then
'新規登録する符号が＠以外の場合
If refNum0 <>
"＠" Then
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries.Add Name:=refNum0, Value:=rplWord
'新規登録する符号が＠の場合
Else
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
End If
GoTo m
End If
'●明細書用に用語が登録されている場合●
'登録済み用語と新規登録用語との重複確認をします。
eQuNam = False  '名称に重複がないという仮入力
eQuNum = False  '符号に重複がないという仮入力
For mCnt = 1 To mMax
'そのものが登録されている場合
If refEntry(mCnt) =
rplWord Then
MsgBox rplWord & "は登録されています。"
GoTo m  '→処理を終了
End If
'名称が重複  （Ｆｌａｇ１の判定）
If tgtEntry(mCnt) =
srcWord Then
eQuNam = True
CntNam = mCnt
End If
'符号が重複  （Ｆｌａｇ３の判定）
If tgtEntry(mCnt) =
refNum0 Then
eQuNum = True
CntNum
= mCnt
End If
n:
Next mCnt
'●そのものが登録されてはいない場合における処理●
'重複の種類に応じて処理を分岐
'重複がない場合（Ｆｌａｇ１＝０、Ｆｌａｇ３＝０）
If (eQuNam = False And eQuNum = False)
Then
'新規登録する符号が＠以外の場合（Ｆｌａｇ４＝０）→例（８）
If refNum0 <>
"＠" Then
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries.Add Name:=refNum0, Value:=rplWord
'新規登録する符号が＠の場合（Ｆｌａｇ４＝１）→例（７）
Else
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
End If
End If
'名称のみが重複する場合（Ｆｌａｇ１＝１、Ｆｌａｇ３＝０）
If (eQuNam = True And eQuNum = False)
Then
'新規登録する符号が＠以外の場合（Ｆｌａｇ４＝０）
If refNum0 <>
"＠" Then
msg = MsgBox(srcWord & "は登録されています。" & _
vbCr & """" & refNum(CntNam) &
"""→""" & refNum0 & """に変更しますか？",
vbYesNo)
If
msg = vbNo Then
GoTo l
End If
If msg = vbYes Then
'登録済みの符号が＠以外の場合（Ｆｌａｇ２＝０）→例（５）
If refNum(CntNam) <> "＠" Then
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries.Add Name:=refNum0, Value:=rplWord
AutoCorrect.Entries(refNum(CntNam)).Delete
GoTo m
'登録済みの符号が＠の場合（Ｆｌａｇ２＝１）→例（２）
Else
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries.Add Name:=refNum0, Value:=rplWord
GoTo m
End If
End If
Else
'新規登録する符号が＠の場合（Ｆｌａｇ４＝１）→例（４）
msg = MsgBox(srcWord & "は登録されています。" & _
vbCr & """" & refNum(CntNam) &
"""→""" & refNum0 & """に変更しますか？",
vbYesNo)
If msg = vbNo Then
GoTo l
End If
If msg = vbYes Then
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries(refNum(CntNam)).Delete
GoTo m
End If
End If
End If
'符号のみが重複する場合（Ｆｌａｇ１＝０、Ｆｌａｇ３＝１）→例（６）
If (eQuNam = False And eQuNum = True)
Then
tgtLen =
Len(tgtEntry(CntNum))
refLen =
Len(refEntry(CntNum))
dltEntry =
Left(refEntry(CntNum), refLen - tgtLen)
msg = MsgBox(refNum0
& "は登録されています。" & _
vbCr & """" & dltEntry &
"""→""" & srcWord & """に変更しますか？",
vbYesNo)
If msg = vbNo Then
GoTo l
End If
If msg = vbYes Then
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries.Add Name:=refNum0, Value:=rplWord
AutoCorrect.Entries(dltEntry).Delete
GoTo m
End If
End If
'名称も符号も重複する場合（Ｆｌａｇ１＝１、Ｆｌａｇ３＝１）
If (eQuNam = True And eQuNum = True)
Then
msg =
MsgBox(refEntry(CntNum) & "と" & _
refEntry(CntNam) & "は登録されています。" & _
vbCr & """" & rplWord & """として登録しますか？",
vbYesNo)
If msg = vbNo Then
GoTo l
End If
If msg = vbYes Then
'登録済みの符号が＠以外の場合（Ｆｌａｇ２＝０）→例（３）
If refNum(CntNam) <> "＠" Then
tgtLen = Len(tgtEntry(CntNum))
refLen = Len(refEntry(CntNum))
dltEntry = Left(refEntry(CntNum), refLen - tgtLen)
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries.Add Name:=refNum0, Value:=rplWord
AutoCorrect.Entries(dltEntry).Delete
AutoCorrect.Entries(refNum(CntNam)).Delete
GoTo m
'登録済みの符号が＠以外の場合（Ｆｌａｇ２＝１）→例（１）
Else
tgtLen = Len(tgtEntry(CntNum))
refLen = Len(refEntry(CntNum))
dltEntry = Left(refEntry(CntNum), refLen - tgtLen)
AutoCorrect.Entries.Add Name:=srcWord, Value:=rplWord
AutoCorrect.Entries.Add Name:=refNum0, Value:=rplWord
AutoCorrect.Entries(dltEntry).Delete
GoTo m
End If
End If
End If
m:
l:
End Sub
【０１７１】
また、表示更新のプログラムは、以下の通りである。
Option Explicit
Private
Const CBAR_NAME As String = "オートコレクト自動登録"
Sub
ListUpdate()
'表示ボタン
Dim
i, iStart As Integer
Dim
acEntry As AutoCorrectEntry
Dim
defEntry(1 To 947) As String
Dim
eQu As Boolean
Dim
m, mMax As Integer
Dim
refEntry(1 To 300) As String
Dim
tgtEntry(1 To 300) As String
Dim
refNum(1 To 300) As String
Dim
tgtLen, refLen As Integer
Dim
tgtEntry1 As String
Dim
myCbarCtl As CommandBarControl
Dim
myCbarCtl_Nam As CommandBarControl
Dim
myCbarCtl_Num As CommandBarControl
'デフォルトのオートコレクト項目一覧
defEntry(1)
= "(c)"
・・・
defEntry(917)
= "こんばんわ"
'デフォルトのオートコレクト項目一覧  （高速処理で削除しないで残す）
defEntry(918)
= "-->"
defEntry(919)
= ":("
defEntry(920)
= ":)"
defEntry(921)
= ":-("
defEntry(922)
= ":-)"
defEntry(923)
= ":-|"
defEntry(924)
= ":|"
defEntry(925)
= "<--"
defEntry(926)
= "<=="
defEntry(927)
= "<=>"
defEntry(928)
= "==>"
defEntry(929)
= "(c)"
defEntry(930)
= "(r)"
defEntry(931)
= "(tm)"
defEntry(932)
= "blase"
defEntry(933)
= "cafe"
defEntry(934)
= "cliche"
defEntry(935)
= "creme"
defEntry(936)
= "decor"
defEntry(937)
= "deja vu"
defEntry(938)
= "detente"
defEntry(939)
= "eclair"
defEntry(940)
= "emigre"
defEntry(941)
= "entree"
defEntry(942)
= "facade"
defEntry(943)
= "naive"
defEntry(944)
= "protege"
defEntry(945)
= "protoge"
defEntry(946)
= "seance"
defEntry(947)
= "vis-a-vis"
'現状のデータ削除
userform1.ListBox1.Clear
userform1.ListBox2.Clear
userform1.ListBox3.Clear
userform1.ListBox4.Clear
userform1.ListBox5.Clear
userform1.cboName.Clear
Set
myCbarCtl = CommandBars(CBAR_NAME).Controls("符号表")
With
myCbarCtl
.Clear
.AddItem "符号表"
.ListIndex = 1
End
With
Set
myCbarCtl_Nam = CommandBars(CBAR_NAME).Controls("名称")
With
myCbarCtl_Nam
.Clear
.Text = "名称"
End
With
Set
myCbarCtl_Num = CommandBars(CBAR_NAME).Controls("符号")
With
myCbarCtl_Num
.Clear
.Text = "符号"
End
With
'デフォルト登録の有無確認
iStart
= 918
For
Each acEntry In AutoCorrect.Entries
If acEntry.Name <> defEntry(50) Then
GoTo n
Else
iStart = 1
userform1.OB_初期設定_標準.Value = True
Exit For
End If
n:
Next
acEntry
m =
0
For
Each acEntry In AutoCorrect.Entries
eQu = False
For i = iStart To 947
If acEntry.Name <> defEntry(i) Then
GoTo nSkip
Else
eQu = True
Exit For
End If
nSkip:
Next i
If eQu = False Then
m = m + 1
tgtEntry(m) = acEntry.Name
refEntry(m) = acEntry.Value
tgtLen = Len(tgtEntry(m))
refLen = Len(refEntry(m))
'修正対象の文字列が符号の場合
'＠は修正対象として未登録なので＠以外の符号
If (Asc(Left(tgtEntry(m), 1)) >= -32177 And _
Asc(Left(tgtEntry(m), 1)) <= -32168) Or _
(Asc(Left(tgtEntry(m), 1)) >= -32160 And _
Asc(Left(tgtEntry(m), 1)) <= -32135) Or _
(Asc(Left(tgtEntry(m), 1)) >= -32127 And _
Asc(Left(tgtEntry(m), 1)) <= -32102) Then
refNum(m) = tgtEntry(m)
'修正対象の文字列が名称の場合
Else
refNum(m) = Right(refEntry(m), refLen - tgtLen)
End If
End If
Next
acEntry
mMax
= m
'明細書用の用語が１つ以上登録されている場合
If
mMax > 0 Then
For m = 1 To mMax
'（１）管理画面の「管理」タブの符号表
With userform1.ListBox1
'修正対象の文字列が符号の場合（＠以外の符号）
If refNum(m) = tgtEntry(m) Then
tgtLen = Len(tgtEntry(m))
refLen = Len(refEntry(m))
tgtEntry1 = Left(refEntry(m), refLen - tgtLen)
.AddItem refNum(m) & vbTab & tgtEntry1
End If
'修正対象の文字列が＠の場合
If Asc(Left(refNum(m), 1)) = -32361 Then
.AddItem refNum(m) & vbTab & tgtEntry(m)
End If
End With
'（２）管理画面の「管理」タブの変換表
With userform1.ListBox2
'登録内容すべてを表示
.AddItem tgtEntry(m) & vbTab & refEntry(m)
End With
'（３）管理画面の「符号表」タブの符号表
With userform1.ListBox3
'修正対象の文字列が符号の場合（＠以外の符号）
If refNum(m) = tgtEntry(m) Then
tgtLen = Len(tgtEntry(m))
refLen = Len(refEntry(m))
tgtEntry1 = Left(refEntry(m), refLen - tgtLen)
.AddItem refNum(m) & vbTab & tgtEntry1
End If
'修正対象の文字列が＠の場合
If Asc(Left(refNum(m), 1)) = -32361 Then
.AddItem refNum(m) & vbTab & tgtEntry(m)
End If
End With
'（４）管理画面の「変換表」タブの変換表
With userform1.ListBox4
'登録内容すべてを表示
.AddItem tgtEntry(m) & vbTab & refEntry(m)
End With
'（５）管理画面の「初期設定」タブの変換表
With userform1.ListBox5
'登録内容すべてを表示
.AddItem tgtEntry(m) & vbTab & refEntry(m)
End With
'（６）管理画面の「管理」タブの名称入力欄
With userform1.cboName
'修正対象の文字列が符号の場合（＠以外の符号）
If refNum(m) = tgtEntry(m) Then
tgtLen =
Len(tgtEntry(m))
refLen = Len(refEntry(m))
tgtEntry1 = Left(refEntry(m), refLen - tgtLen)
.AddItem tgtEntry1
End If
'修正対象の文字列が＠の場合
If Asc(Left(refNum(m), 1)) = -32361 Then
.AddItem tgtEntry(m)
End If
End With
'（７）ツールバーの符号表
With myCbarCtl
'修正対象の文字列が符号の場合（＠以外の符号）
If refNum(m) = tgtEntry(m) Then
tgtLen = Len(tgtEntry(m))
refLen = Len(refEntry(m))
tgtEntry1 = Left(refEntry(m), refLen - tgtLen)
.AddItem refNum(m) & "    " & tgtEntry1
End If
'修正対象の文字列が＠の場合
If Asc(Left(refNum(m), 1)) = -32361 Then
.AddItem refNum(m) & "    " & tgtEntry(m)
End If
End With
'（８）ツールバーの名称入力欄
With myCbarCtl_Nam
'修正対象の文字列が符号の場合（＠以外の符号）
If refNum(m) = tgtEntry(m) Then
tgtLen = Len(tgtEntry(m))
refLen = Len(refEntry(m))
tgtEntry1 = Left(refEntry(m), refLen - tgtLen)
.AddItem tgtEntry1
End If
'修正対象の文字列が＠の場合
If Asc(Left(refNum(m), 1)) = -32361 Then
.AddItem tgtEntry(m)
End If
End With
'（９）ツールバーの符号入力欄
With myCbarCtl_Num
'修正対象の文字列が符号の場合（＠以外の符号）
If refNum(m) = tgtEntry(m) Then
.AddItem refNum(m)
End If
End With
Next m
'明細書用の用語がひとつも登録されていない場合
Else
userform1.ListBox1.AddItem "（登録用語はありません。）"
userform1.ListBox2.AddItem "（登録用語はありません。）"
userform1.ListBox3.AddItem "（登録用語はありません。）"
userform1.ListBox4.AddItem "（登録用語はありません。）"
userform1.ListBox5.AddItem "（登録用語はありません。）"
userform1.cboName.AddItem "（登録用語はありません。）"
myCbarCtl.AddItem "（登録用語はありません。）"
myCbarCtl_Nam.AddItem "（登録用語はありません。）"
myCbarCtl_Num.AddItem "（登録用語はありません。）"
End
If
If
userform1.OptionButton2.Value = True Then
userform1.ListBox1.Visible = True
userform1.ListBox2.Visible = False
Else
userform1.ListBox1.Visible = False
userform1.ListBox2.Visible = True
End
If
Set
myCbarCtl = Nothing
Set
myCbarCtl_Nam = Nothing
Set
myCbarCtl_Num = Nothing
End Sub
【産業上の利用可能性】
【０１７２】
本発明に係る文字列変換方法、プログラム及びそのプログラムを記憶した記憶媒体は、特許業界において明細書を作成する特許事務に限らず、その他の法律事務、会計事務、及び所定の文書を作成する機会を有する一般企業を含み、広く社会全般に対して大きな有益性をもたらすものである。
【図１（ａ）】
2010262325.tif 000004
【図１（ｂ）】
2010262325.tif 000005
【図２（ａ）】
2010262325.tif 000006
【図２（ｂ）】
2010262325.tif 000007
【図３（ａ）】
2010262325.tif 000008
【図３（ｂ）】
2010262325.tif 000009
【図３（ｃ）】
2010262325.tif 000010
【図４】
2010262325.tif 000011
【図５（ａ）】
2010262325.tif 000012
【図５（ｂ）】
2010262325.tif 000013
【図５（ｃ）】
2010262325.tif 000014
【図６】
2010262325.tif 000015
【図７】
2010262325.tif 000016
【図８（ａ）】
2010262325.tif 000017
【図８（ｂ）】
2010262325.tif 000018
【図８（ｃ）】
2010262325.tif 000019
【図９】
2010262325.tif 000020
【図１０】
2010262325.tif 000021
【図１１】
2010262325.tif 000022
【図１２】
2010262325.tif 000023
【図１３】
2010262325.tif 000024
【図１４】
2010262325.tif 000025
【図１５】
2010262325.tif 000026
【図１６】
2010262325.tif 000027