(57)【要約】【課題】多人数より発生するデータの収集作業を、確実且つ効率良く行う。【解決手段】リッチテキストをデータ入力の帳票として流用し、プロセス間通信にてリッチテキストに格納されるテーブルオブジェクトの要素を読み出すことにより、ユーザが使い慣れたリッチテキスト環境をそのままデータ入力のツールとして流用できる。【選択図】図２
2008269492.tif 000002
【特許請求の範囲】
【請求項１】
テキストを格納できる１つ以上のセルにて構成されるテーブルオブジェクトが格納されるオブジェクト格納文書と、
前記オブジェクト格納文書に格納されている前記テーブルオブジェクトに含まれる前記セルを選択的に読み出すことができるオブジェクト操作部と、
前記テーブルオブジェクトの各セルをレコードとして表現し、前記各セルの論理的位置を特定する行フィールドと列フィールドを備える取り込み定義テーブルと、
前記取り込み定義テーブルにて定義された前記各セルのうち、データを取り込む対象となるフィールドを備える取り込みテーブルと、
前記オブジェクト操作部に対し、前記取り込み定義テーブルの内容に基づいて前記テーブルオブジェクトの問い合わせを行い、前記取り込みテーブルにデータを格納するオブジェクト問い合わせ部と、
前記オブジェクト問い合わせ部から、前記オブジェクト操作部に対し、前記テーブルオブジェクトを指定した問い合わせの要求を伝送し、前記問い合わせに対する返答として、所定のデータを伝送するプロセス間通信部と
を具備することを特徴とする、データ抽出装置。
【請求項２】
更に、
前記オブジェクト格納文書は、テキストボックスオブジェクトも格納されるものであり、
前記オブジェクト操作部は、前記テキストボックスオブジェクトに含まれるテキストデータを読み出すことができるものであり、
前記オブジェクト問い合わせ部は、前記テキストボックスオブジェクトの位置が前記テーブルオブジェクトの所望の要素に位置していることを検出して、前記テキストボックスオブジェクトの前記テキストデータを読み出すことを特徴とする、請求項１記載のデータ抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ入力装置に適用して好適な技術に関する。
より詳細には、多人数より発生するデータの収集作業を、確実且つ効率良く行うための技術に関する。
【背景技術】
【０００２】
企業では、多くの社員から定型的な情報を収集する場面が多々ある。
一例としては、人事考課や部門の業績評価を目的として、所定期間毎に目標設定や目標達成の報告を収集したり、新たな商品企画等を募るアンケート等、様々な場面が想定できる。
【０００３】
従来、このような定型的な情報を収集する際には、当該社員にワープロ等の文書ファイルを送付して、それに記入して貰い、その文書ファイルを回収して、所定の項目について手作業でデータ（文章等）を抽出していた。
【０００４】
なお、本発明に関連すると思われる先行技術文献を特許文献１に示す。
【特許文献１】特開２００４−３０２６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
手作業によるデータの抽出作業は、その件数が多くなるほど大変である。
また、抽出した後に集計等の、データの後処理を行う場合、データに修正が入ると、作業が一からやり直しになってしまう。
【０００６】
本発明はかかる点に鑑みてなされたものであり、多人数より発生するデータの収集作業を、確実且つ効率良く行うための、データ抽出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明は、オブジェクト格納文書を用いてデータを抽出する装置であって、オブジェクト格納文書には、テキストを格納できる１つ以上のセルにて構成されるテーブルオブジェクトが格納される。
オブジェクト操作部は、オブジェクト格納文書を操作し、テーブルオブジェクトに含まれるセルを選択的に読み出すことができる。
取り込み定義テーブルは、テーブルオブジェクトの各セルをレコードとして表現し、各セルの論理的位置を特定する行フィールドと列フィールドを備える。
取り込みテーブルは、取り込み定義テーブルにて定義された各セルのうち、データを取り込む対象となるフィールドを備える。
オブジェクト問い合わせ部は、オブジェクト操作部に対し、取り込み定義テーブルの内容に基づいてテーブルオブジェクトの問い合わせを行い、取り込みテーブルにデータを格納する。
プロセス間通信部は、オブジェクト問い合わせ部から、オブジェクト操作部に対し、テーブルオブジェクトを指定した問い合わせの要求を伝送し、前記問い合わせに対する返答として、所定のデータを伝送する。
データ抽出装置は、以上の構成よりなるものである。
【０００８】
リッチテキストをデータ入力の帳票として流用し、プロセス間通信にてリッチテキストに格納されるテーブルオブジェクトの各セルを読み出すことにより、ユーザが使い慣れたリッチテキスト環境をそのままデータ入力のツールとして流用できる。
【発明の効果】
【０００９】
本発明により、多人数より発生するデータの収集作業を、確実且つ効率良く行うための、データ抽出装置を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を、図１〜図１０を参照して説明する。
【００１１】
本実施形態は、主に企業内におけるデータ入力と収集を自動化する技術に関する。
具体的には、先ず、マイクロソフト社のプレゼンテーションソフトウェア製品である、ＰｏｗｅｒＰｏｉｎｔ（登録商標）のデータファイルに、空のテーブルが記述される。これが、本実施形態を実施しようとするデータ集計担当者によって、データ入力担当者に配布される。
データ入力担当者は、配布されたデータファイルの空のテーブルに所定のデータを入力して、配布元のデータ集計担当者に返送する。
そして、データ集計担当者は、返送されたデータファイルから、ＯＬＥ（後述）を用いて所望のデータを抽出する。
【００１２】
［全体構成］
図１は、本実施の形態の例である、データ抽出装置のブロック図である。
データ抽出装置１０１の実体はコンピュータであり、一例としては、一般的なパソコンである。
コンピュータは、ＣＰＵ１０２、ＲＯＭ１０３、ＲＡＭ１０４、表示部１０５、操作部１０６、ストレージ１０７が、バス１０８に接続されて、構成される。
ＣＰＵ１０２は、周知の中央演算処理装置である。
ＲＯＭ１０３は、周知の不揮発性記憶装置であり、ＢＩＯＳ等が格納される。
ＲＡＭ１０４は、周知の主記憶装置である。
表示部１０５は、液晶等の、周知のディスプレイである。
操作部１０６は、キーボードやマウス等、周知の入力デバイスである。
ストレージ１０７は、ハードディスク装置等、周知の不揮発性補助記憶装置である。
【００１３】
ストレージ１０７には周知のＯＳと、本実施形態にかかるプログラムが格納される。
以下の説明では、ＯＳはマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）としているが、所定の条件が満たされれば、ＯＳは限定されない。この点の詳細については後述する。
【００１４】
図２はデータ抽出装置の機能ブロック図である。
図１がハードウェアの構成をブロック図として表現したものであることに対し、図２は、ＯＳとアプリケーションプログラム、そしてデータが提供する機能を概念的に表現したものである。
オブジェクト格納文書２０２は、所定のアプリケーションプログラムにて読み書きされるデータファイルである。
オブジェクト操作部２０３は、オブジェクト格納文書２０２に対して様々な操作を実行する機能部分であり、ＯＳ上で稼動するプロセスである。その実体は、アプリケーションプログラムそのもの、或はアプリケーションプログラムの中核機能部分である。これは、Ｗｉｎｄｏｗｓ（登録商標）では「ＯＬＥサーバ」と表現される。
ＯＬＥとは、「Object Linking and Embedding」の略で、アプリケーションソフト間でデータを転送・共有するための、Ｗｉｎｄｏｗｓ（登録商標）に設けられている仕組みである。ＯＬＥの詳細については後述する。
【００１５】
オブジェクト問い合わせ部２０４は、オブジェクト操作部２０３に対し、オブジェクト格納文書２０２を操作する命令を下すと共に、得られた結果を処理する機能部分であり、ＯＳ上で稼動するプロセスである。これは、Ｗｉｎｄｏｗｓ（登録商標）では「ＯＬＥクライアント」と表現される。
ＯＬＥサーバとＯＬＥクライアントとは、プロセス間通信にて情報の授受が行われる。これは、ＯＳが提供する共有メモリ２０５を通じて行われる。
【００１６】
なお、ＯＬＥサーバ、ＯＬＥクライアント、共有メモリ２０５の実装形態はＯＳに依存するが、これから述べる機能は、必ずしもＯＳに縛られるものではない。
【００１７】
オブジェクト問い合わせ部２０４は、取り込み定義テーブル２０６に記述されている内容を読み込み、この内容に従ってオブジェクト操作部２０３に種々の問い合わせを行う。
オブジェクト操作部２０３はオブジェクト問い合わせ部２０４の命令に従って、オブジェクト格納文書２０２から指定された内容（オブジェクト）を読み出し、オブジェクト問い合わせ部２０４に返す。
オブジェクト問い合わせ部２０４は、得られた内容（オブジェクト）を、データファイルである取り込みテーブル２０７に書き出す。
【００１８】
なお、取り込みテーブル２０７はデータファイルの一形態であるので、必ずしもテーブルの形式に囚われる必要はない。例えばＸＭＬ（Extensible Markup Language：文書やデータの意味や構造を記述するためのマークアップ言語の一つ。ＳＧＭＬのサブセットであり、書式はＨＴＭＬに類似する。）を用いることもできる。
また、取り込みテーブル２０７の代わりに、データを格納する機能を備えるサーバプロセスであってもよい。
【００１９】
ここで、オブジェクト格納文書２０２とオブジェクト操作部２０３とオブジェクト問い合わせ部２０４について説明する。
本実施形態では、オブジェクト操作部２０３はマイクロソフト社のプレゼンテーションソフトウェア製品である、ＰｏｗｅｒＰｏｉｎｔ（登録商標）であり、オブジェクト格納文書２０２はこのデータファイルである。
一方、オブジェクト問い合わせ部２０４は、ここではロータスノーツ（登録商標）のマクロ言語によって構築される。
勿論、本実施形態はこれら特定の製品にのみ縛られるものではなく、一定の条件が満たされれば、これらに限定されない。
【００２０】
［オブジェクト格納文書２０２］
図３は、オブジェクト格納文書２０２の内容を説明する概略図である。
オブジェクト格納文書２０２には、プレゼンテーションのためのスライド３０２が複数格納されている。
スライド３０２は、主にディスプレイ等に表示されることを意図して設けられるページであり、多くの場合、ディスプレイに合わせるために横向きである。
図４は、オブジェクト格納文書２０２に含まれるスライド３０２の内容を説明する概略図である。
スライド３０２には、テーブルオブジェクト４０２、テキストボックスオブジェクト４０３、画像オブジェクト４０４などの、様々なオブジェクトが、自由な位置及び大きさにて格納されている。
【００２１】
テーブルオブジェクト４０２は、一つ以上の行と、一つ以上の列よりなる表を構成するオブジェクトである。罫線で囲まれた四角の部分をセル４０５と呼ぶ。このセル４０５に、文字列を記入（格納）することができる。
テキストボックスオブジェクト４０３は、テキスト、すなわち文字列を記入（格納）することができる、単一の四角形状の欄である。
画像オブジェクト４０４は、文字通り、画像データである。
【００２２】
各々のオブジェクトは、一つのスライド３０２の中にオブジェクトの番号が連番にて割り振られている。
各々のオブジェクトを読み出すには、オブジェクト操作部２０３に対し、スライド３０２の番号と、該当するスライド３０２中のオブジェクト番号を指定することで、読み出すことができる。
各々のオブジェクトは、その形態に応じて様々な情報が付帯的に関連付けられて記憶されている。
【００２３】
例えば、テキストボックスオブジェクト４０３では、
・テキストボックスオブジェクト４０３がテキストボックスオブジェクトであることを示す属性情報、
・テキストボックスオブジェクト４０３の、スライド３０２中における位置、大きさ、
・テキストボックスオブジェクト４０３の、中身の文字列そのもの、
・テキストボックスオブジェクト４０３の、中身の文字列に使用されるフォント
等の情報が付帯的に関連付けられて記憶されている。
【００２４】
同様に、テーブルオブジェクト４０２においては、
・テーブルオブジェクト４０２がテーブルオブジェクトであることを示す属性情報、
・テーブルオブジェクト４０２の、スライド３０２中における位置、大きさ、
・テーブルオブジェクト４０２の、行数と列数、
・テーブルオブジェクト４０２の、ｍ行目ｎ列目のセル４０５の、
・・中身に含まれるデータの属性、
・・データそのもの、
・・或は他のセル４０５に結合しているか否か
等の情報が付帯的に関連付けられて記憶されている。
【００２５】
本実施形態では、データ集計担当者によるデータ収集作業の過程において、テーブルオブジェクト４０２の、所定のセル４０５に記憶されている文字列を取得する。
ところが、データ入力担当者によっては、データ集計担当者が想定しない形態で、データを入力して、データファイルをデータ集計担当者に返送する場合がある。
これは、図９（ａ）及び（ｂ）にて示すように、スライド３０２の見た目の状態と、実際のオブジェクトの関連性との違いから生じる問題である。この、オブジェクト同士の関連性に起因する問題と、その解決策については後述する。
【００２６】
テーブルという構成をデータで表現するには、色々な方法が考えられる。
オブジェクト格納文書２０２においては、その表現方法を、オブジェクトという概念を用いて表現する。いわゆる「オブジェクト指向」と呼ばれる技術概念である。
オブジェクト指向は、純粋にデータ構造の面から考えれば、ツリー構造のデータベースに類似する。
【００２７】
オブジェクト指向の有用性は周知である。
オブジェクト指向に従うプログラミング言語にてアプリケーションソフトウェアを構築することにより、大規模なアプリケーションソフトウェアのプログラミングを効率よく実現することが知られている。
また、データの取り扱いにオブジェクト指向を取り入れることにより、アプリケーションソフトウェアの表現能力を向上させることができる。
ＰｏｗｅｒＰｏｉｎｔ（登録商標）は、異なるアプリケーションソフトウェアにて作成したデータをオブジェクトとして取り扱い、それらオブジェクトを一つのスライド３０２に自由に配置することで、表現能力を向上させている。
【００２８】
本実施形態では、本来プレゼンテーションのための道具である、ＰｏｗｅｒＰｏｉｎｔ（登録商標）のデータファイルを、データ入力のためのシートとして流用するものである。
ＰｏｗｅｒＰｏｉｎｔ（登録商標）は、その表現能力とデータ作成の簡便さによって、多くの企業ユーザに支持されている。
このことは、多くの企業ユーザが使い慣れていることにも繋がる。
したがって、ＰｏｗｅｒＰｏｉｎｔ（登録商標）のスライド３０２にテーブルオブジェクト４０２を配置して、これをデータ入力のための帳票として流用することができれば、比較的容易にデータ収集を実現できる。
【００２９】
従来、既存のアプリケーションソフトウェアのデータから所望のデータを読み出そうとする場合、データ構造を解析し、それを読み出すツールを一から作り出さなければならない。
しかし、必ずしも内部のデータ構造が開示されている訳ではないデータファイルを解析することは、容易なことではない。
そこで、既存のアプリケーションソフトウェアにそれらの機能を代行して貰い、必要なデータを取り出すようにする。このとき、Ｗｉｎｄｏｗｓ（登録商標）に備わっている機能であるＯＬＥが、有効活用される。
【００３０】
ＰｏｗｅｒＰｏｉｎｔ（登録商標）は、データファイルに格納されている個々のデータの要素（オブジェクト）を、ＯＬＥを通じて事細かに読み出すことが可能である。特に、テーブルオブジェクト４０２においては、テーブルの位置、大きさ、セルの数、行数、列数、各セルに格納されるデータの種類、データの中身等を、事細かに読み出すことができる。
本実施形態は、ＰｏｗｅｒＰｏｉｎｔ（登録商標）の、多様な形態のデータ群を夫々オブジェクトとして容易に取り扱うことができる特性に着目し、データ入力のための帳票として流用するものである。
【００３１】
本実施形態では、ＰｏｗｅｒＰｏｉｎｔ（登録商標）がＯＬＥサーバとなる。
そして、オブジェクト問い合わせ部２０４は、ＯＬＥサーバに問い合わせを行う、ＯＬＥクライアントを構成する。
なお、本実施形態では、ＯＬＥクライアントはロータスノーツ（登録商標）のマクロ言語によって構築されている。
【００３２】
［取り込み定義テーブル２０６］
図５（ａ）、（ｂ）及び（ｃ）は、スライド３０２とチェック項目テーブル５０２と取り込み定義テーブル２０６を表す概略図である。
図５（ａ）は、スライド３０２の一例を示す。
スライド３０２中には、第１のテーブルオブジェクト５１２、第２のテーブルオブジェクト５１３及び第３のテーブルオブジェクト５１４が配置されている。
第１のテーブルオブジェクト５１２は、２列の欄を持つ行が３行、その後１列の欄を持つ行が二行配置されている。
【００３３】
セル５２１には、項目名「重点施策」を表す「重点施策」という文字列が記入されている。
セル５２２は、項目名「重点施策」の入力欄を構成する。
セル５２３には、項目名「目標値」を表す「目標値」という文字列が記入されている。
セル５２４は、項目名「目標値」の入力欄を構成する。
セル５２５には、項目名「達成度」を表す「達成度」という文字列が記入されている。
セル５２６は、項目名「達成度」の入力欄を構成する。
セル５２７には、項目名「具体的施策」を表す「具体的施策」という文字列が記入されている。
セル５２８は、項目名「具体的施策」の入力欄を構成する。
なお、セル５２８は比較的長い文字列を格納できるように、セル５２２、５２４、５２６よりも広いスペースが割り当てられている。
また、セル５２７及びセル５２８は、本来２列に分かれていた同一行の二つのセルを結合したものである。
【００３４】
図５（ｂ）は、チェック項目テーブル５０２の一例を示す。
チェック項目テーブル５０２は、スライド３０２中のテーブルオブジェクトが、データを取り込むべき対象であるか否かをチェックするための項目を列挙するものである。
「チェック表番号」フィールドは、スライド３０２中に存在するテーブルオブジェクトのうち、何番目のテーブルオブジェクトをチェック対象にするのかを示す。
「チェック項目名」フィールドは、テーブルオブジェクトの、特定のフィールドに記載されている文字列と完全一致する文字列を記入する。図５（ａ）の４行目にある「具体的施策」が、この欄に記入されている。
「チェック項目」の欄は、「行」フィールドと「列」フィールドが存在する。「行」フィールドと「列」フィールドには、テーブルオブジェクトの中のセルを特定する、対象行番号及び列番号を指定する。図５（ｂ）では、４行１列に記載されている文字列を対象とする、という意味である。これは、セル５２７が該当する。
【００３５】
表番号は、スライド３０２中に存在するオブジェクトのうち、テーブルオブジェクトの順番に従う連番である。
スライド３０２中に存在する全てのオブジェクトは、その作成順番に基づいて、１から始まる連番が付されている。このため、本実施形態の処理においては、各々のオブジェクトの配置関係を見て、左上から右下へ並べ替えを行う。
【００３６】
図５（ｂ）では、チェック項目テーブル５０２に１レコードのみ記入されている。
「チェック表番号」フィールドには表番号「１」が記入されている。
表番号「１」は、第１のテーブルオブジェクト５１２に該当する。
したがって、表番号「２」に相当する第２のテーブルオブジェクト５１３と、表番号「３」に相当する第３のテーブルオブジェクト５１４は、チェック項目テーブル５０２によるチェック処理の対象外である。
【００３７】
図５（ｃ）は、取り込み定義テーブル２０６の一例を示す。この取り込み定義テーブル２０６は、テーブルオブジェクトからデータを取り込む位置を指定する定義表である。図５（ｃ）は、テーブルの定義を示すと共に、ロータスノーツ（登録商標）上で設定する各項目の形態をも示している。
「表番号」フィールドは、スライド３０２中に存在するテーブルオブジェクトのうち、何番目のテーブルオブジェクトをデータ取り込み対象にするのかを示す。
「項目名」フィールドは、テーブルオブジェクトの、取り込むフィールドの項目名を示す。
「値」の欄には、「行」フィールドと「列」フィールドが存在する。「行」フィールドと「列」フィールドには、テーブルオブジェクトの中のセルを特定する、対象行番号及び列番号を指定する。
「数値として扱うか」フィールドは、取り込んだ文字列データを数値データとして扱うか、文字列データとして扱うかを示すフラグであり、チェックボックスにて切り替えられる。
「改行カット」フィールドは、取り込んだ文字列データから改行を除去するか否かを示すフラグであり、「数値として扱うか」フィールドと同様に、チェックボックスにて切り替えられる。
「重複チェックのキー番号」フィールドは、取り込んだデータについて重複を許すか許さないかを示すものである。番号は、ソート（並べ替え）のキーとしてどの順番から利用するかを示す。
【００３８】
図５（ｃ）の取り込み定義テーブル２０６の各レコード、とりわけ「行」フィールドと「列」フィールドの値によって、セル５２２（１行２列）、５２４（２行２列）、５２６（３行２列）及び５２８（５行１列）がデータ取り込み対象となるセルであることがわかる。
【００３９】
［動作］
図６は、本実施形態にかかるデータ抽出装置の全体的な動作の流れを示すフローチャートである。
処理を開始すると（Ｓ６０１）、ＯＬＥクライアントであるオブジェクト問い合わせ部２０４は、ＯＬＥサーバであるオブジェクト操作部２０３に対し、目的のファイルであるオブジェクト格納文書２０２を読み込むように、指示する（Ｓ６０２）。この時点で、オブジェクト操作部２０３は共有メモリ２０５を通じて起動され、ＯＳ上にて一つのプロセスを形成する。
【００４０】
次に、オブジェクト問い合わせ部２０４は、チェック項目テーブル５０２から、オブジェクト格納文書２０２に含まれるスライド３０２が取り込み対象となるスライド３０２であるか否かを判定するための項目を読み込む（Ｓ６０３）。
次に、オブジェクト問い合わせ部２０４は、取り込み定義テーブル２０６から、オブジェクト格納文書２０２に含まれるスライド３０２に記述されているテーブルオブジェクトから所望のデータを取り出すための情報を取得する（Ｓ６０４）。この情報は、取り込み定義テーブル２０６からデータ取り込み対象のセルを特定するための、「行」フィールドと「列」フィールドの値である。
【００４１】
次に、オブジェクト問い合わせ部２０４は、オブジェクト操作部２０３に対し、オブジェクト格納文書２０２中に存在する全てのオブジェクトを総ざらいに調べ上げる。
全てのオブジェクトについて、属するスライド３０２の番号と、そのスライド３０２の中におけるオブジェクトの番号を取得する。そして、そのオブジェクトがテーブルオブジェクトか、或はテキストボックスオブジェクトである場合には、その旨を示す情報を保持しておく（Ｓ６０５）。具体的には、
・スライド３０２の番号と、
・スライド３０２中のオブジェクトの番号と、
・当該オブジェクトがテーブルオブジェクトであることを示すフラグと、
・当該オブジェクトがテキストボックスオブジェクトであることを示すフラグ
を取得し、これら４つの値をフィールドとして、配列変数の形で保持する。この配列変数は、ＲＡＭ１０４上に一時的にテーブルとして構成される。この配列変数の保持は、オブジェクトの番号とその属性について記憶することと等価である。
【００４２】
配列変数において、テーブルオブジェクトとテキストボックスオブジェクトのみをデータ取り扱いの対象とする理由は、本実施形態では、データ取り込みの対象がテーブルオブジェクトに限定されることと、図９にて後述する、一部ユーザによる、テキストボックスオブジェクトを用いる、予期せぬデータ入力操作に対応するためである。
こうして、一通りデータ取り込みの対象を特定することができたら、データ取り込み処理を行い（Ｓ６０６）、終了する（Ｓ６０７）。
【００４３】
図７は、本実施形態にかかるデータ抽出装置の、データ取り込み処理の動作の流れを示すフローチャートである。図６のステップＳ６０６の処理が該当する。
処理を開始すると（Ｓ７０１）、図６のステップＳ６０５にて取得していた、オブジェクトの情報を格納した配列変数に従って、処理を進める。ここでは、配列変数の各レコードのうち、テーブルオブジェクトを示すフラグが立っているレコードについてのみ注目する。
先ず、配列変数のうち、テーブルオブジェクトを示すフラグが立っているレコード群の、最初のレコードに記憶されている、スライド３０２の番号とオブジェクトの番号によって特定されるオブジェクトについて注目する。つまり、オブジェクト格納文書２０２中に現れる、最初のテーブルオブジェクトに注目する（Ｓ７０２）。
【００４４】
これ以降はループ処理である。
次に、オブジェクト問い合わせ部２０４は、オブジェクト操作部２０３に対し、当該テーブルオブジェクトは取り込み対象のテーブルオブジェクトであるか否かを、図３のステップＳ６０３において取得していた判定項目に従って問い合わせを行う。そして、得られた結果から取り込み対象となるテーブルオブジェクトであるか否かを検証する（Ｓ７０３）。
【００４５】
この処理は、具体的には、以下の手順を遂行することによって行われる。
先ず、チェック項目テーブル５０２にて取得した「チェック表番号」フィールド、「チェック項目名」フィールド、「行」フィールド及び「列」フィールドに従って、「チェック表番号」フィールドの番号に相当するテーブルオブジェクトの、指定された行と列のセルを読み出す。読み出したデータは文字列の筈である。この文字列と、「チェック項目名」フィールドの文字列と一致しているか否かを検証する。一致していれば、それはチェック項目テーブル５０２に基づくチェックをクリアしたことを意味する。
【００４６】
次に、取り込み定義テーブル２０６にて取得した各項目（レコード）の「行」フィールドと「列」フィールドの値に従い、当該行番号及び列番号に相当するセルが、チェック対象のテーブルオブジェクトに存在するか否かを検証する。取り込み定義テーブル２０６の全てのレコードについて、取り込み対象となるセルが、チェック対象のテーブルオブジェクトに存在するならば、それは取り込み定義テーブル２０６に基づくチェックをクリアした、取り込み対象のテーブルオブジェクトであることを意味する。
【００４７】
検証の結果、取り込み対象となるテーブルオブジェクトであると判定したら、オブジェクト問い合わせ部２０４は、オブジェクト操作部２０３に所定の指示を発して、当該テーブルオブジェクトからデータを取り込む処理を行う（Ｓ７０４）。なお、検証の結果、取り込み対象となるテーブルオブジェクトでないと判定したら、オブジェクト問い合わせ部２０４は何もしない（Ｓ７０３のＮ）。
【００４８】
以上の処理が終わったら、配列変数の中で、テーブルオブジェクトを示すフラグが立っているレコード群の、次のレコードが指し示すテーブルオブジェクトに注目する（Ｓ７０５）。
【００４９】
次に、その「次のテーブルオブジェクト」の有無を検証する（Ｓ７０６）。もし、「次のテーブルオブジェクト」があれば（Ｓ７０６のＮ）、再度取り込み対象のテーブルオブジェクトか否かを確認し（Ｓ７０３）、データ取り込みの動作（Ｓ７０４）を繰り返す。全てのテーブルオブジェクトについての処理が終了し、次のレコード（テーブルオブジェクト）がなければ、一連の処理は終了する（Ｓ７０７）。
【００５０】
図８は、本実施形態にかかるデータ抽出装置の、テーブルオブジェクトからデータを取り込む処理の動作の流れを示すフローチャートである。図７のステップＳ７０４の処理が該当する。
処理を開始すると（Ｓ８０１）、図６のステップＳ６０４にて取得していた、取り込み定義テーブル２０６の内容に従って、処理が進行する。
先ず、オブジェクト問い合わせ部２０４は、取り込み定義テーブル２０６の最初のレコード、つまりデータを取り込もうとする、最初の取り込み対象項目番号に注目する（Ｓ８０２）。
【００５１】
これ以降はループ処理である。
次に、オブジェクト問い合わせ部２０４は、オブジェクト操作部２０３に対し、当該テーブルオブジェクトの「行」及び「列」にある項目の値を読み出す。そして、読み出した値が有意な値であるか否かを確認する（Ｓ８０３）。もし、有意な値（文字列）が格納されていれば、その値を取り込みテーブル２０７に取り込む（Ｓ８０４）。なお、その際には取り込み定義テーブル２０６の「数値として扱うか」フィールド及び「改行カット」フィールドの設定内容に従って、改行を削除したり、文字列データから数値データへの変換処理を行う。
【００５２】
もし、テーブルオブジェクトの指定されたセルから取り込んだデータに、有意な値（文字列）が格納されていなければ（Ｓ８０３のＮ）、値は空である。そこで、次にそのセルの位置にテキストボックスがあるか否かを検証する。
現在注目しているスライド３０２中に存在する全てのテキストボックスの中心位置を見て（Ｓ８０５）、取り込み対象項目のセルの位置に、テキストボックスの中心が含まれているものがあるか否かを検証する（Ｓ８０６）。
もし、テキストボックスがセルの範囲内にあれば、そのテキストボックスの値を、テーブルオブジェクトの指定されたセルの値の代わりに読み出して、取り込みテーブル２０７に取り込む（Ｓ８０７）。なお、その際には取り込み定義テーブル２０６の「数値として扱うか」フィールド及び「改行カット」フィールドの設定内容に従って、改行を削除したり、文字列データから数値データへの変換処理を行う。
【００５３】
次に、オブジェクト問い合わせ部２０４は、取り込み定義テーブル２０６の次のレコード、つまりデータを取り込もうとする、次の取り込み対象項目番号を注目する（Ｓ８０８）。
次に、その「次の取り込み対象項目番号」の有無を検証する（Ｓ８０９）。もし、「次の取り込み対象項目番号」があれば（Ｓ８０９のＮ）、再度取り込み対象項目から値を読み出し、処理を繰り返す。なければ、処理を終了する（Ｓ８１０）。
【００５４】
［テキストボックスオブジェクトとテーブルオブジェクト］
図９（ａ）及び（ｂ）は、テーブルオブジェクトとテキストボックスオブジェクトの位置関係を示す概略図である。
データ入力担当者によっては、テーブルオブジェクト９０２の上に、テキストボックスオブジェクト９０３を作成して、そこに文字列データの入力を行う者もいる。
図９（ａ）は、データ抽出装置（コンピュータ）１０１の表示部１０５から見た、スライド３０２中に存在するテーブルオブジェクト９０２とテキストボックスオブジェクト９０３の配置関係を示す概略図である。
一見すると、テーブルオブジェクト９０２上に貼り付けたテキストボックスオブジェクト９０３は、テーブルオブジェクト９０２の一要素として記述されているように見える。
【００５５】
図９（ｂ）は、スライド３０２中に存在するテーブルオブジェクト９０２とテキストボックスオブジェクト９０３の、実際の相関関係を示す概念図である。
テーブルオブジェクト９０２のセルに文字列が記入されていれば、それはテーブルオブジェクト９０２の一要素として読み出すことができる。
しかし、テキストボックスオブジェクト９０３は、テーブルオブジェクト９０２とは全く関連性がない、別個独立したオブジェクトである。
図９（ｂ）に斜視図のイメージで示すように、論理的には、テキストボックスオブジェクト９０３は、たまたまテーブルオブジェクト９０２の上に配置されているだけであり、相互に関連性はない。したがって、テキストボックスオブジェクト９０３の値は、テーブルオブジェクト９０２を構成する一つの要素として読み出すことができない。
そこで、テキストボックスオブジェクト９０３の中心位置を算出して、その中心位置がテーブルオブジェクト９０２の読み出したいセルの範囲内に位置しているのか否かを検証する。検証の結果、セルの範囲内にあるテキストボックスオブジェクト９０３であれば、その内容は当該セルの値であるとみなして、データ取り込み処理を行う。
【００５６】
以上説明した実施形態より、各々の機能部分には、以下の条件が必要となる。
（ａ）オブジェクト格納文書２０２
少なくとも、セルにテキストを格納できるテーブルオブジェクトを格納できる必要がある。
少なくとも、テーブルオブジェクトの各セルを、オブジェクト操作部２０３を通じて読み出すことができる必要がある。いわゆる、リッチテキストと呼ばれるものである。
したがって、プレーンテキスト等であっても、オブジェクト操作部２０３によってオブジェクトを表現するフォーマットが設けられていることが必要である。
【００５７】
（ｂ）オブジェクト操作部２０３
少なくとも、オブジェクト格納文書２０２を開き、オブジェクト格納文書２０２に格納されているテーブルオブジェクトの各要素を選択的に読み出すことができる必要がある。
【００５８】
（ｃ）オブジェクト問い合わせ部２０４
少なくとも、オブジェクト操作部２０３に対してオブジェクトの問い合わせを実行できる必要がある。
一例としては、
・ＶｉｓｕａｌＢａｓｉｃ（登録商標）、
・Ｗｉｎｄｏｗｓ（登録商標）Ｓｃｒｉｐｔｉｎｇ  Ｈｏｓｔ（ＷＳＨ）、
・Ｊａｖａ（登録商標）、
・Ｃ＃（シー・シャープ）
等のプログラミング言語とその実行環境が挙げられる。
【００５９】
（ｄ）取り込み定義テーブル２０６
テーブルオブジェクトの各要素をレコードとして表現すると共に、テーブルオブジェクトの各要素（欄）の論理的位置を特定する、行フィールドと列フィールドの存在が必須である。
（ｅ）取り込みテーブル２０７
取り込み定義テーブル２０６にて定義された、取り込み対象の要素に相当するフィールドの存在が必須である。
（ｆ）共有メモリ２０５或は類似するプロセス間通信機能
オブジェクト問い合わせ部２０４から、オブジェクト操作部２０３に対し、オブジェクトを指定した問い合わせの要求を伝送することと、問い合わせに対する返答として、所定のデータを伝送することが必須である。
【００６０】
本実施形態には、以下のような応用例が考えられる。
（１）オブジェクト格納文書２０２及びオブジェクト操作部２０３は、本実施形態によるＰｏｗｅｒＰｏｉｎｔ（登録商標）に限定されない。
前記（ａ）及び（ｂ）の条件を満たせば、アプリケーションソフトウェアの種類は問わない。ワードプロセッサ、表計算ソフト、データベースソフト等、様々な種類のものが考えられる。
【００６１】
（２）プロセス間通信機能は、前述の共有メモリ２０５に限定されない。つまり、「オブジェクト問い合わせ部２０４から、オブジェクト操作部２０３に対し、オブジェクトを指定した問い合わせの要求が通信されることと、問い合わせに対する返答として、所定のデータが返されること」が実現されるならば、オブジェクト操作部２０３とオブジェクト問い合わせ部２０４が同一のコンピュータ内にある必要もない。
図１０（ａ）及び（ｂ）は、本発明のもう一つの実施形態である、データ抽出システムのブロック図である。
図１０（ａ）を見てわかるように、サーバ１００２とクライアント１００３が、ネットワーク１００４を介して通信できる状態になっている。その機能ブロック図が図１０（ｂ）である。図２と同一の機能部分は同一名称及び同一番号を付している。
図２と図１０（ｂ）との相違点は、プロセス間通信機能を提供するものが、共有メモリ２０５か、ネットワーク１００４と、ネットワークインターフェース１００５及び１００６であるかの違いだけである。
すなわち、オブジェクト操作部２０３は、クライアントであるオブジェクト問い合わせ部２０４に対するサーバに該当するので、ＯＬＥでなくとも、オブジェクトの問い合わせと返答が実現できればよい。
【００６２】
ネットワークを介したプロセス間通信機能の実現には、様々な形態が考えられる。
一つには、名前つきパイプを用いて、これをＳＳＨ（Ｓｅｃｕｒｅ  Ｓｈｅｌｌ）のポートフォワーディングにて、サーバ１００２とクライアント１００３を接続する手法である。
他には、ＳＯＡＰ（Simple Object Access Protocol：ＸＭＬ文書にエンベロープと呼ばれる付帯情報が付いたメッセージを、ＨＴＴＰ等のプロトコルで交換し、異なる環境間でのオブジェクト志向通信を実現するプロトコル。）を用いる手法が考えられる。
【００６３】
（３）取り込み定義テーブル２０６とチェック項目テーブル５０２を一体化して、オブジェクト問い合わせ部２０４の構成により汎用性を持たせることもできる。
【００６４】
（４）ステップＳ８０５及びＳ８０６では、取り込み対象項目のセルの位置に、テキストボックスの中心が含まれているものがあるか否かで、判定を行っていた。
この処理に代えて、取り込み対象項目のセルの範囲に、テキストボックスが含まれているか否かで、判定を行ってもよい。
つまり、テキストボックスが取り込み対象項目のセルの範囲からはみ出ていないことを検証するものである。
また、これ以外にも、取り込み対象項目のセルとテキストボックスとの配置関係を検証できる手法であれば、その判定ロジックは問わない。
【００６５】
本実施形態においては、データ抽出装置を開示した。
リッチテキストをデータ入力の帳票として流用し、プロセス間通信にてリッチテキストに格納されるテーブルオブジェクトの要素を読み出すことにより、ユーザが使い慣れたリッチテキスト環境をそのままデータ入力のツールとして流用できる。
【００６６】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことは言うまでもない。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施の形態による、データ抽出装置のブロック図である。
【図２】データ抽出装置の機能ブロック図である。
【図３】オブジェクト格納文書の内容を説明する概略図である。
【図４】オブジェクト格納文書に含まれるスライドの内容を説明する概略図である。
【図５】スライドとチェック項目テーブルと取り込み定義テーブルを表す概略図である。
【図６】データ抽出装置の全体的な動作の流れを示すフローチャートである。
【図７】データ抽出装置の、データ取り込み処理の動作の流れを示すフローチャートである。
【図８】データ抽出装置の、テーブルオブジェクトからデータを取り込む処理の動作の流れを示すフローチャートである。
【図９】テーブルオブジェクトとテキストボックスオブジェクトの位置関係を示す概略図である。
【図１０】本発明のもう一つの実施形態である、データ抽出システムのブロック図である。
【符号の説明】
【００６８】
１０１…データ抽出装置、１０２…ＣＰＵ、１０３…ＲＯＭ、１０４…ＲＡＭ、１０５…表示部、１０６…操作部、１０７…ストレージ、１０８…バス、２０２…オブジェクト格納文書、２０３…オブジェクト操作部、２０４…オブジェクト問い合わせ部、２０５…共有メモリ、２０６…取り込み定義テーブル、２０７…取り込みテーブル、３０２…スライド、４０２、９０２…テーブルオブジェクト、４０３、９０３…テキストボックスオブジェクト、４０４…画像オブジェクト、４０５、５２１、５２２、５２３、５２４、５２５、５２６、５２７、５２８…セル、５０２…チェック項目テーブル、５１２…第１のテーブルオブジェクト、５１３…第２のテーブルオブジェクト、５１４…第３のテーブルオブジェクト、１００２…サーバ、１００３…クライアント、１００４…ネットワーク、１００５、１００６…ネットワークインターフェース
【図１】
2008269492.tif 000003
【図２】
2008269492.tif 000004
【図３】
2008269492.tif 000005
【図４】
2008269492.tif 000006
【図５】
2008269492.tif 000007
【図６】
2008269492.tif 000008
【図７】
2008269492.tif 000009
【図８】
2008269492.tif 000010
【図９】
2008269492.tif 000011
【図１０】
2008269492.tif 000012