(57)【要約】      （修正有）【課題】表計算プログラムを自動的に整列可視化する処理装置の提供。【解決手段】処理装置は、原シートから対象セルを検出し、対象セル番地を新シートの第１の列のセルに順次格納し、対象セルデータを新シートの第２の列のセルに順次格納し、対象セルの変数種別を新シートの第３の列のセルに順次格納し、原シートにおいて対象セル近傍の二つのセルのデータを新シートの第４、第５の列のセルにそれぞれ順次格納し、第２の列のセルに格納された文字列を数値化または計算式化して新シートの第６の列のセルに順次格納し、新シートを第３の列をキーにしてソートする。処理装置は、第１の列から、第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、セル参照文字列を当該見つけたセルと同じ行にある第６の列のセルのセル参照に置換することで、第２の列のセルに格納された文字列を計算式化する。【選択図】図２
2014178812.tif 000002
【特許請求の範囲】
【請求項１】
表計算プログラムが記述され、データ入力用のセルに初期値が入力された原スプレッドシートをスキャンして前記初期値、前記初期値以外の数値、および計算式のいずれかが格納されている対象セルを検出し、
前記対象セルのセル番地を文字列化して新スプレッドシートにおける第１の列のセルに順次格納し、
前記対象セルのデータを文字列化して前記新スプレッドシートにおける第２の列のセルに順次格納し、
前記対象セルの変数種別を表す記号を前記新スプレッドシートにおける第３の列のセルに順次格納し、
前記原スプレッドシートにおいて前記対象セル近傍の第１および第２のセルのデータを変数名および単位を表す情報として前記新スプレッドシートにおける第４および第５の列のセルにそれぞれ順次格納し、
前記第２の列のセルに格納された文字列を数値化または計算式化して前記新スプレッドシートにおける第６の列のセルに順次格納し、
前記新スプレッドシートを前記第３の列をキーにしてソートする処理装置を備え、
前記処理装置が、前記第１の列から、前記第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、前記セル参照文字列を当該見つけたセルと同じ行にある前記第６の列のセルのセル参照に置換することで、前記第２の列のセルに格納された文字列を計算式化する
ことを特徴とする表計算プログラムの整列可視化装置。
【請求項２】
前記処理装置が、前記第１の列のセルの書き換えに応じて、前記第２の列のセルに格納された文字列中の対応文字列を書き換える、請求項１に記載の表計算プログラムの整列可視化装置。
【請求項３】
処理装置が、表計算プログラムが記述され、データ入力用のセルに初期値が入力された原スプレッドシートをスキャンして前記初期値、前記初期値以外の数値、および計算式のいずれかが格納されている対象セルを検出するステップと、
前記処理装置が、前記対象セルのセル番地を文字列化して新スプレッドシートにおける第１の列のセルに順次格納するステップと、
前記処理装置が、前記対象セルのデータを文字列化して前記新スプレッドシートにおける第２の列のセルに順次格納するステップと、
前記処理装置が、前記対象セルの変数種別を表す記号を前記新スプレッドシートにおける第３の列のセルに順次格納するステップと、
前記処理装置が、前記原スプレッドシートにおいて前記対象セル近傍の第１および第２のセルのデータを変数名および単位を表す情報として前記新スプレッドシートにおける第４および第５の列のセルにそれぞれ順次格納するステップと、
前記処理装置が、前記第２の列のセルに格納された文字列を数値化または計算式化して前記新スプレッドシートにおける第６の列のセルに順次格納するステップと、
前記処理装置が、前記新スプレッドシートを前記第３の列をキーにしてソートするステップとを備え、
前記第６の列のセルに順次格納するステップでは、前記第１の列から、前記第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、前記セル参照文字列を当該見つけたセルと同じ行にある前記第６の列のセルのセル参照に置換することで、前記第２の列のセルに格納された文字列を計算式化する
ことを特徴とする表計算プログラムの整列可視化方法。
【請求項４】
前記処理装置が、前記第１の列のセルの書き換えに応じて、前記第２の列のセルに格納された文字列中の対応文字列を書き換えるステップを備えている、請求項３に記載の表計算プログラムの整列可視化方法。
【請求項５】
表計算プログラムが記述され、データ入力用のセルに初期値が入力された原スプレッドシートをスキャンして前記初期値、前記初期値以外の数値、および計算式のいずれかが格納されている対象セルを検出する手段、
前記対象セルのセル番地を文字列化して新スプレッドシートにおける第１の列のセルに順次格納する手段、
前記対象セルのデータを文字列化して前記新スプレッドシートにおける第２の列のセルに順次格納する手段、
前記対象セルの変数種別を表す記号を前記新スプレッドシートにおける第３の列のセルに順次格納する手段、
前記原スプレッドシートにおいて前記対象セル近傍の第１および第２のセルのデータを変数名および単位を表す情報として前記新スプレッドシートにおける第４および第５の列のセルにそれぞれ順次格納する手段、
前記第２の列のセルに格納された文字列を数値化または計算式化して前記新スプレッドシートにおける第６の列のセルに順次格納する手段、および
前記新スプレッドシートを前記第３の列をキーにしてソートする手段としてコンピュータを機能させ、
前記第６の列のセルに順次格納する手段が、前記第１の列から、前記第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、前記セル参照文字列を当該見つけたセルと同じ行にある前記第６の列のセルのセル参照に置換することで、前記第２の列のセルに格納された文字列を計算式化する
ことを特徴とする表計算プログラムの整列可視化プログラム。
【請求項６】
前記第１の列のセルの書き換えに応じて、前記第２の列のセルに格納された文字列中の対応文字列を書き換える手段としてコンピュータを機能させる、請求項５に記載の表計算プログラムの整列可視化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表計算プログラムの処理装置、方法、およびプログラムに関し、特に、表計算プログラムを自動的に整列的に可視化する技術に関する。
【背景技術】
【０００２】
近年、簡便なコンピュータプログラミング手段としてＭｉｃｒｏｓｏｆｔ社のＥｘｃｅｌ（登録商標）に代表される表計算ソフトが多く使われるようになった。表計算ソフトを使用して作成された表計算プログラムでは、セル番地を説明変数扱い（セル参照）して計算式が記述されるため、１）計算のロジックが直接的にわからない、２）計算式がセルの裏に隠れているのでプログラムの全体像がわからない、３）スプレッドシートの任意のセルに任意の計算式が格納できるため表計算プログラムの作成者によってシート様式が異なる、といった諸問題がある。
【０００３】
従来、表計算ソフトを用いて作成した仕様書ファイルからコンピュータプログラムのソースコードを自動生成する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２２３８４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
表計算プログラムはプログラミングの自由度が高く、誰でも容易にプログラミングすることができる反面、他人が作成した表計算プログラムを第三者が計算式や計算の流れを理解しないまま使ったり、適切なメンテナンスができなかったり、ほかのプログラムやデータベースと入出力データをリンクさせることが難しいという問題がある。
【０００６】
上記問題に鑑み、本発明は、表計算プログラムを自動的に整列的に可視化することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一局面に従った表計算プログラムの整列可視化装置は、表計算プログラムが記述され、データ入力用のセルに初期値が入力された原スプレッドシートをスキャンして前記初期値、前記初期値以外の数値、および計算式のいずれかが格納されている対象セルを検出し、前記対象セルのセル番地を文字列化して新スプレッドシートにおける第１の列のセルに順次格納し、前記対象セルのデータを文字列化して前記新スプレッドシートにおける第２の列のセルに順次格納し、前記対象セルの変数種別を表す記号を前記新スプレッドシートにおける第３の列のセルに順次格納し、前記原スプレッドシートにおいて前記対象セル近傍の第１および第２のセルのデータを変数名および単位を表す情報として前記新スプレッドシートにおける第４および第５の列のセルにそれぞれ順次格納し、前記第２の列のセルに格納された文字列を数値化または計算式化して前記新スプレッドシートにおける第６の列のセルに順次格納し、前記新スプレッドシートを前記第３の列をキーにしてソートする処理装置を備え、前記処理装置は、前記第１の列から、前記第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、前記セル参照文字列を当該見つけたセルと同じ行にある前記第６の列のセルのセル参照に置換することで、前記第２の列のセルに格納された文字列を計算式化する。
【０００８】
前記処理装置が、前記第１の列のセルの書き換えに応じて、前記第２の列のセルに格納された文字列中の対応文字列を書き換えてもよい。
【０００９】
また、本発明の別の局面に従った表計算プログラムの整列可視化方法は、処理装置が、表計算プログラムが記述され、データ入力用のセルに初期値が入力された原スプレッドシートをスキャンして前記初期値、前記初期値以外の数値、および計算式のいずれかが格納されている対象セルを検出するステップと、前記処理装置が、前記対象セルのセル番地を文字列化して新スプレッドシートにおける第１の列のセルに順次格納するステップと、前記処理装置が、前記対象セルのデータを文字列化して前記新スプレッドシートにおける第２の列のセルに順次格納するステップと、前記処理装置が、前記対象セルの変数種別を表す記号を前記新スプレッドシートにおける第３の列のセルに順次格納するステップと、前記処理装置が、前記原スプレッドシートにおいて前記対象セル近傍の第１および第２のセルのデータを変数名および単位を表す情報として前記新スプレッドシートにおける第４および第５の列のセルにそれぞれ順次格納するステップと、前記処理装置が、前記第２の列のセルに格納された文字列を数値化または計算式化して前記新スプレッドシートにおける第６の列のセルに順次格納するステップと、前記処理装置が、前記新スプレッドシートを前記第３の列をキーにしてソートするステップとを備え、前記第６の列のセルに順次格納するステップでは、前記第１の列から、前記第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、前記セル参照文字列を当該見つけたセルと同じ行にある前記第６の列のセルのセル参照に置換することで、前記第２の列のセルに格納された文字列を計算式化する。
【００１０】
当該方法は、さらに、前記処理装置が、前記第１の列のセルの書き換えに応じて、前記第２の列のセルに格納された文字列中の対応文字列を書き換えるステップを備えていてもよい。
【００１１】
また、本発明のさらに別の局面に従った表計算プログラムの整列可視化プログラムは、表計算プログラムが記述され、データ入力用のセルに初期値が入力された原スプレッドシートをスキャンして前記初期値、前記初期値以外の数値、および計算式のいずれかが格納されている対象セルを検出する手段、前記対象セルのセル番地を文字列化して新スプレッドシートにおける第１の列のセルに順次格納する手段、前記対象セルのデータを文字列化して前記新スプレッドシートにおける第２の列のセルに順次格納する手段、前記対象セルの変数種別を表す記号を前記新スプレッドシートにおける第３の列のセルに順次格納する手段、前記原スプレッドシートにおいて前記対象セル近傍の第１および第２のセルのデータを変数名および単位を表す情報として前記新スプレッドシートにおける第４および第５の列のセルにそれぞれ順次格納する手段、前記第２の列のセルに格納された文字列を数値化または計算式化して前記新スプレッドシートにおける第６の列のセルに順次格納する手段、および前記新スプレッドシートを前記第３の列をキーにしてソートする手段としてコンピュータを機能させ、前記第６の列のセルに順次格納する手段が、前記第１の列から、前記第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、前記セル参照文字列を当該見つけたセルと同じ行にある前記第６の列のセルのセル参照に置換することで、前記第２の列のセルに格納された文字列を計算式化する。
【００１２】
当該プログラムは、さらに、前記第１の列のセルの書き換えに応じて、前記第２の列のセルに格納された文字列中の対応文字列を書き換える手段としてコンピュータを機能させてもよい。
【発明の効果】
【００１３】
本発明によると、原スプレッドシートにおいて自由に記述された表計算プログラムが新プログラムにおいて自動的に整列可視化される。特に、原スプレッドシートにおいて散在していたデータ入力用セルや計算式が新スプレッドシートの所定の列に集約される。これにより、他人が作成した表計算プログラムの計算式や計算の流れが理解しやすくなり、メンテナンスも容易になり、さらには、ほかのプログラムやデータベースと入出力データをリンクさせることが容易になる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る表計算プログラムの整列可視化装置の外観図
【図２】表計算プログラムの整列可視化のフローチャート
【図３】表計算プログラムが記述された原スプレッドシートを示す図
【図４】整列可視化途中の新スプレッドシートを示す図
【図５】新スプレッドシートにおいて変数記号が書き換えられた例を示す図
【図６】整列可視化が完了した新スプレッドシートを示す図
【図７】完成した新スプレッドシートに数値を入力した例を示す図
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら本発明を実施するための形態について説明する。なお、本発明は、以下の実施形態に限定されるものではない。
【００１６】
図１は、本発明の一実施形態に係る表計算プログラムの整列可視化装置（以下、本装置と称することがある）１０の外観を示す。本装置１０は、表示装置１２、処理装置１４、およびマウスやキーボードなどの入力装置１６から構成される一般的なコンピュータシステムで実現することができる。表示装置１２は、具体的には、液晶ディスプレイや有機ＥＬディスプレイなどのフラットパネルディスプレイである。表示装置１２はタッチパネル機能を有していてもよい。この場合、ユーザーは、指または図示しないスタイラスで表示装置１２の画面に触れることで、画面上に表示されたオブジェクトを操作することができる。処理装置１４は、具体的には、ＣＰＵ（Central Processing Unit）やＭＰＵ（MicroProcessing Unit）などを備えたコンピュータ装置である。
【００１７】
なお、本装置１０は、下述のように、表計算プログラムが記述された原スプレッドシートを処理して整列可視化された新たなスプレッドシートを生成するものである。したがって、処理装置１４に表計算プログラムを実行するための表計算ソフトがインストールされている必要はない。
【００１８】
新スプレッドシートは、原スプレッドシートと同じファイル（Ｅｘｃｅｌ（登録商標）の場合のブック）の別シートとして作成されてもよいし、原スプレッドシートとは別ファイルとして作成されてもよい。
【００１９】
図２は、表計算プログラムの整列可視化のフローを示す。以下、図２のフローチャートおよび整列可視化途中のスプレッドシートの別図を参照しながら、本装置１０による表計算プログラムの整列可視化の手順について説明する。
【００２０】
図３は、表計算プログラムが記述された原スプレッドシートを示す。表計算ソフトを使用すると、ユーザは、シートの任意の場所（セル）に計算式や注記を記述し、さらには図形オブジェクトをも配置して図３に示したような表計算プログラムを作成することができる。
【００２１】
まず、原スプレッドシートにおいて、ユーザは、数値を入力すべきセル、すなわち、データ入力用のセルに初期値を入力する。図３の例では、Ｄ４セル、Ｄ５セルなどがデータ入力用のセルであり、初期値として“０”が入力されている。
【００２２】
処理装置１４は、データ入力用のセルに初期値が入力された原スプレッドシートをスキャンして対象セルを検出する（Ｓ１）。対象セルとは、１）初期値が入力されているセル、２）初期値以外の数値が入力されているセル、３）計算式が入力されているセル、のいずれかのセルである。スキャン方向は列優先および行優先のいずれでもよい。
【００２３】
処理装置１４が図３に示した原スプレッドシートを列優先でスキャンすると、例えば、計算式が入力されているＣ２３セル、Ｄ３セル、初期値が入力されているＤ４セル、Ｄ５セル、初期値以外の数値が入力されているＤ６セルの順に対象セルが検出される。初期値が入力されているＪ３４セルが、図３に示した原スプレッドシートにおいて最後に検出される対象セルである。
【００２４】
処理装置１４は、ステップＳ１で検出した対象セルのセル番地を文字列化して新スプレッドシートの第１の列のセルに順次格納する（Ｓ２）。図４は、整列可視化途中の新スプレッドシートを示す。新スプレッドシートの第１行目の各セルには各列のタイトルが記述されている。処理装置１４は、例えば、新スプレッドシートのＣ列の第２行目のセルから順に対象セルのセル番地の文字列を格納する。例えば、新スプレッドシートのＣ２セルには原スプレッドシートにおいて最初に検出される対象セルであるＣ２３セルのセル番地“Ｃ２３”が格納され、新スプレッドシートのＣ３４セルには原スプレッドシートにおいて最後に検出される対象セルであるＪ３４セルのセル番地“Ｊ３４”が格納される。当該文字列は新スプレッドシートにおいて「変数記号」として扱われる。
【００２５】
なお、セル番地は、上記例の“Ｃ２３”（Ｃ列の第２３行目）や“Ｄ３”（Ｄ列の第３行目）のようなＡ１参照形式以外に、“Ｒ３Ｃ２３”（第３列目の第２３行目）や“Ｒ４Ｃ３”（第４列目の第３行目）のようなＲ１Ｃ１参照形式であってもよい。
【００２６】
また、処理装置１４は、ステップＳ１で検出した対象セルのデータを文字列化して新スプレッドシートの第２の列のセルに順次格納する（Ｓ３）。図４に示したように、処理装置１４は、例えば、新スプレッドシートのＥ列の第２行目のセルから順に対象セルのデータの文字列を格納する。例えば、新スプレッドシートのＥ２セルには原スプレッドシートにおいて最初に検出される対象セルであるＣ２３セルのデータ“＝Ｄ３＊２／Ｄ８＊（Ｉ２３−Ｈ２１）／Ｉ２３＋Ｊ３／４”が格納され、新スプレッドシートのＥ３４セルには原スプレッドシートにおいて最後に検出される対象セルであるＪ３４セルのデータ“０”（初期値）が格納される。当該文字列は新スプレッドシートにおいて「計算内容」として扱われる。
【００２７】
なお、表計算ソフトにはほかのシートやブックなどからデータを引用する独自の関数があるが、それらは原スプレッドシートの対象セル内に記述されている通りに格納される。例えば、新スプレッドシートのＥ３セルには、原スプレッドシートのＤ３セルに記述されていた“[ＥＯＴ計算.xls]というほかのブックのシート「主巻装置」のＤ３セル内にあるデータを読み込む”という関数記述がそのまま格納されている。
【００２８】
また、処理装置１４は、ステップＳ１で検出した対象セルの変数種別を表す記号を新スプレッドシートの第３の列のセルに順次格納する（Ｓ４）。変数種別にはＩ：入力変数、Ｃ：定数、Ｐ：過程変数、Ｏ：出力変数の４種類ある。初期値が格納されている対象セルは種別Ｉに、初期値以外の数値が格納されている対象セルは種別Ｃに、他の計算式で計算結果が引用されている計算式（被参照式）が格納されている対象セルは種別Ｐに、他の計算式で計算結果が引用されない計算式（非参照式）は種別Ｏに、それぞれ分類することができる。図４に示したように、処理装置１４は、例えば、新スプレッドシートのＡ列の第２行目のセルから順に対象セルの変数種別の記号“Ｉ”、“Ｃ”、“Ｐ”、“Ｏ”を格納する。例えば、新スプレッドシートのＡ２セルには原スプレッドシートにおいて最初に検出される対象セルであるＣ２３セルの変数種別“Ｐ”が格納され、新スプレッドシートのＡ３４セルには原スプレッドシートにおいて最後に検出される対象セルであるＪ３４セルの変数種別“Ｉ”が格納される。当該記号は新スプレッドシートにおいて「変数種別」として扱われる。
【００２９】
表計算プログラムにおいて各変数には変数名が付けられ、また、その変数の数量単位が示されていることが多い。さらに、変数名および単位は当該変数の近傍に示されていることが多い。そこで、処理装置１４は、原スプレッドシートにおいて対象セル近傍の二つのセルのデータを変数名および単位を表す情報として新スプレッドシートにおける第４および第５の列のセルにそれぞれ順次格納する（Ｓ５）。経験的に言って、変数名は変数の左側のセル、単位は変数の右側のセルにそれぞれ格納されていることが多い。したがって、処理装置１４は、対象セルの左方向を探索して文字列を格納しているセルを見つけ、当該文字列を変数名を表す情報として新スプレッドシートにおける第４の列のセルに順次格納する。変数名はかな漢字文字で表されていると考えられるため、処理装置１４は、対象セルの左方向にかな漢字文字列を格納しているセルを見つけてもよい。また、対象セルの左方向にそのようなセルが見つからなければ、処理装置１４は、対象セルの右方向または上下方向を探索してもよい。
【００３０】
一方、処理装置１４は、対象セルの右方向を探索して文字列を格納しているセルを見つけ、当該文字列を単位を表す情報として新スプレッドシートにおける第５の列のセルに順次格納する。単位は半角英数文字で表されていると考えられるため、処理装置１４は、対象セルの右方向に半角英数文字列を格納しているセルを見つけてもよい。また、対象セルの右方向にそのようなセルが見つからなければ、処理装置１４は、対象セルの左方向または上下方向を探索してもよい。あるいは、単位となり得る文字列をあらかじめテーブル形式にまとめておくことで、処理装置１４は、当該テーブルを参照して、見つかった文字列が単位を表すものかどうかを判定することができる。これにより、より高精度で信頼性の高い整列可視化が可能となる。
【００３１】
図４に示したように、処理装置１４は、例えば、新スプレッドシートのＢ列の第２行目のセルから順に対象セルに隣接する第１のセルのデータを格納する。例えば、新スプレッドシートのＢ３セルには原スプレッドシートにおいて検出される対象セルであるＤ３セルの左隣のＣ３セルのデータ“定格荷重  ＷＲ＝”が格納される。当該文字列は新スプレッドシートにおいて「変数名」として扱われる。また、図４に示したように、処理装置１４は、例えば、新スプレッドシートのＤ列の第２行目のセルから順に対象セルに隣接する第２のセルのデータを格納する。例えば、新スプレッドシートのＤ３セルには原スプレッドシートにおいて検出される対象セルであるＤ３セルの右隣のＥ３セルのデータ“t”が格納される。当該文字列は新スプレッドシートにおいて「単位」として扱われる。
【００３２】
なお、上記のステップＳ２〜Ｓ５の実行順序は入れ替え可能である。あるいは、上記のステップＳ２〜Ｓ５は同時並行的に実行することもできる。
【００３３】
新スプレッドシートにおいて少なくとも第１および第２の列（図４の例ではＣ列とＥ列）のすべての処理が終わると、処理装置１４は、第２の列のセルに格納された文字列を数値化または計算式化して新スプレッドシートにおける第６の列のセルに順次格納する（Ｓ６）。図４に示したように、処理装置１４は、例えば、新スプレッドシートのＦ列の第２行目のセルから順に数値または計算式を格納する。例えば、新スプレッドシートのＥ４セル、Ｅ５セルに格納されている文字列“０”（初期値）は数値化されて同じ行のＦ列のセル、すなわち、Ｆ４セル、Ｆ５セルに数値“０”として格納される。また、新スプレッドシートのＥ６セルに格納されている文字列“＝５”は数値化されて同じ行のＦ列のセル、すなわち、Ｆ５セルに数値“５”として格納される。
【００３４】
なお、新スプレッドシートのＥ列において文字列“０”を格納しているセルと同じ行のＡ列のセルに格納された変数種別は必ず“Ｉ”であるため、処理装置１４は、Ａ列のセルを参照して、変数種別“Ｉ”を格納しているセルと同じ行のＦ列のセルに数値“０”を格納してもよい。
【００３５】
また、ステップＳ６で、処理装置１４は、第１の列から、第２の列のセルに格納された文字列中のセル参照文字列と同じ文字列を格納しているセルを見つけ、当該セル参照文字列を当該見つけたセルと同じ行にある第６の列のセルのセル参照に置換することで、第２の列のセルに格納された文字列を計算式化する。例えば、図４の例では、Ｅ７セルに文字列“＝（Ｄ３＋Ｊ３）＊１０００＊（Ｄ４／Ｄ５／３．１４１６）＾２”が格納されている。当該文字列中の“Ｄ３”、“Ｊ３”などは原スプレッドシートにおけるセル参照文字列である。処理装置１４は、Ｅ列のセルに格納された各文字列に含まれるすべてのセル参照文字列について、Ｃ列を探索して当該セル参照文字列と同じ文字列が格納されているセルを見つける。例えば、処理装置１４は、Ｅ７セルの文字列中のセル参照文字列“Ｊ３”についてＣ列を探索して同じ文字列“Ｊ３”を格納しているＣ２６セルを見つける。Ｃ列において目的のセルが見つかると、処理装置１４は、当該セル参照文字列“Ｊ３”を当該見つけたセルと同じ第２６行目にあるＦ列のセル、すなわち、Ｆ２６セルのセル参照“Ｆ２６”に置換して、Ｅ７セルの文字列を数式化する。ステップＳ６で処理装置１４が第２の列のセルに格納された文字列を数値化または計算式化して新スプレッドシートにおける第６の列のセルに順次格納したものは、新スプレッドシートにおいて「計算式」として扱われる。
【００３６】
なお、Ｆ列のセルに格納される計算式におけるセル参照は、図４の例のようなＡ１参照形式以外に、Ｒ１Ｃ１参照形式であってもよい。
【００３７】
ステップＳ６まで実行することで、原スプレッドシートに記述されていた表計算プログラムが新スプレッドシートにおいて整列的に可視化されるが、これをさらに加工してもよい。例えば、新スプレッドシートにおいてＧ列に備考を記入してもよい。
【００３８】
また、新スプレッドシートにおけるＣ列の変数記号は原スプレッドシートのセル番地をそのまま文字列化したものであるため、人間にとってわかりづらい。そこで、ユーザは新スプレッドシートにおけるＣ列のセルを適宜書き換えてもよい（Ｓ７）。ただし、Ｃ列のセルを書き換えた場合、Ｅ列のセルの修正も必要となる。そこで、処理装置１４は、新スプレッドシートにおけるＣ列のセルの書き換えに応じて、Ｅ列のセルに格納された文字列中の対応文字列を書き換えてもよい。図５は、新スプレッドシートにおいて変数記号が書き換えられた例を示す。例えば、Ｅ７セルにおける文字列“Ｄ３”、“Ｊ３”、“Ｄ４”、“Ｄ５”（図４を参照）が、Ｃ３セル、Ｃ４セル、Ｃ５セル、Ｃ２６セルの書き換えによって、文字列“ＷＲ”、“ＷＴ”、“Ｖ”、“Ｎ”にそれぞれ置換される。しかし、Ｅ７セルに対応するＦ７セルの計算式はＣ列のセルが書き換えられても変更されない。このように、新スプレッドシートにおいてＣ列の変数記号の書き換えはＦ列の計算式に何ら影響しない。
【００３９】
新スプレッドシートにおいて各行に“Ｉ”、“Ｃ”、“Ｐ”、“Ｏ”のいずれかの変数種別が配置されている。これら変数種別が順に並んでいないとやはり人間にとってわかりづらい。そこで、ステップＳ７が終了すると、処理装置１４は、Ａ列をキーにして新スプレッドシートをソートして新スプレッドシートを完成させる。変数種別の並び順はＩ→Ｃ→Ｐ→Ｏの順にするのが適当である。図６は、整列可視化が完了した新スプレッドシートを示す。最終的に完成した新スプレッドシートでは、ユーザによって、原スプレッドシートの記述が不備だったため変換が不十分だった変数名と単位を適宜修正され、さらに、見やすくするために罫線が引かれている。例えば、ソート前のＦ７セルはソート処理によってＦ３０に移動している。ソート処理によってＦ列の計算式のセル参照は処理装置１４によって自動的に変更される。
【００４０】
なお、図６に示したように、新スプレッドシートの空いている領域に原スプレッドシート中の描画オブジェクトを貼り付けてもよい。当該貼り付け処理は、ユーザが行ってもよいし、処理装置１４が行うこともできる。図７は、完成した新スプレッドシートに数値を入力した例を示す。ユーザが数値を入力すべきセルは、Ｅ列において“０”が格納されているセルと同じ行のＦ列のセル、すなわち、Ｆ２セルからＦ２２セルまでである。
【００４１】
なお、本装置１０で表計算プログラムの整列可視化を実行する前に、原スプレッドシートの表計算プログラムをプリ処理、ソルバー、ポスト処理の３つに分けて別のシートやブックに保管しておき、ソルバー部分にのみ本装置１０を適用すると表計算プログラムの全体像がより分かりやすくなる。プリ処理とは、ソルバー用の入力データを一定の表やグラフや図として表示する処理、ポスト処理とは、ソルバーの計算結果を用いて一定の表やグラフや図を作成する処理をいう。
【００４２】
以上、本実施形態によると、原スプレッドシートにおいてさまざまな列に分散してわかりづらくなっていた数値および計算式が、新スプレッドシートにおいて特定の列（図６の例ではＦ列）にすべて集約される。これにより、他人が作成した表計算プログラムの計算式や計算の流れが理解しやすくなり、メンテナンスも容易になり、さらには、ほかのプログラムやデータベースと入出力データをリンクさせることが容易になる。
【００４３】
なお、本発明は上記の実施形態に限定されない。例えば、本発明に係る表計算プログラムの整列可視化装置はタブレットＰＣやノートＰＣなどで実現することもできる。また、ＰＣなどの汎用コンピュータに表計算プログラムの整列可視化プログラムを実行させて当該汎用コンピュータを表計算プログラムの整列可視化装置として機能させることもできる。表計算プログラムは、例えば、Ｅｘｃｅｌ（登録商標）のＶＢＡマクロとして記述することができる。また、本発明に係る表計算プログラムの整列可視化装置は、表計算プログラムの整列可視化方法を実施するネットワーク上のサーバーから汎用コンピュータがサービス提供を受けるといったＳａａＳ（Software as a Service）などのいわゆるクラウドシステムとして実現することもできる。
【符号の説明】
【００４４】
１０  表計算プログラムの整列可視化装置
１４  処理装置
【図１】
2014178812.tif 000003
【図２】
2014178812.tif 000004
【図３】
2014178812.tif 000005
【図４】
2014178812.tif 000006
【図５】
2014178812.tif 000007
【図６】
2014178812.tif 000008
【図７】
2014178812.tif 000009