(57)【要約】【課題】  スプレッドシートにおける計算の処理時間を短縮することができるソースコード生成プログラム、ソースコード生成装置及び方法を提供する。【解決手段】  複数のセルにより構成されるスプレッドシートからセルの値を取得し（Ｓ１０４）、取得したセルの値において、他のセルを指定する値である指定値があるかどうかを判断し（Ｓ１０４）、指定値があると判断した場合、指定値により指定されるセルの値において、指定値があるかどうかを判断し（Ｓ１０４）、取得ステップにより取得されたセルの値に関する判断において、指定値があると判断した回数に基づいて、取得したセルの値に対して、セルの値の計算順序を設定し（Ｓ１０４）、設定した計算順序に基づいて、セルの値を記述したソースコードを生成する（Ｓ１０５）。【選択図】  図３
2010108325.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルにより構成されるスプレッドシートからセルの値を取得する取得ステップと、
所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するプログラムモジュールを、前記取得ステップにより取得されたセルの値を前記所定のセルの値として与えて実行する判断ステップと、
前記プログラムモジュールが前記指定値があると判断した場合、前記プログラムモジュールが検査対象の値が前記指定値を含まないと判断するまで、該プログラムモジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該プログラムモジュールを実行する再判断ステップと、
前記再判断ステップにおける前記プログラムモジュールの実行回数に基づいて、前記取得ステップにより取得されたセルの値に対して、該セルの値の計算順序を設定する設定ステップと、
前記設定ステップにより設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成ステップと
をコンピュータに実行させるソースコード生成プログラム。
【請求項２】
請求項１に記載のソースコード生成プログラムにおいて、
前記取得ステップにより取得されたセルの値において、前記判断ステップにより前記指定値がないと判断された場合、前記設定ステップは、前記指定値がないと判断されたセルの値の計算順序を最初に設定することを特徴とするソースコード生成プログラム。
【請求項３】
請求項１または請求項２に記載のソースコード生成プログラムにおいて、
前記設定ステップは、前記判断ステップにより前記指定値があると判断され、該指定値により指定されるセルの値に計算順序が設定されている場合、該計算順序に基づいて、前記取得ステップにより取得されたセルの値の計算順序を設定することを特徴とするソースコード生成プログラム。
【請求項４】
請求項１乃至請求項３のいずれかに記載のソースコード生成プログラムにおいて、
前記設定ステップは、前記取得ステップにより取得されたセルの値に関する前記再判断ステップにおける前記プログラムモジュールの実行回数の最大値に基づいて、前記取得ステップにより取得されたセルの値に対して、計算順序を設定することを特徴とするソースコード生成プログラム。
【請求項５】
請求項１乃至請求項４のいずれかに記載のソースコード生成プログラムにおいて、
前記生成ステップは、前記セルの値と、該セルの値の指定値とを等号により結ぶことを特徴とするソースコード生成プログラム。
【請求項６】
複数のセルにより構成されるスプレッドシートからセルの値を取得する取得部と、
所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するモジュールを、前記取得部により取得されたセルの値を前記所定のセルの値として与えて実行する判断部と、
前記モジュールが前記指定値があると判断した場合、前記モジュールが検査対象の値が前記指定値を含まないと判断するまで、該モジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該モジュールを実行する再判断部と、
前記再判断部における前記モジュールの実行回数に基づいて、前記取得部により取得されたセルの値に対して、該セルの値の計算順序を設定する設定部と、
前記設定部により設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成部と
を備えるソースコード生成装置。
【請求項７】
複数のセルにより構成されるスプレッドシートからセルの値を取得する取得ステップと、
所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するモジュールを、前記取得ステップにより取得されたセルの値を前記所定のセルの値として与えて実行する判断ステップと、
前記モジュールが前記指定値があると判断した場合、前記モジュールが検査対象の値が前記指定値を含まないと判断するまで、該モジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該モジュールを実行する再判断ステップと、
前記再判断ステップにおける前記モジュールの実行回数に基づいて、前記取得ステップにより取得されたセルの値に対して、該セルの値の計算順序を設定する設定ステップと、
前記設定ステップにより設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成ステップと
を備えるソースコード生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は表計算ソフトに関するものである。
【背景技術】
【０００２】
数値計算やシミュレーションを行う場合、目視確認が容易であり、計算に用いるデータが作成しやすい表計算ソフトが利用される。また、表計算ソフトにおいて、行と列で構成される表であるスプレッドシートが用いられる。このような表計算ソフトにおいて、多数のデータについて結果を求める場合、例えば、ＶＢＡ（Ｖｉｓｕａｌ  Ｂａｓｉｃ  ｆｏｒ  Ａｐｐｌｉｃａｔｉｏｎｓ、登録商標）を用いたスプレッドシートへの入力データの設定及びソースコード生成データの回収がなされている。
【０００３】
なお、本発明の関ある従来技術として、デバッグ時に欠くことができないプログラムの実行過程に関する情報をユーザに提供して、効率的なプログラミング作業を可能にする制約指向型表計算システム及びプログラム実行過程表示方法が知られている（例えば、特許文献１参照）。
【特許文献１】特開平７−２３４８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、入力データが膨大になる場合や、数値計算、シミュレーションの式が複雑な場合、スプレッドシートにおいてはその処理に時間が掛かり、性能要求を満足できないという問題がある。
【０００５】
本発明は、上述した問題点を解決するためになされたものであり、スプレッドシートにおける計算の処理時間を短縮することができるソースコード生成プログラム、ソースコード生成装置及び方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、ソースコード生成プログラムは、複数のセルにより構成されるスプレッドシートからセルの値を取得する取得ステップと、所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するプログラムモジュールを、前記取得ステップにより取得されたセルの値を前記所定のセルの値として与えて実行する判断ステップと、前記プログラムモジュールが前記指定値があると判断した場合、前記プログラムモジュールが検査対象の値が前記指定値を含まないと判断するまで、該プログラムモジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該プログラムモジュールを実行する再判断ステップと、前記再判断ステップにおける前記プログラムモジュールの実行回数に基づいて、前記取得ステップにより取得されたセルの値に対して、該セルの値の計算順序を設定する設定ステップと、前記設定ステップにより設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成ステップとをコンピュータに実行させる。
【０００７】
また、ソースコード生成装置は、複数のセルにより構成されるスプレッドシートからセルの値を取得する取得部と、所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するモジュールを、前記取得部により取得されたセルの値を前記所定のセルの値として与えて実行する判断部と、前記モジュールが前記指定値があると判断した場合、前記モジュールが検査対象の値が前記指定値を含まないと判断するまで、該モジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該モジュールを実行する再判断部と、前記再判断部における前記モジュールの実行回数に基づいて、前記取得部により取得されたセルの値に対して、該セルの値の計算順序を設定する設定部と、前記設定部により設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成部とを備える。
【０００８】
また、ソースコード生成方法は、複数のセルにより構成されるスプレッドシートからセルの値を取得する取得ステップと、所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するモジュールを、前記取得ステップにより取得されたセルの値を前記所定のセルの値として与えて実行する判断ステップと、前記モジュールが前記指定値があると判断した場合、前記モジュールが検査対象の値が前記指定値を含まないと判断するまで、該モジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該モジュールを実行する再判断ステップと、前記再判断ステップにおける前記モジュールの実行回数に基づいて、前記取得ステップにより取得されたセルの値に対して、該セルの値の計算順序を設定する設定ステップと、前記設定ステップにより設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成ステップとを備える。
【発明の効果】
【０００９】
本発明によれば、スプレッドシートにおける計算の処理時間を短縮することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図を用いて説明する。まず、本実施の形態の概要について説明する。図１は、本実施の形態に係る変換装置の概要を示す図である。
【００１１】
図１に示すように、本実施の形態に係る変換装置１（ソースコード生成装置）は、縦横に並んだ複数のセルからなる表計算ソフトのスプレッドシートの内容を読み込み、このスプレッドシートの内容をソースコードとして生成し、出力するものである。このソースコードが実行されることにより、スプレッドシートにおける計算を高速化することができる。なお、本実施の形態において、出力されるソースコードの言語はＪａｖａ（登録商標）Ｓｃｒｉｐｔとするが、どのような言語であっても構わない。また、本実施の形態において、スプレッドシートは、横軸がアルファベット順（Ａ，Ｂ，Ｃ，．．．）で示され、縦軸が数字（１，２，３，．．．）で示される。また、それぞれのセルは、縦軸アルファベットと横軸の数字の組み合わせにより指定されるものとする。
【００１２】
次に、本実施の形態に係る変換装置の機能構成について説明する。図２は、本実施の形態に係る変換装置の構成を示す機能ブロック図である。
【００１３】
図２に示すように、本実施の形態に係る変換装置１は、抽出部１１（取得部、判断部、設定部）、ラベル生成部１２（再判断部、設定部）、出力部１３（生成部）を備えるものである。抽出部１１は、入力データとしてのスプレッドシートの各セルの内容を抽出するものである。また、ラベル生成部１２は、スプレッドシートの各セルに対して、計算順序を示す値であるラベルを生成するものである。また、出力部１３は、抽出部１１により抽出されたセルの内容と、ラベル生成部１２により生成されたラベルに基づいて、スプレッドシートの計算内容を記述したソースコードを生成し、出力するものである。なお、変換装置１における各部（各機能）は、実質的には図２に図示しないＣＰＵにより実行されるものとする。また、変換装置１のハードウェア構成については後述する。
【００１４】
次に、本実施の形態に係る変換装置の全体動作について説明する。図３は、本実施の形態に係る変換装置の全体動作を示すフローチャートである。なお、このフローチャートにおいて、所定のスプレッドシートがすでに入力され、セルの内容（セルの値）が抽出部１１により取得されているものとする（取得ステップ）。
【００１５】
まず、抽出部１１は、ラベルの最大値を０に設定し（Ｓ１０１）、入力されたスプレッドシートにおいて未選択のセルが存在するどうかを判断する（Ｓ１０２）。
【００１６】
未選択のセルが存在する場合（Ｓ１０２，ＹＥＳ）、抽出部１１は、所定のセルを選択し（Ｓ１０３）、後述する要素抽出処理を実行する（Ｓ１０４）。次に、抽出部１１は、ラベルの最大値と要素抽出処理による戻り値とにおける最大値を、ラベルの最大値に設定し（Ｓ１０５）、再度、未選択のセルが存在するかどうかを判断する（Ｓ１０２）。なお、要素抽出処理は、実質的にはプログラムモジュール（モジュール）により実現される。また、このプログラムモジュールは再帰的に処理を実行するものであり、この再帰的処理の実行回数が要素抽出処理による戻り値となる。つまり、セルのラベルは、プログラムモジュールによる実行回数に基づく値である。
【００１７】
また、ステップＳ１０２において、未選択のセルが存在しない場合（Ｓ１０２，ＮＯ）、出力部１３は、後述する出力処理を実行する（Ｓ１０６）。
【００１８】
次に、抽出処理の動作について説明する。図４は、抽出処理の動作を示すフローチャートである。なお、このフローチャートにおいて、すでに所定のセルが選択されているものとする。また、図５は、セルから抽出される要素を示す図である。
【００１９】
まず、抽出部１１は、選択されているセルのラベルに値があるかどうかを判断する（Ｓ２０１）。
【００２０】
選択されているセルの値のラベルに値がない場合（Ｓ２０１，ＮＯ）、抽出部１１は、変数ｍｘに０を設定し（Ｓ２０２）、選択されているセルの値に要素があるかどうかを判断する（Ｓ２０３、判断ステップ）。なお、本実施の形態において、要素とは他のセルを示す値である。図５に示すように、セルの値が＝Ｄ１＋１である場合はＤ１が要素であり、＝Ａ１＋Ｂ１である場合はＡ１，Ｂ１が要素である。一方、セルの値が１０である場合は要素無しとなる。つまり、本実施の形態において、要素はセルを指定する値（以下、指定値）である。
【００２１】
セルの値に要素がある場合（Ｓ２０３，ＹＥＳ）、抽出部１１は、セルの値の要素を抽出し（Ｓ２０４）、抽出した要素としての指定値が示すセルについて、後述するラベル生成処理をラベル生成部１２に実行させる（Ｓ２０５）。次に、抽出部１１は、ｍｘとラベル生成処理による戻り値とにおける最大値をｍｘに設定し、再度、セルの値に要素があるかどうかを判断する（Ｓ２０３）。
【００２２】
また、ステップＳ２０３において、セルの値に要素がない場合（Ｓ２０３，ＮＯ）、抽出部１１は、戻り値にｍｘ＋１を設定し（Ｓ２０７）、要素の有無を判断したセルのラベルに戻り値を設定し（Ｓ２０８、設定ステップ）、抽出処理を終了する。
【００２３】
また、ステップＳ２０１において、選択したセルの値のラベルに値がある場合（Ｓ２０１，ＹＥＳ）、抽出部１１は、抽出処理を終了する。
【００２４】
次に、ラベル生成処理の動作について説明する。図６は、ラベル生成処理の動作を示すフローチャートである。なお、このフローチャートにおいて、セルの値の要素はすでに抽出されているものとする。
【００２５】
まず、ラベル生成部１２は、抽出処理により抽出された要素のセルのラベルに値があるかどうかを判断する（Ｓ３０１）。
【００２６】
ラベルに値がない場合（Ｓ３０１，ＮＯ）、ラベル生成部１２は、入力としてのセルの内容の先頭が“＝”かどうかを判断する（Ｓ３０２）。
【００２７】
セルの内容の先頭が“＝”ではない場合（Ｓ３０２，ＮＯ）、ラベル生成部１２は、セルのラベルに１を設定し（Ｓ３０３、設定ステップ）、戻り値をラベルの値とし（Ｓ３０４）、ラベル生成処理を終了する。
【００２８】
一方、セルの内容の先頭が“＝”である場合（Ｓ３０２，ＹＥＳ）、ラベル生成部１２は、要素抽出処理を抽出部１１に実行させ（Ｓ３０５、再判断ステップ）、要素抽出処理により設定されたラベルの値を戻り値とし（Ｓ３０４）、ラベル生成処理を終了する。
【００２９】
ここで、上述した要素抽出処理及びラベル生成処理による処理例を示す。図７は、ラベル生成の一例を示す図である。なお、この図において、スプレッドシートにおけるセルはＡ１，Ｂ１，Ｃ１，Ｄ１とする。
【００３０】
図７に示すように、まず、Ａ１のセルが選択され（Ｅ１０１）、セルの値の要素としてＤ１が抽出され（Ｅ１０２）、Ｄ１のセルが選択される（Ｅ１０３）。Ｄ１は要素がないため、ラベルが１に設定される（Ｅ１０４）。また、Ｄ１のラベルに１が加算され、Ａ１のラベルは２に設定される（Ｅ１０５）。
【００３１】
次に、Ｂ１のセルが選択され（Ｅ１０６）、要素がないためラベルが１に設定される（Ｅ１０７）。
【００３２】
次に、Ｃ１のセルが選択され（Ｅ１０８）、セルの値の要素としてＡ１，Ｂ１が抽出され（Ｅ１０９）、Ａ１のセルが選択され、そのラベル値の２が戻り値として得られる（Ｅ１１０）。また、Ｂ１のセルが選択され、そのラベル値の１が戻り値として得られる（Ｅ１１１）。これらＡ１及びＢ１による戻り値において、最大値である２に１が加算され、Ｃ１のラベルが３に設定される（Ｅ１１２）。
【００３３】
次に、Ｄ１のセルが選択されるが、すでにラベルが設定されているため処理がなされない（Ｅ１１３）。
【００３４】
このように、他のセルを参照する回数に基づいて、セルの値の計算において必要な代入の回数、つまり適切な計算タイミングを決定することができる。具体的には、ラベルを決定するセルの値に代入が必要な回数の最大値をラベルとして設定することによって、このラベルに基づいて適切な計算順序を決定することができる。また、要素を含まないセルに対しては、ラベルを１に設定し、要素としてのセルにすでにラベルが設定されている場合は、設定されたラベルの値に基づいてセルの値を決定する。これによりセルの値の計算順序の決定に関する処理時間を短縮することができる。
【００３５】
次に、出力処理の動作について説明する。図８は、出力処理の動作を示すフローチャートである。なお、このフローチャートにおいて、内容のあるセルのラベルはすでに設定されているものとする。
【００３６】
まず、出力部１３は、ブラウザ上でＪａｖａＳｃｒｉｐｔを実行するためのタグとして＜ＳＣＲＩＰＴ＞タグを出力し（Ｓ４０１）、変数ｉに１を設定し（Ｓ４０２）、ｉがラベルの最大値より大きいかどうかを判断する（Ｓ４０３）。
【００３７】
ｉがラベルの最大値以下である場合（Ｓ４０３，ＮＯ）、出力部１３は、抽出されていないセルのうち、ラベルが付加されたセルがあるかどうかを判断する（Ｓ４０４）。
【００３８】
ラベルが付加されたセルがある場合（Ｓ４０４，ＹＥＳ）、出力部１３は、ラベルがｉのセルを抽出し（Ｓ４０５）、抽出したセルのうち、未選択のセルを選択する（Ｓ４０６）。さらに出力部１３は、選択したセル対して、その内容の先頭が“＝”であるかどうかを判断する（Ｓ４０７）。
【００３９】
セルの内容の先頭が“＝”である場合（Ｓ４０７，ＹＥＳ）、出力部１３は、セルのアドレス（指定値）に式（セルの値）を付加して出力し（Ｓ４０８、生成ステップ）、抽出したセルにおいて、に未選択のラベルｉのセルがあるかどうかを判断する（Ｓ４０９）。
【００４０】
未選択のラベルｉのセルがない場合（Ｓ４０９，ＮＯ）、出力部１３は、ｉ＋１をｉに設定し（Ｓ４１０）、再度、ラベルが付加されたセルがあるかどうかを判断する（Ｓ４０４）。
【００４１】
一方、未選択のラベルｉのセルがある場合（Ｓ４０９，ＹＥＳ）、再度、抽出したセルのうち、未選択のセルを選択する（Ｓ４０６）。
【００４２】
また、ステップＳ４０７において、セルの内容の先頭が“＝”ではない場合（Ｓ４０７，ＮＯ）、出力部１３は、セルのアドレス（指定値）に“＝”と式（セルの値）を付加して出力し（Ｓ４１１、生成ステップ）、抽出したセルにおいて、未選択のラベルｉのセルがあるかどうかを判断する（Ｓ４０９）。
【００４３】
また、ステップＳ４０４において、ラベルが付加されたセルがない場合（Ｓ４０４，ＮＯ）、出力部１３は、再度、ｉがラベルの最大値より大きいかどうかを判断する（Ｓ４０３）。
【００４４】
また、ステップＳ４０３において、ｉがラベルの最大値より大きい場合（Ｓ４０３，ＹＥＳ）、出力部１３は、＜／ＳＣＲＩＰＴ＞タグを出力し（Ｓ４１２）、出力処理を終了する。
【００４５】
なお、上述した出力処理においてＳＣＲＩＰＴタグを出力したが、これはＨＴＭＬ上でＪａｖａＳｃｒｉｐｔを実行するために必要なものであり、必ずしも出力する必要はない。ここで、上述した出力処理による処理例を示す。図９は、出力処理の一例を示す図である。なお、この図において、図７と同様にスプレッドシートにおけるセルはＡ１，Ｂ１，Ｃ１，Ｄ１とする。
【００４６】
図９に示すように、まず、ラベルが１であるセルＢ１及びＤ１のうち、アルファベット順によりセルＢ１が選択される。セルＢ１内の先頭は“＝”ではないため、“Ｂ１＝１０”が出力される（Ｅ１１４）。
【００４７】
次に、セルＤ１が選択される。セルＤ１内の先頭は“＝”ではないため、“Ｄ１＝１００”が出力される（Ｅ１１５）。
【００４８】
次に、ラベルが２であるセルＡ１が選択される。セルＡ１内の先頭は“＝”であるため、“Ａ１＝Ｄ１＋１”が出力される（Ｅ１１６）。
【００４９】
次に、ラベルが３であるセルＣ１が選択される。セルＣ１内の先頭は“＝”であるため、“Ｃ１＝Ａ１＋Ｂ１”が出力される（Ｅ１１７）。
【００５０】
上述したように、他のセルを参照する必要のあるセル程、そのラベル値を大きくし、ラベルの小さい順にセルの内容を出力することによって、正しい順序で計算を実行するソースコードを出力することができる。以下、例を用いて効果を説明する。図１０は、全体処理例を示す図である。なお、図１０において、図７、図９と同様にスプレッドシートにおけるセルはＡ１，Ｂ１，Ｃ１，Ｄ１とする。
【００５１】
例えば、図１０における入力としてのスプレッドシートにおけるＣ１＝Ａ１＋Ｂ１の結果を得るためには、Ａ１及びＢ１の処理結果が前提として必要である。また、Ａ１の処理結果を得るためには、Ｄ１の処理結果が前提として必要である。この場合、Ｂ１及びＤ１、Ａ１、Ｃ１の順に計算されることにより、正しい結果が得ることができる。この順序を決定するために、ラベル生成処理により各セルにラベルを設定し、出力処理において前後にＨＴＭＬタグとしてＳＣＲＩＰＴタグを付加し、ラベル順に式を出力することによって、ソースプログラムを出力する。なお、図１０に示すソースプログラムにおいては、結果を出力するコード（Ｄｏｃｕｍｅｎｔ．ｗｒｉｔｅ）が付加されている。このように出力されたソースプログラムを実行することによって、スプレッドシート上で得られる結果と同じ結果が得られる。
【００５２】
次に、本実施の形態に係る変換装置の処理例を示す。図１１〜１３は、入力とするスプレッドシートの例を示す図である。また、図１４及び１５は、スプレッドシートの例を入力とする出力例を示す図である。なお、本実施の形態に係る変換装置は、図１１〜１３を読み込む際、数値、指定値、計算符号のみを読み込むものとする。
【００５３】
本実施の形態に係る変換装置によるスプレッドシートからソースコードへの変換は、図１１〜１３に示すように、その処理に多くの時間を要するスプレッドシートに対して特に有効である。図１１〜１３に示すスプレッドシートを入力とした場合、その出力は、図１４及び１５に示すようなソースコードとなり、計算結果はＤ３９＝９，Ｄ４０＝６，Ｄ４１＝５，Ｄ４２＝５となる。このように、スプレッドシートの計算内容がソースコードとして出力されることにより、ＶＢＡよりも処理の速い言語による処理が可能となる。また、より処理速度の速い機器によって、出力されたソースコードが実行されることにより、更に計算速度を向上させることができる。
【００５４】
本発明は、その要旨または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
【００５５】
なお、本発明は以下に示すようなコンピュータシステムにおいて適用可能である。図１６は、本発明が適用されるコンピュータシステムの一例を示す図である。図１６に示すコンピュータシステム９００は、ＣＰＵやディスクドライブ等を内蔵した本体部９０１、本体部９０１からの指示により画像を表示するディスプレイ９０２、コンピュータシステム９００に種々の情報を入力するためのキーボード９０３、ディスプレイ９０２の表示画面９０２ａ上の任意の位置を指定するマウス９０４及び外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする通信装置９０５を有する。通信装置９０５は、ネットワーク通信カード、モデムなどが考えられる。
【００５６】
上述したような、変換装置１を構成するコンピュータシステムにおいて上述した各ステップを実行させるプログラムを、ソースコード生成プログラムとして提供することができる。このプログラムは、コンピュータシステムにより読取り可能な記録媒体に記憶させることによって、変換装置１を構成するコンピュータシステムに実行させることが可能となる。上述した各ステップを実行するプログラムは、ディスク９１０等の可搬型記録媒体に格納されるか、通信装置９０５により他のコンピュータシステムの記録媒体９０６からダウンロードされる。また、コンピュータシステム９００に少なくとも変換機能を持たせるソースコード生成プログラム（変換ソフトウェア）は、コンピュータシステム９００に入力されてコンパイルされる。このプログラムは、コンピュータシステム９００を、変換機能を有する変換システムとして動作させる。また、このプログラムは、例えばディスク９１０等のコンピュータ読み取り可能な記録媒体に格納されていても良い。ここで、コンピュータシステム９００により読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ディスク１１０やフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータシステム並びにそのデータベースや、通信装置１０５のような通信手段を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００５７】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）  複数のセルにより構成されるスプレッドシートからセルの値を取得する取得ステップと、
所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するプログラムモジュールを、前記取得ステップにより取得されたセルの値を前記所定のセルの値として与えて実行する判断ステップと、
前記プログラムモジュールが前記指定値があると判断した場合、前記プログラムモジュールが検査対象の値が前記指定値を含まないと判断するまで、該プログラムモジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該プログラムモジュールを実行する再判断ステップと、
前記再判断ステップにおける前記プログラムモジュールの実行回数に基づいて、前記取得ステップにより取得されたセルの値に対して、該セルの値の計算順序を設定する設定ステップと、
前記設定ステップにより設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成ステップと
をコンピュータに実行させるソースコード生成プログラム。
（付記２）  付記１に記載のソースコード生成プログラムにおいて、
前記取得ステップにより取得されたセルの値において、前記判断ステップにより前記指定値がないと判断された場合、前記設定ステップは、前記指定値がないと判断されたセルの値の計算順序を最初に設定することを特徴とするソースコード生成プログラム。
（付記３）  付記１または付記２に記載のソースコード生成プログラムにおいて、
前記設定ステップは、前記判断ステップにより前記指定値があると判断され、該指定値により指定されるセルの値に計算順序が設定されている場合、該計算順序に基づいて、前記取得ステップにより取得されたセルの値の計算順序を設定することを特徴とするソースコード生成プログラム。
（付記４）  付記１乃至付記３のいずれかに記載のソースコード生成プログラムにおいて、
前記設定ステップは、前記取得ステップにより取得されたセルの値に関する前記再判断ステップにおける前記プログラムモジュールの実行回数の最大値に基づいて、前記取得ステップにより取得されたセルの値に対して、計算順序を設定することを特徴とするソースコード生成プログラム。
（付記５）  付記１乃至付記４のいずれかに記載のソースコード生成プログラムにおいて、
前記生成ステップは、前記セルの値と、該セルの値の指定値とを等号により結ぶことを特徴とするソースコード生成プログラム。
（付記６）  付記１乃至付記５のいずれかに記載のソースコード生成プログラムにおいて、
前記生成ステップは、ＪａｖａＳｃｒｉｐｔにより前記ソースコードを生成することを特徴とするソースコード生成プログラム。
（付記７）  複数のセルにより構成されるスプレッドシートからセルの値を取得する取得部と、
所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するモジュールを、前記取得部により取得されたセルの値を前記所定のセルの値として与えて実行する判断部と、
前記モジュールが前記指定値があると判断した場合、前記モジュールが検査対象の値が前記指定値を含まないと判断するまで、該モジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該モジュールを実行する再判断部と、
前記再判断部における前記モジュールの実行回数に基づいて、前記取得部により取得されたセルの値に対して、該セルの値の計算順序を設定する設定部と、
前記設定部により設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成部と
を備えるソースコード生成装置。
（付記８）  複数のセルにより構成されるスプレッドシートからセルの値を取得する取得ステップと、
所定のセルの値を検査し、該値が他のセルを指定する値である指定値を含むか否かを判断し、前記指定値を含むと判断した場合に該指定値を出力するモジュールを、前記取得ステップにより取得されたセルの値を前記所定のセルの値として与えて実行する判断ステップと、
前記モジュールが前記指定値があると判断した場合、前記モジュールが検査対象の値が前記指定値を含まないと判断するまで、該モジュールが出力した指定値を前記所定のセルの値として与えて再帰的に該モジュールを実行する再判断ステップと、
前記再判断ステップにおける前記モジュールの実行回数に基づいて、前記取得ステップにより取得されたセルの値に対して、該セルの値の計算順序を設定する設定ステップと、
前記設定ステップにより設定された計算順序に基づいて、前記セルの値を記述したソースコードを生成する生成ステップと
を備えるソースコード生成方法。
【図面の簡単な説明】
【００５８】
【図１】本実施の形態に係る変換装置の概要を示す図である。
【図２】本実施の形態に係る変換装置の構成を示すブロック図である。
【図３】本実施の形態に係る変換装置の全体動作を示すフローチャートである。
【図４】抽出処理の動作を示すフローチャートである。
【図５】セルから抽出される要素を示す図である。
【図６】ラベル生成処理の動作を示すフローチャートである。
【図７】ラベル生成の一例を示す図である。
【図８】出力処理の動作を示すフローチャートである。
【図９】出力処理の一例を示す図である。
【図１０】全体処理例を示す図である。
【図１１】入力とするスプレッドシートの例を示す図である。
【図１２】入力とするスプレッドシートの例を示す図である。
【図１３】入力とするスプレッドシートの例を示す図である。
【図１４】スプレッドシートの例を入力とする出力例を示す図である。
【図１５】スプレッドシートの例を入力とする出力例を示す図である。
【図１６】本発明が適用されるコンピュータシステムの一例を示す図である。
【符号の説明】
【００５９】
１  変換装置、１１  抽出部、１２  ラベル生成部、１３  出力部。
【図１】
2010108325.tif 000003
【図２】
2010108325.tif 000004
【図３】
2010108325.tif 000005
【図４】
2010108325.tif 000006
【図５】
2010108325.tif 000007
【図６】
2010108325.tif 000008
【図７】
2010108325.tif 000009
【図８】
2010108325.tif 000010
【図９】
2010108325.tif 000011
【図１０】
2010108325.tif 000012
【図１１】
2010108325.tif 000013
【図１２】
2010108325.tif 000014
【図１３】
2010108325.tif 000015
【図１４】
2010108325.tif 000016
【図１５】
2010108325.tif 000017
【図１６】
2010108325.tif 000018