(57)【要約】      （修正有）【課題】表計算ソフトウェアの利点も活かしつつ、よりユーザにとっての利便性の高い情報処理システム、計算処理方法、計算処理プログラム、会計プログラム、会計システム、会計端末装置及び会計方法を提供する【解決手段】情報処理システム１０は、入力手段と、出力手段と、基本処理手段と、状態更新手段とを備える。基本処理手段は、定型処理を実行するために、表計算ソフトウェアの少なくとも１つのセルに関連して定義された式又は値（以下、「定義情報」という。）を用いた処理を実行する。状態更新手段は、ユーザが定型処理を行う際に、操作が予定されている領域(以下、「操作予定領域」という。)以外の領域に予め定義された再定義情報を有し、定義情報が関連するセル、行、列、シートの少なくともいずれかの操作可能対象について操作がされた場合、再定義情報を用いて操作可能対象についての状態を更新する。【選択図】図１１
2018077844.tif 000002
【特許請求の範囲】
【請求項１】
表計算ソフトウェアを用いて所定の定型処理を行う情報処理システムであって、
入力手段と、出力手段と、基本処理手段と、状態更新手段とを備え、
前記基本処理手段は、
前記定型処理を実行するために、前記表計算ソフトウェアの少なくとも１つのセルに関連して定義された式又は値（以下、「定義情報」という。）を用いた処理を実行可能であり、
前記状態更新手段は、
ユーザが前記定型処理を行う際に操作が予定されている領域(以下、「操作予定領域」という。)以外の領域に予め定義された再定義情報を有し、
前記定義情報が関連するセル、行、列、シートの少なくともいずれかの操作可能対象について操作がされた場合、前記再定義情報を用いて前記操作可能対象についての状態を更新可能である、
ことを特徴とする情報処理システム。
【請求項２】
前記定義情報は、前記操作予定領域のセルに対して定義される式または値であり、
前記状態更新手段は、前記定義情報が関連する前記行または前記列の操作がされた場合、および、前記定義情報が定義されているセルに任意の値が上書きまたは該セルの内容が削除された場合の少なくともいずれかの場合において、前記再定義情報を用いて少なくとも一つのセルに前記定義情報を再定義可能である、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記状態更新手段は、シートの追加または差し換えの操作があった場合、前記基本処理手段による前記所定の処理のうち複数のシートに亘る処理を実行する場合に、追加または差し換えのあったシートが参照の対象となるように該シートを特定し、該シートの名称を、参照する側のシート上に定義された演算式から参照可能な形で保存する、
ことを特徴とする請求項１または請求項２に記載の情報処理システム。
【請求項４】
所定の条件に応じてセルの表示態様を変更する表示態様変更手段を備える、
ことを特徴とする請求項１から請求項３のいずれかに記載の情報処理システム。
【請求項５】
前記定型処理は、会計処理である、
ことを特徴とする請求項１から請求項４のいずれかに記載の情報処理システム。
【請求項６】
表計算ソフトウェアを用いて所定の定型処理を行う情報処理方法であって、
前記定型処理を実行するために、前記表計算ソフトウェアの少なくとも１つのセルに関連して定義された式又は値（以下、「定義情報」という。）を用いた処理を実行するステップと、
前記定義情報が関連するセル、行、列、シートの少なくともいずれかの操作可能対象について操作がされた場合に、ユーザが前記所定の処理を行う際に操作が予定されている領域以外の領域に予め定義された再定義情報を用いて前記操作可能対象についての状態を更新するステップと、を有する、
ことを特徴とする情報処理方法。
【請求項７】
前記定型処理は、会計処理である、
ことを特徴とする請求項６に記載の情報処理方法。
【請求項８】
請求項６または請求項７に記載の情報処理方法による処理をコンピュータに実行させる、表計算ソフトウェアを用いた情報処理プログラム。
【請求項９】
複数の会計処理シートを予め設定している表計算ソフトウェアが搭載されたコンピュータに搭載される会計プログラムであり、
前記複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部を、前記コンピュータに付与する、会計プログラム。
【請求項１０】
請求項９に記載の会計プログラムにおいて、複数の前記会計処理シートが、売上・仕入シート、日別残高シート、損益計算シート、及び、経費のシートの組である、会計プログラム。
【請求項１１】
請求項９又は１０に記載の会計プログラムにおいて、前記自動化処理部は、自動付与及び自動修復は、複数の前記会計処理シートの間を遷移するとき、前記会計プログラムの起動、終了の何れかのとき、複数の前記会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、の少なくとも一つ以上のときに行う、会計プログラム。
【請求項１２】
表計算ソフトウェアを格納したコンピュータと、請求項１乃至３の何れかの会計プログラムと、を備える、会計システム。
【請求項１３】
複数の会計処理シートを予め設定している表計算ソフトウェアによる会計処理部と、
前記複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部と、
入力部と、
出力部と、
を備える、会計装置。
【請求項１４】
表計算ソフトウェアに対して複数の会計処理シートを予め設定しておき、複数の前記会計処理シートに対し、日々の取引を入力する会計方法であって、
複数の前記会計処理シートの間を遷移するとき、表計算ソフトウェアの起動、終了の何れかのとき、複数の前記会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、複数の前記会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う、会計方法。
【請求項１５】
表計算ソフトウェアに対して複数の会計処理シートを予め設定しておき、複数の前記会計処理シートに対し、日々の取引を入力する会計端末装置であって、
複数の前記会計処理シートの間を遷移するとき、表計算ソフトウェアの起動、終了の何れかのとき、複数の前記会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、複数の前記会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部を備える、会計端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表計算ソフトウェアによる計算システム、計算方法、計算プログラム、会計プログラム、会計システム、会計端末装置及び会計方法に関する。
【背景技術】
【０００２】
従来、業務で扱う集計や計算の処理を行う場合に、当該業務に応じた様々な情報処理システムが利用されている。
【０００３】
例えば、膨大な計算が必要な業務の１つに会計処理がある。会計処理は、コンピュータ化される以前においては、事業規模に応じてまた実態に見合った内容及び書式で決算書類を作成していたが、コンピュータ化されるようになってからは、上場企業並みの品質及び決算書類を作成している。
【０００４】
そこで、財務会計及びそのソフトウェアの知識が十分でなくても工事台帳を容易に作成するための発明がある（例えば、特許文献１参照）。特許文献１では、月毎に、ディスプレイ上に請求書等を表示させ、これに業者から発行された請求書情報を入力し、また、ディスプレイ上に入金表を表示させ、入金情報を入力する技術が開示されている。
【０００５】
また、表計算ソフトウェアによって、会計データを扱うようにしたシステムも開発されている（例えば、特許文献２参照）。
【０００６】
さらに、表計算ソフトウェアを用いたシステムは、会計処理に限らず、様々な業務の処理に応じて設計され、利用されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−１２３０７５号公報
【特許文献２】特開２０１７−１７４１３０
【特許文献３】特開２０１３−９７５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
今日市場で流通している会計ソフトウェアは、上場企業をはじめとする大企業が使用することを前提に作成されている。上場企業のような大企業では、決算書を税務署に提出するほか、銀行などの取引先に提出したり株主に報告したりしている。取引先に提出する決算書では文書としての体裁にも注意が必要であり、また経済統計を作成する際には、この決算書を利用して、集計の元データを提供する。そのため、統計や集計に役立つように、細かなルールが厳格に決められている。
【０００９】
それに対し、小規模会社や個人事業主は、決算書を税務署のみに提出する。この場合、簡易で単純な決算書で十分である場合も多い。また仮に、統計に参加する場合においても、大まかな集計値だけが求められる。そのため、小規模会社や個人事業主は、税務署提出用の決算書に特化した、構造が単純で、廉価な会計システムを求める。加えて、経営者及びその従業員にとって使い勝手のよい、会計システムが求められる。
【００１０】
また、会計処理などの場合には、特に表計算ソフトウェアによるシステム構築が適しており、これにより、比較的廉価で、経営者及びその従業員などのユーザにとって使い勝手がよいシステムが提供可能である。
【００１１】
表計算ソフトウェアは、一般的に、表計算ソフトウェア自身の機能としてユーザ自身による軽微なカスタマイズ（例えば、ＧＵＩによる対話形式の操作による表形式のシートにおける行・列の追加や削除など）が容易であり、また当該カスタマイズを行った場合に、シートの各セルに定義されている式を自動的に補正する機能（以下、「自動補正機能」と称する。）を有している。
【００１２】
しかしながら、表計算ソフトウェアが本来有する機能としてのカスタマイズの許容範囲とそれに伴う自動補正機能が有効となる範囲は、ユーザにとって使い勝手の良い（利便性の高い）システム構築をする上では限定的といわざるを得ない。
【００１３】
すなわち、システムの利便性を優先してこれらの範囲を超えた運用をしようとすると、例えば、計算の元になる参照先のデータの整合性が取れなくなり、想定される適切な結果が得られないといった致命的な問題となる場合がある。
【００１４】
この問題は、会計処理システムに限らず、表計算ソフトウェアを用いた情報処理システムの全般において同様に存在する。
【００１５】
本発明は、斯かる実情に鑑み、廉価に構築でき、ユーザによる軽微なカスタマイズとそれに伴う自動補正機能を備えた表計算ソフトウェアを用いた情報処理システム、計算処理方法、計算処理プログラム、会計プログラム、会計システム、会計端末装置及び会計方法において、表計算ソフトウェアの利点も活かしつつ、よりユーザにとっての利便性の高い情報処理システム、計算処理方法、計算処理プログラム、会計プログラム、会計システム、会計端末装置及び会計方法を提供しようとするものである。
【課題を解決するための手段】
【００１６】
本発明は、表計算ソフトウェアを用いて所定の定型処理を行う情報処理システムであって、入力手段と、出力手段と、基本処理手段と、状態更新手段とを備え、前記基本処理手段は、前記定型処理を実行するために、前記表計算ソフトウェアの少なくとも１つのセルに関連して定義された式又は値（以下、「定義情報」という。）を用いた処理を実行可能であり、前記状態更新手段は、ユーザが前記定型処理を行う際に操作が予定されている領域(以下、「操作予定領域」という。)以外の領域に予め定義された再定義情報を有し、前記定義情報が関連するセル、行、列、シートの少なくともいずれかの操作可能対象について操作がされた場合、前記再定義情報を用いて前記操作可能対象についての状態を更新可能である、ことを特徴とする情報処理システムである。
【００１７】
また、本発明は、表計算ソフトウェアを用いて所定の定型処理を行う情報処理方法であって、前記定型処理を実行するために、前記表計算ソフトウェアの少なくとも１つのセルに関連して定義された式又は値（以下、「定義情報」という。）を用いた処理を実行するステップと、前記定義情報が関連するセル、行、列、シートの少なくともいずれかの操作可能対象について操作がされた場合に、ユーザが前記所定の処理を行う際に操作が予定されている領域以外の領域に予め定義された再定義情報を用いて前記操作可能対象についての状態を更新するステップと、を有する、ことを特徴とする情報処理方法である。
【００１８】
また、本発明は、上記の情報処理方法による処理をコンピュータに実行させる、表計算ソフトウェアを用いた情報処理プログラムである。
【００１９】
また、本発明は、複数の会計処理シートを予め設定している表計算ソフトウェアが搭載されたコンピュータに搭載される会計プログラムであり、前記複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部を、前記コンピュータに付与する、会計プログラムである。
【００２０】
また、本発明は、表計算ソフトウェアを格納したコンピュータと、請求項１乃至３の何れかの会計プログラムと、を備える、会計システムである。
【００２１】
また、本発明は、複数の会計処理シートを予め設定している表計算ソフトウェアによる会計処理部と、前記複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部と、入力部と、出力部と、を備える、会計装置である。
【００２２】
また、本発明は、表計算ソフトウェアに対して複数の会計処理シートを予め設定しておき、複数の前記会計処理シートに対し、日々の取引を入力する会計方法であって、複数の前記会計処理シートの間を遷移するとき、表計算ソフトウェアの起動、終了の何れかのとき、複数の前記会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、複数の前記会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う、会計方法である。
【００２３】
また、本発明は、表計算ソフトウェアに対して複数の会計処理シートを予め設定しておき、複数の前記会計処理シートに対し、日々の取引を入力する会計端末装置であって、複数の前記会計処理シートの間を遷移するとき、表計算ソフトウェアの起動、終了の何れかのとき、複数の前記会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、複数の前記会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部を備える、会計端末装置である。
【発明の効果】
【００２４】
本発明によれば、廉価に構築でき、ユーザによる軽微なカスタマイズとそれに伴う自動補正機能を備えた表計算ソフトウェアを用いた情報処理システム、計算処理方法、計算処理プログラム、会計プログラム、会計システム、会計端末装置及び会計方法において、表計算ソフトウェアの利点も活かしつつ、よりユーザにとっての利便性の高い情報処理システム、計算処理方法、計算処理プログラム、会計プログラム、会計システム、会計端末装置及び会計方法を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第１実施形態に係る会計プログラムを搭載して当該プログラムを実行させたときの会計システムの機能ブロック構成図である。
【図２】本発明の第１実施形態に係る複数の会計処理シートのうち、売上・仕入のシートの一例を示す図である。
【図３】本発明の第１実施形態に係る複数の会計処理シートのうち、日別残高のシートの一例を示す図である。
【図４】本発明の第１実施形態に係る複数の会計処理シートのうち、損益計算のシートの一例を示す図である。
【図５】本発明の第１実施形態に係る複数の会計処理シートのうち、経費のシートの一例を示す図である。
【図６】本発明の第１実施形態に係る会計システムにおいて、数式の自動付与、自動修復の処理を示すフロー図である。
【図７】操作員が意図せずに数式を削除する場面において、マクロによる数式の自動修復の状況に関し、会計システムの出力部の表示状況を示す図である。
【図８】操作員が意図せずに数式を変更する場面において、マクロによる数式の自動修復の状況に関し、会計システムの出力部の表示状況を示す図である。
【図９】操作員が行を挿入する場面において、マクロによる数式の自動修復の状況に関し、会計システムの出力部の表示状況を示す図である。
【図１０】操作員が定数を入力する場面において、マクロによる数式の自動修復がなされない状況に関し、会計システムの出力部の表示状況を示す図である。
【図１１】本発明の第２実施形態に係る会計処理システムの概要図である。
【図１２】本発明の第２実施形態に係る会計処理システムのシートの一例である。
【図１３】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図１４】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図１５】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図１６】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図１７】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図１８】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図１９】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図２０】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図２１】本発明の第２実施形態に係る会計処理システムにおける、串刺し演算処理の概念図である。
【図２２】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図２３】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図２４】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図２５】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【図２６】本発明の第２実施形態に係る状態更新手段を説明する概要図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態を添付図面を参照して説明する。
【００２７】
＜第１実施形態＞
まず、図１〜図１０を参照して、本発明の第１実施形態について、説明する。
【００２８】
図１は、本発明の実施形態に係る会計プログラムを搭載して当該プログラムを実行させたときの会計システムの機能ブロック構成図である。会計システム１は、図１に示すように、入力部２と、演算処理部３と、表計算ソフトウェア及び会計プログラムを記憶した記憶部４と、出力部５と、を少なくとも備えている。
【００２９】
会計システム１は、入力部２と演算処理部３と表計算ソフトウェア及び会計プログラムを記憶した記憶部４と出力部５とを備えたコンピュータを用いて、表計算ソフトウェア及び会計プログラムを演算処理部３で処理することにより実現される。ここで、表計算ソフトウェアには、複数の会計処理シートが予め設定されている。
【００３０】
よって、演算処理部３は、会計ソフトウェアにより実現される会計処理部３aと、自動化処理部３ｂを構成する。自動化処理部３ｂは、複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う。
【００３１】
この自動付与、自動修復は、複数の会計処理シートの間を遷移するとき、会計プログラムの起動、終了の何れかのとき、複数の会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、の少なくとも一つ以上のときに行われる。
【００３２】
自動付与・自動修復を説明する前提として、会計プログラムの起動から日々の利益額の計算までのプロセス、さらには決算書作成までのプロセスを説明する。
【００３３】
ステップ１：会計プログラムを起動する。この会計プログラムは、エクセル（登録商標）等の表計算ソフトウェア上で起動させることができる。すると、会計プログラム上に既に入力されている複数のシートが表示可能な状態となる。表示可能なシートは、「売上・仕入」、「日別残高」、「損益計算」、「経費」などのシートである。
【００３４】
ステップ２：シートのうち「売上・仕入」を選択し、請求書の内容、すなわち、客先
（取引先）名、売上、仕入を入力する。すると、売上、仕入などが積算され、「損益計算」と「日別残高」に反映される。
【００３５】
ステップ３：シートのうち「経費」を選択し、各種の経費を入力する。すると、経費、雑収入などが積算され、「損益計算」と「日別残高」に反映される。
【００３６】
ステップ４：シートのうち「日別残高」を選択し、日々の現金の残高と預金残高を表示する。これは、入力誤りや入力漏れなどの人的な誤りを発見するための、情報提供となる。
【００３７】
ステップ５：シートのうち「損益計算」を選択すると、日々の利益金額が自動で生成される。決算時には、決算処理をした後に、シートを印刷して、決算書の一部として税務署に提出できる。
【００３８】
ここで、会計プログラムで作成されているフォームとしての各シートについて説明する。図２は本発明の実施形態に係る複数の会計処理シートのうち、売上・仕入のシートの一例を示す図、図３は本発明の実施形態に係る複数の会計処理シートのうち、日別残高のシートの一例を示す図、図４は本発明の実施形態に係る複数の会計処理シートのうち、損益計算のシートの一例を示す図、図４は本発明の実施形態に係る複数の会計処理シートのうち、経費のシートの一例を示す図である。
【００３９】
「売上・仕入」のシートには、「売上・仕入、品物の動き」と「決済情報、お金の動き」の二つの大項目に分かれている。前者の大項目「売上・仕入、品物の動き」は、「No」、取引日付を示す「年月、日」、「勘定科目」、「顧客先名」、「内容、数量」、「取引金額」などの項目で構成される。後者の大項目「決済情報、お金の動き」は、取引日付を示す「年月、日」、「上期／下期」、「当社負担分の送金手数料」、「現金」の入金及び出金、「預金１」の入金及び出金、「預金２」の入金及び出金、「預金３」の入金及び出金などの項目で構成される。
【００４０】
「日別残高」のシートは、取引のあった日毎に、「現金」、「預金１」、「預金２」、「預金３」などのそれぞれの入金と出金と残高の項目で構成される。
【００４１】
「損益計算」のシートは、「単月の合計」と「期首からの合計」の二つに大別され、それぞれ、「売上」、「仕入」、「売上利益」、「雑収入」、「経費」、「総利益」の各項目で構成される。
【００４２】
「経費」のシートは、取引日付を示す「年月、日」、「経費の識別コード」、「勘定科目」、「現金」「預金」の各項目で構成され、「現金」は入金及び出金で構成され、各預金は「入金」、「出金」、「振込手数料」の各項目で構成される。「勘定科目」としては、通信費、事務用品、旅費交通費、外注加工費、給与、水道光熱費などがある。なお、「損益計算」のシートとは、「経費の識別コード」をキーとして他の値と連携している。
【００４３】
これらのシートを構成する各項目のセルは、本プログラムで与えられた数式により関連づけられ、シート間でのセル内の情報を関連づけている。関連性については会計の分野においては公知である。また、セル間の関連付けの仕組みそれ自体についても公知である。しかしながら、その関係性の数式それ自体は公知ではない。本発明者が自ら創作したものである。例えば、「経費」シートにおいて、自動修復の対象の列の数式は、次のようになる。
【００４４】
"=IF(OR(ISERR(DATEVALUE(INT(RC5/100)+1988 &"/"& MOD(RC5,100)&" / "& OFFSET(RC5,,1))),RC5>3100,RC5<2601),1,IF(RC5<OFFSET(RC5,1,),IF(RC5=EVEN(RC5),55,44),IF(RC6=OFFSET(RC6,-1,), IF(OR(  OFFSET(RC,-1,)=4, OFFSET(RC,-1,)=5, OFFSET(RC,-1,)=1 ),   OFFSET(RC,-1,),IF(RC5=EVEN(RC5),5,4) ),IF(OR(OFFSET(RC,-1,)=1,OFFSET(RC,-1,)=44,OFFSET(RC,-1,)=55),IF(RC5=EVEN(RC5),5,4),1))))"
【００４５】
ここで、RC5、RC、RC6は各参照セルを示す。
【００４６】
また、「売上・仕入」、「日別残高」、「損益計算」、「経費」の4シート間の連携は、数式のみに依存する。この４シートのみでも、法人税の白色申告ができる。
【００４７】
本発明の実施形態において、或るシート内のセル間において数式で関係付けられ、又は、或るシートと別のシートとのセル間において数式で関係付けられているとき、数式の自動付与及び自動修復に関する機能を備える。
【００４８】
図６は、本発明の実施形態に係る会計システムにおいて、数式の自動付与、自動修復の処理を示すフロー図である。
【００４９】
先ず、或るシートから別のシートに移動するか、又は或るシートにおいてセルに何らかの入力があるかを判断する（step11）。
【００５０】
Step11においてYesの場合、或るシートにおいて数式が入るべきセルを精査し、当該セルに正しい数式が入力されているか否かを判定する（step12）。
【００５１】
Step12においてNoの場合、正しい数式を自動付与する（Step13）。
【００５２】
例えば、Step12において、数式が入力されるべきセルがブランク（空白）になっているためNoの判定となっている場合、Step13において当該セルに数式が自動付与される。操作員が無意識にセル内の値（情報）をDeleteした場合などに対応することができる。
【００５３】
例えば、Step12において、或るシート上で数式が入力されるべきセルに対して本来定義されるべき数式と異なっている数式が入力されているため、Noの判定となっている場合、Step13において当該セルに数式が自動付与される。操作員が無意識にセルを選択して誤って修復操作をした場合などに対応することができる。
【００５４】
例えば、Step12において、或るシート上で行を挿入したため数式が入力されていないセルが生じ、Noの判定となっている場合、Step13において当該セルに数式が自動付与される。操作員が行の挿入をした場合などに対応することができる。
【００５５】
なお、Step12において、或るシート上でセルに定数を入力したためNoの判定となっている場合、Step13において当該セルへの数式の自動入力はなされない。これは、操作員が意識的に当該セルに定数を入力した場合などに対応するためである。意識的に当該セルに定数を入れる必要がある場合とは例えば、或る売掛金の決済に「預金１」の勘定及び「現金」の勘定などの複数の勘定を同時に用いる場合や、「預金２」、「預金３」のような数式の対応していない勘定を用いる場合である。「売上・仕入」のシートにおいては、売掛金の回収時に、「預金１」の勘定又は「現金」の勘定の何れか一方の勘定で、全額決済されるという前提で、数式が定義されているが、実務ではそれ以外の決済方法が良く表れる。このような場合に対応することを可能にするため、定数値の入力を許容するものである。
【００５６】
本発明の実施形態に係る会計端末装置１は、図１に示すように、会計システム１において会計プログラムを実行することにより具現化され、複数の会計処理シートを予め設定している表計算ソフトウェアによる会計処理部３Ａと、複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部３Ｂと、入力部２と、出力部５と、を備える。
【００５７】
このような会計端末装置１を用いることにより、本発明の実施形態に係る会計方法として、表計算ソフトウェアに対して複数の会計処理シートを予め設定しておき、複数の会計処理シートに対し、日々の取引を入力する際、複数の会計処理シートの間を遷移するとき、表計算ソフトウェアの起動、終了の何れかのとき、複数の会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行うことができる。
【００５８】
本発明の実施形態では、このように、数式の自動付与、自動修復機能を有するため、或るシート内又はシート間においてセルに正しい数式を定義しておくことにより、正しい計算結果を表示することができる。よって、或るシートにおいて行の挿入、削除の何れか一方又は双方があっても、その挿入、削除に対応させて数式の自動付与及び自動修復をすることができる。セルに正しい数式を定義しておくための技術としては、エクセル（登録商標）には「セル保護、ワークシート保護」の機能があるが、それらの機能を取り入れると、使い勝手の劣るシステムとなる。本発明の数式の自動付与・自動修復は、セルに正しい数式を定義しておきつつ、必要な場合には定数入力も許す、そんな堅牢性と柔軟性に優れた技術である。
【００５９】
この数式の自動付与、修復機能は、或るシートから別のシートに移動するか、又は或るシートにおいてセルに何らかの入力があるかを判断するだけでなく、操作員が特定の指示、例えば「修復」のボタンをONにしたり、ファイルを保存したりする場合であってもよい。
【００６０】
以下、具体的な場面を想定して説明する。図７は、操作員が意図せずに数式を削除する場面において、マクロによる数式の自動修復の状況に関し、会計システム１の出力部４の表示状況を示す図である。
【００６１】
「売上・仕入」のシートにおいて、「決済情報、お金の動き」の「預金」の入金に対して数式が予め入力されているとする。すなわち、図７（Ａ）に示すように、表示部４の画面上部の数式バーには、数式が表示されている。
【００６２】
その後、図７（Ｂ）に示すように、操作員がその数式をＤｅｌｅｔｅしたとすると、その直後の状態は、図７（Ｂ）に示すように、数式が入力されるべきセルなのに、ブランク（空白）になっている。
【００６３】
暫くすると、例えば１秒ほど待つと、マクロの働きにより、図７（Ｃ）に示すように正しい数式が付与される。
【００６４】
図８は、操作員が意図せずに数式を変更する場面において、マクロによる数式の自動修復の状況に関し、会計システム１の出力部４の表示状況を示す図である。
【００６５】
「売上・仕入」のシートにおいて、「決済情報、お金の動き」の「預金」の入金に対して数式が予め入力されているとする。すなわち、図８（Ａ）に示すように、表示部４の画面上部の数式バーには、数式が表示されている。
【００６６】
その後、図８（Ｂ）に示すように、操作員がその数式に対して"＋４５６"を付け加えたとすると、その直後の状態は、図８（Ｂ）に示すように、本来定義されるべき数式と異なっている数式が入力されているため、変更後の数式が計算され、「入金」列のセルには４５６円多い金額が表示される。
【００６７】
暫くすると、例えば１秒ほど待つと、マクロの働きにより、図８（Ｃ）に示すように正しい数式に修復される。
【００６８】
図９は、操作員が行を挿入する場面において、マクロによる数式の自動修復の状況に関し、会計システム１の出力部４の表示状況を示す図である。
【００６９】
操作員が「売上・仕入」のシートにおいて行を挿入しようとすると、図９（Ａ）に示すように、セルの挿入を行全体において行ってよいかについての「ＯＫ」、「キャンセル」の選択状態となる。
【００７０】
「ＯＫ」を選択すると、図９（Ｂ）に示すように、行を挿入したため、数式が入力されていないセルが生じている。
【００７１】
暫くすると、例えば１秒ほど待つと、マクロの働きにより、図９（Ｃ）に示すように、正しい数式が付与される。
【００７２】
図１０は、操作員が定数を入力する場面において、マクロによる数式の自動修復がなされない状況に関し、会計システム１の出力部４の表示状況を示す図である。
【００７３】
「売上・仕入」のシートにおいて、「決済情報、お金の動き」の「預金」の入金に対して数式が予め入力されているとする。すなわち、図１０（Ａ）に示すように、表示部４の画面上部の数式バーには、数式が表示されている。
【００７４】
その後、図１０（Ｂ）に示すように、操作員が、数式を削除した後に定数として "２３４０００"を入力する。すると、マクロは働かず、図１０（Ｃ）に示すように、定数"２３４０００"の入力が、受け入れられる。
【００７５】
以上説明したように、本実施形態の会計プログラムは、複数の会計処理シートを予め設定している表計算ソフトウェアが搭載されたコンピュータに搭載される会計プログラムであり、前記複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部を、前記コンピュータに付与する、会計プログラムである。
【００７６】
上記会計プログラムにおいて、複数の前記会計処理シートが、売上・仕入シート、日別残高シート、損益計算シート、及び、経費のシートの組である。
【００７７】
上記会計プログラムにおいて、前記自動化処理部は、自動付与及び自動修復を、複数の前記会計処理シートの間を遷移するとき、前記会計プログラムの起動、終了の何れかのとき、複数の前記会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、の少なくとも一つ以上のときに行う。
【００７８】
また、本実施形態の会計システムは、表計算ソフトウェアを格納したコンピュータと、本発明の会計プログラムと、を備える。
【００７９】
また、本実施形態の会計端末装置は、複数の会計処理シートを予め設定している表計算ソフトウェアによる会計処理部と、複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う自動化処理部と、入力部と、出力部と、を備える。
【００８０】
また、本実施形態の会計方法は、表計算ソフトウェアに対して複数の会計処理シートを予め設定しておき、複数の会計処理シートに対し、日々の取引を入力する会計方法であって、複数の会計処理シートの間を遷移するとき、表計算ソフトウェアの起動、終了の何れかのとき、複数の会計処理シートの何れかのシート内のセルであって予定される数式以外を入力するとき、複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける数式に関し、自動付与、自動修復の何れか一方又は双方を行う。
【００８１】
上記の実施形態に係る発明によれば、複数の会計処理シートを予め設定している表計算ソフトウェアに対して、複数の会計処理シートの一シート内のセル間及び複数のシート内のセル間を関係付ける演算式に関し、自動付与、自動修復の何れか一方又は双方を行う。そのため、複数の会計処理シートを個人事業主又は小規模会社の規模に応じて設定することができ、しかも表計算ソフトウェアについて最低限の知識を有する者であれば使用することができる。よって、小規模会社や個人事業主の規模、体裁に応じて作成することができる会計プログラム及び会計システムを提供することができる。
【００８２】
＜第２実施形態＞
次に、図１１から図２６を参照して、本発明の第２実施形態として、情報処理システム（情報処理装置）１０について説明する。
【００８３】
＜全体構成＞
図１１は、本実施形態に係る情報処理システム１０の構成の一例を示す概要図であり、同図（Ａ）は、情報処理システム１０のハードウェア構成を示す概要図であり、同図（Ｂ）、同図（Ｃ）は情報処理システム１０の機能の一例を示すブロック図である。
【００８４】
同図（Ａ）に示すように、第２実施形態の情報処理システム１０は、表計算ソフトウェアを実行することが可能な情報処理端末１９を含んで構成される。ここでは一例として、単独の情報処理端末１９によって情報処理システム１０が構成され、すなわち情報処理システム１０が情報処理装置でもある場合について説明する。
【００８５】
情報処理端末１９は例えば、入力手段１１と、出力手段１２と、制御手段１３と、記憶手段１４などを備えた既知のパーソナルコンピュータである。入力手段１１は、例えばキーボードやタッチパネルであり、その他マウス、マイク、マウスと協働してポインティングデバイス機能を実現するモニタなどが含まれてもよい。出力手段１２は、例えばディスプレイであり、その他スピーカやプリンタなどが含まれてもよい。
【００８６】
制御手段１３は、情報処理端末１９（情報処理システム１０）を統括的に制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。記憶手段１４は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、及び光ディスク等などであり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどが格納される。制御手段１３は、記憶手段１４に格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
【００８７】
また、記憶手段１４には、例えば、表計算ソフトウェア１６のアプリケーションプログラムおよび、当該表計算ソフトウェアを利用して構築した、本実施形態の情報処理システム１０を実現するためのプログラム（情報処理プログラム２０）が格納されている。
【００８８】
なお、情報処理システム１０は、通信インターフェイスを備えた情報処理端末１９と、不図示のサーバ、および情報処理端末１９とサーバを相互に通信可能に接続するネットワークを含んで構成されてもよい。この場合、サーバは例えば会計データを含む種々のデータや表計算ソフトウェアを含む種々のアプリケーションプログラムが格納され、情報処理端末１９は、ネットワークを介してこれらのデータやアプリケーションプログラムを取得し、記憶手段１４に格納して各種処理を実行可能に構成されていてもよい。
【００８９】
また、情報処理端末１９は、パーソナルコンピュータに限らず、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、スマートフォン、タブレット型端末などの携帯型情報処理装置であってもよい。
【００９０】
同図（Ｂ）を参照して、本実施形態の情報処理システム（情報処理装置）１０は、上記のハードウェアと、ＯＳや表計算ソフトウェア１６のプログラム、本実施形態の情報処理プログラム２０を含むソフトウェアとが協働し、所定の定型処理を実行するための基本処理機能と状態更新機能を含む情報処理機能を実現するものである。
【００９１】
すなわち、情報処理システム（情報処理装置）１０は、その機能として、表計算ソフトウェア１６を用いて所定の定型処理を実行可能に構成され、入力手段１１と、出力手段１２と、基本処理機能を実現する基本処理手段１５と、状態更新機能を実現する状態更新処理手段１７とを備える。
【００９２】
ここで、以下の例では、所定の定型処理が会計処理であり、情報処理システム１０が会計処理システムである場合について説明する。
【００９３】
また、第２実施形態の情報処理システム１０には、第１実施形態の会計システム１が含まれてもよいし、含まれなくても良い。第２実施形態の情報処理システム１０に第１実施形態の会計システム１が含まれる場合、第２実施形態の基本処理手段１５には、例えば第１実施形態の会計処理部３ａが含まれ、第２実施形態の状態更新処理手段１７には、例えば第１実施形態の自動化処理部３ｂが含まれていてもよい。
【００９４】
本実施形態の情報処理システム１０を構成する情報処理プログラム２０（会計処理システム１０を構成する会計処理プログラム２０）は、表計算ソフトウェア１６を用いて会計処理システム１０の提供者によって設計されたプログラムである。表計算ソフトウェア１６はスプレッドシートとも呼ばれ、行方向及び列方向に配列した複数のセルにある情報を定義することによって、様々な演算を含む処理を実行可能とするものである。
【００９５】
大量のデータを扱うシステムとしては、一般的に関係データベース（ＲＤＢ：relational  database）が利用される場合も多い。しかしながら、ＲＤＢを用いたシステムでは小規模なユーザの場合に、機能が複雑すぎたり、カスタマイズが困難であるなど、扱いにくい問題がある。これに対し、表計算ソフトウェア１６は、そもそもユーザが表形式で仕組みを作りながら（必要な演算等をセルに書き込みながら）運用するように構成されている。このため、従来の手書き帳簿のようにユーザにとってなじみのある環境を再現しつつ運用することも可能となる。本実施形態では、表計算ソフトウェアの一例としてマイクロソフト社のエクセル（登録商標）を用いる場合について説明する。
【００９６】
表計算ソフトウェア１６は、上記のとおり既知のものであり、当該表計算ソフトウェア１６のメーカが提供する様々な機能を含んでいる。以下、これらの表計算ソフトウェア１６に本来備わる各種機能を「基本機能」と総称する。基本機能には、様々な演算を行うための演算子、関数、マクロの記録手段、行・列の追加／削除、シートの追加／削除などが含まれる。また、ＧＵＩ（Graphical  User  Interface）による対話形式の操作で行・列の追加や削除が可能に構成されており、あるセルに行または列を跨ぐ演算式（数式、文字列式を言う。以下同じ）が設定されていた場合において、ＧＵＩによる対話形式の操作で行・列の追加や削除があると、当該演算式が自動的に補正される機能（以下これを「自動修正機能」という。）も有している。この自動補正機能も基本機能に含まれる。
【００９７】
同図（Ｂ）に示すように、会計処理プログラム２０は、会計基本処理プログラム２１と、状態更新処理プログラム２３とを有する。会計基本処理プログラム２１は、表計算ソフトウェア１６の基本機能を用いて、所定の定型処理（会計処理）が実行可能となるように、すなわち、会計処理の本来的機能を実現するために、各セルに対する関数等の定義やマクロなどを用いて設計されたプログラムであり、当該プログラムの実行により通常の損益計算や残高計算、仕訳などの会計処理が行える。
【００９８】
また、状態更新処理プログラム２３は、会計処理システム１０の起動時、あるいは会計基本処理プログラム２１の何らかの処理が実行された時、あるいは、エンドユーザによって、操作可能対象（セル、行、シート）の操作があり、具体的にはセルの操作（入力、削除等）、行・列の操作（挿入、削除、移動）、シートの操作（追加、削除、差換え）などがあり、会計基本処理プログラム２１の本来の構成（設計者が意図した構成）が変更された場合などに、会計基本処理プログラム２１の本来の構成が実行可能となるように、あるいは本来の構成に戻すように、操作可能対象の状態を更新する（自動で修復する）プログラムである。この状態更新処理プログラム２３は、表計算ソフトウェア１６の基本機能（関数、演算子、マクロなど）を用いて設計され、後に詳述するが、表計算ソフトウェア１６の基本機能では不足する機能や、基本機能の一部（例えば、自動修正機能）を無効にする機能なども含まれる。
【００９９】
同図（Ｃ）〜同図（Ｅ）を参照して、基本処理手段１５は、会計基本処理プログラム２１を含んで構成され、定型処理（ここでは、会計処理（会計処理において目的の結果を得るための計算処理）、以下同様）を実行するために、会計基本処理プログラム２１として表計算ソフトウェア１６の少なくとも１つのセルに関連して定義された定義情報Ｓを実行可能である。
【０１００】
本実施形態における定義情報Ｓとは、会計基本処理プログラム２１の一部を構成する情報であり、表計算ソフトウェア１６の基本機能を利用して、セルに予め定義（設定）された、関数、演算式（数式、文字列式）、文字列、数値など、セルに入力可能な全ての値である。また、定義情報Ｓは、表計算ソフトウェア１６のシート上においてユーザの操作（数値の入力等）の対象として予定する領域（以下、「操作予定領域２２」という。）のセルに対して定義される情報（値）をいう。この場合、操作予定領域２２に直接定義（記載）される情報と、マクロの実行によって対象となるセルに（マクロで指定されたセルに）定義（記載）される情報とを含む。
【０１０１】
また、基本処理手段１５は、表計算ソフトウェア１６の基本機能（自動修正機能、会計基本処理プログラム２１に含まれるマクロの実行なども含む）を実行する手段である。
【０１０２】
基本処理手段１５は、ユーザが操作予定領域２２のセルに入力した数値等に基づき、会計基本処理プログラム２１を実行し、定義情報Ｓやマクロを用いて所望の会計処理を実行する。
【０１０３】
状態更新処理手段１７は、状態更新処理プログラム２３を含んで構成され、再定義情報Ｒを用いて操作可能対象についての状態を更新可能な手段である。状態更新処理手段１７が状態を更新するタイミングは、会計処理システム１０の起動時、会計基本処理プログラム２１によって何らかの処理が実行された時、あるいは、定義情報Ｓが関連するセル、行、列、シートの少なくともいずれかの操作可能対象について、ユーザ（会計処理システム１０のエンドユーザ、以下同様）の操作がされた時である。
【０１０４】
具体的には、状態更新処理手段１７は、状態更新処理プログラム２３の実行により、再定義情報Ｒおよびこれを用いるマクロを実行可能であり、これにより操作可能対象についての状態を更新する。なお、以下の説明において、会計基本処理プログラム２１を構成するマクロを「会計基本マクロ」といい、状態更新処理プログラム２３を構成するマクロを「再定義マクロ」という。
【０１０５】
ここで、本実施形態における「マクロ」とは、アプリケーションの内側で実行することができる命令のセットをいい、この例では、表計算ソフトウェア１６において一連の処理手続きを自動化する命令のセットをいう。より詳細に本実施形態の「マクロ」は、キー操作をそのまま記録・再現するキーボードマクロによって複数の手順を記憶して自動的に実行させるマクロ、マクロ言語（マクロを記述するコンピュータ言語）を用いたプログラミングによって記述された処理手順を呼び出して実行するマクロ、VisualBasicなどのプログラミング言語で表計算ソフトウェア１６に既存の機能を制御するもの、表計算ソフトウェア１６の既存の機能（演算式などの基本機能）を組み合わせて一つの纏まりのある機能を構成するもの（言語による制御は必須でない）の全部又は一部をいう。
【０１０６】
例えば、会計基本マクロは、表計算ソフトウェア１６の基本機能を組み合わせて一つの纏まりのある機能を自動で実行させる命令のセットであってもよいし、再定義マクロは、表計算ソフトウェア１６の基本機能を組み合わせて一つの纏まりのある機能を自動で実行させるほか、マクロ言語やプログラミング言語を用いて所定の機能を自動で実行させる命令のセットであってもよい。
【０１０７】
状態更新処理手段１７は、会計処理システム１０の起動時や会計基本処理プログラム２１実行時のあるタイミング、あるいは定義情報Ｓが関連する行または列の操作（追加、挿入、削除、複写）がされた場合、および、定義情報Ｓが定義されているセルに任意の値が上書きまたは該セルの内容が削除された場合に、再定義情報Ｒと再定義マクロを用いて、少なくとも一つのセルに定義情報Ｓを再定義する。
【０１０８】
再定義情報Ｒは、状態更新処理プログラム２３の一部として、定義情報Ｓと同様に表計算ソフトウェア１６の少なくとも１つのセルに予め定義（設定）された、関数、演算式（数式、文字列式）、文字列、数値など、セルに入力可能な全ての値である。ただし、定義情報Ｓが操作予定領域２２のセルに対して定義されるのに対し、再定義情報Ｒは、シート上ではあるが、操作予定領域２２以外の再定義情報設定領域２５に設定される。この再定義情報設定領域２５は、通常、ユーザには視認不可とされており、ユーザの操作対象とはならない（ユーザによる操作を予定しない）領域となっている。
【０１０９】
再定義情報Ｒは、定義情報Ｓが定義されていたセルが、ユーザの操作によって定義情報Ｓ以外の値に変更（削除、上書き等）された場合に、当初定義されていた定義情報Ｓを再定義するための情報である。より詳細には、同図（Ｃ）、同図（Ｄ）に示すように、定義情報生成欄２７に含まれるある定義情報Ｓがユーザの操作によって変更された場合に、同図（Ｅ）に示すように定義情報生成欄２７に再定義情報Ｒを複写することによって、当初定義されていた定義情報Ｓを復元するための情報である。再定義情報Ｒの内容（値）は、定義情報生成欄２７の定義情報Ｓの内容（値）と同一の場合もあるし、再定義情報Ｒの値を定義情報生成欄２７のセルに複写した結果、表計算ソフトウェア１６の自動修正機能により定義情報Ｓの内容と同一になる値の場合もある。
【０１１０】
また、基本処理手段１５は、会計基本処理プログラム２１の実行により例えば複数のシートに亘る処理（例えば、一のシート中のセルに定義されている定義情報Ｓから他のシート中のセルに定義されている定義情報Ｓを参照したり、複数のシートにおいて同じ領域（アドレス）に存在するセルの定義情報Ｓを串刺しで演算するなどの処理）を実行する場合がある。状態更新処理手段１７は、シートの追加または差換えの操作があった場合において、基本処理手段１５によって複数のシートに亘る処理を実行する際に、追加又は差換えのあったシートを参照の対象とするように、操作可能対象の状態を更新する。
【０１１１】
本実施形態の会計処理システム１０は、表計算ソフトウェア１６を利用することで、従来の手書き帳簿のようにユーザにとってなじみのある環境を再現しつつ、更にはユーザの軽微なカスタマイズを許容しつつ利便性の高い運用を可能としている。
【０１１２】
つまり、ユーザの操作の利便性や汎用性を高めるため、ユーザの入力制限や操作の制限は可能な限り少なくしている。このため、基本機能は可能な限り活用し、ユーザによる軽微なカスタマイズ（行の挿入・削除やシートの追加・削除・複製など）を認め、また操作予定領域２２も可能な限り広く（非表示領域をなるべく少なく）する（シートやセルの操作を許容する）とともに、操作予定領域２２においては任意の入力を許容するに構成されている。
【０１１３】
しかしながら、表計算ソフトウェア１６の場合、ユーザによる情報（値など）の入力、定義情報Ｓの定義（設定）および例えば出力形式（帳票などの形式）を全てシート内のセルで共用する。このため、入力画面のみとして、あるいは出力帳票のみとしての単独でのカスタマイズが非常に困難となる。具体的には、入力画面の或るセルに対して、会計基本処理プログラム２１として定義情報Ｓが定義されている場合に、所望の入力画面にするためにユーザが不用意に当該セルについて削除や上書きを行うと、定義情報Ｓが削除され、所望の計算結果が得られないこととなる。このように、ユーザによるカスタマイズがあると、会計処理システム１０としての安定性が保証できない。
【０１１４】
また、表計算ソフトウェア１６は一般的に、自動修正機能を有しているが、当該自動修正機能が有効となるのは或る操作の範囲に限られ、当該範囲を超えたカスタマイズ（行の修正、削除等）があると、あるいは、ユーザが想定していない範囲で機械的に自動修正機能によって修正がなされてしまうと、計算結果の整合性が保たれなくなる問題もある。
【０１１５】
そこで、本実施形態では、必要に応じて、操作予定領域２２外にある再定義情報Ｒ及び再定義マクロを用いて、変更された定義情報Ｓの更新（再定義）を行うこととした。
【０１１６】
これにより例えば、ユーザが、定義情報Ｓが定義（設定）されているセルに関連する行、列、セル、シートの少なくともいずれかの操作可能対象について操作（追加、削除等）することによって、会計処理システム１０に本来想定されている処理が行えない（想定される適切な結果が得られない）状態となった場合であっても、状態更新処理手段１７が再定義情報Ｒ及び再定義マクロを用いて少なくとも一つのセルに定義情報Ｓを再定義することによって、操作可能対象を、本来想定されている処理が行える（想定される適切な結果が得られる）状態に戻すことができる。
【０１１７】
以下、会計処理システム１０の具体例を示しながら更に説明する。なお、会計基本処理プログラム２１が実行する会計処理（その計算）の処理内容や構成については、既知の会計処理と同様であるので、以下では主に本実施形態の状態更新処理手段１７について、具体例を挙げて説明する。
【０１１８】
＜会計処理システムのシート＞
図１２は、本実施形態の会計処理システム１０（会計処理プログラム２０）で使用する各種シートの一例を示す図である。会計処理システム１０では、例えば、経費シート、売上・仕入シート、普通仕訳シート、追加シートと、帳票形式のシートを有している。これらのシートやプログラムは、単一のファイル（ワークブック）内に構成されるとは限らない。これらの全部又は一部を、単一の情報処理端末１９内はもちろん、ネットワーク上のコンピュータやストレージ内に格納する構成であってもよい。
【０１１９】
経費シート、売上・仕入シート、普通仕訳シートは例えば、少なくとも行挿入が可能（行方向にデータ件数を追加可能）であり縦スクロールバーによって出力手段（ディスプレイ）１２上の表示範囲を遷移させることができるリスト形式のシートである。帳票形式のシートは、行挿入が不可能（行方向にデータ件数を追加不可能）で、縦スクロールバーを有さない形式のシートである。帳票形式のシートは、１つの追加シートに対して複数準備され（随時追加も可能）、複数の帳票形式のシートの所定の領域が、串刺し演算によって纏め上げられて追加シートに集約される。
【０１２０】
このそれぞれのシートについて、所定の会計処理が実行可能となるように、会計基本処理プログラム２１が設定されている。具体的には、各シートのセルに適宜、所定の定義情報Ｓが定義され、また、会計基本マクロが定義（設定）されている。
【０１２１】
さらに、一部または全部のシートにおいて、状態更新処理プログラム２３が設定されている。すなわち、再定義情報設定領域２５に再定義情報Ｒが定義され、再定義マクロが定義（設定）されている。
【０１２２】
本実施形態では、これらのシートを用いて、従来の手書き帳簿のようにユーザ毎に帳簿組織のカスタマイズ（ユーザ毎の機能追加や変更）を行うことができる。なお、会計処理システム１０のシートは、図１２に示す例に限らない。
【０１２３】
＜状態更新処理手段＞
図１３は、状態更新処理手段１７の概要を示す図である。同図（Ａ）に示すように、状態更新処理手段１７は、例えば、会計処理システム１０の起動時や会計基本処理プログラム２１の実行時など任意のタイミングでセルの定義情報Ｓを更新する第１状態更新処理を行う第１状態更新処理手段１７１と、あるセルに定義されている定義情報Ｓが変更された場合にこれを修復する第２状態更新処理を行う第２状態更新処理手段１７２と、定義情報Ｓが定義されているセルに対する変更の状態（変更された値）に応じて第３状態更新処理を行う第３状態更新処理手段１７３と、複数のシートに亘る処理においてシートの操作がされた場合の第４状態更新処理を行う第４状態更新処理手段１７４を有する。
【０１２４】
＜状態更新処理手段／第１状態更新処理手段（第１状態更新処理）＞
同図（Ｂ）、同図（Ｃ）を参照して、第１状態更新処理手段１７１について説明する。
【０１２５】
第１状態更新処理手段１７１は、基本機能としての自動修正機能はそのままに、行・列等の操作がされた後であっても、セルの内容が変更された場合に任意のタイミングでセルの定義情報Ｓを更新することにより、会計基本マクロが実行する会計処理の整合性を維持する手段であり、例えば、会計基本マクロ内で状態更新処理を実行する。これにより、会計処理システム１０の起動時や、会計基本処理プログラム２１の処理中、ユーザの操作があった場合など任意のタイミングにおいて、会計基本マクロが参照するセルに所定の定義情報Ｓ（例えば、デフォルトの演算式など）を再定義（再設定）するように構成されている。
【０１２６】
これにより、ユーザが行・列の操作を行った場合において会計基本マクロが参照するあるセルの定義情報Ｓが変更された場合であっても、ユーザによる操作がない場合と同様に、整合性のとれた定義情報Ｓが参照されるように構成されている。
【０１２７】
［列毎の状態更新処理］
まず、同図（Ｂ）、同図（Ｃ）を参照して列毎の状態更新処理を説明する。これらは列毎にセルの定義情報Ｓを更新することにより、会計基本マクロの処理の整合性を維持する方法を説明する例であり、ユーザが列を操作したことによって自動修正機能が働き、セルの内容が列方向にずれる場合の一例を示している。
【０１２８】
同図（Ｂ）上段に示すように、会計基本マクロの処理の一部として、例えば「タイトル３」列の２０１７／１０／２行（「Ｄ４」アドレスのセル）に対して例えば「タイトル１」列の２０１７／１０／２行の値と、「タイトル２」列の２０１７／１０／２行の値の和を求める（アドレスＢ４の情報とアドレスＣ４の和を求める」という目的で、「＝Ｂ４＋Ｃ４」という定義情報Ｓ（演算式）が文字列で定義（設定）されているとする。
【０１２９】
この場合、ユーザがＣ列に列の挿入を行うと、同図（Ｂ）下段に示すようにＣ列以降の列が右に一列移動する。このとき、表計算ソフトウェア１６の自動修正機能によって、Ｃ列以降の列のセルの内容（定義情報Ｓ）も修正され、例えば、「Ｅ４」のアドレスのセルの内容が「＝Ｂ４＋Ｄ４」に変更される（以下、セルのアドレスについては行・列の記載のみとし「アドレス」との記載を省略する）。つまり、列の挿入があっても、自動修正機能によって、「Ｅ４」セルの内容は、「タイトル１」列の２０１７／１０／２行の値と、「タイトル２」列の２０１７／１０／２行の値とが合算されるように修正され、列挿入前の値が維持される。
【０１３０】
ここで、同図（Ｂ）上段において各セルの保護がされておらず、ユーザによる任意の入力が可能となっている場合、「Ｄ４」セルの内容がユーザによって意図せず他の値に上書きまたは削除されることがある。そのような場合に「Ｄ４」セルを自動で元の状態に戻す手段として、同図に示すように「「Ｄ４」セルに「＝Ｂ４＋Ｃ４」を書き込む」という命令を少なくとも含む修復マクロ（再定義マクロ）を準備することが考えられる。
【０１３１】
しかしながら、この修復マクロでは同図（Ｂ）下段に示すように列挿入がされた後においては、本来修復すべき「Ｅ４」セルではなく「Ｄ４」セルの書き込みを行ってしまう。つまり、修復対象のセルに直接再定義を行うような修復マクロでは、行や列の操作がされた後の修復には対応することができない（列挿入があった場合には、修復マクロの定義を挿入後の状態で書き換える必要がある）。
【０１３２】
そこで、本実施形態では、第１状態更新処理手段１７１によって、ユーザによる行・列等の操作がされた後にセルの修復をする場合であっても、本来修復すべきセルの状態を更新し、予定通りの結果（所定の結果）が得られるように修復することとした。
【０１３３】
具体的には、同図（Ｃ），同図（Ｄ）に示すように、第１状態更新処理手段１７１は、列方向の定義情報生成欄２７に含まれるセルを再定義する再定義情報Ｒと再定義マクロを有している。この再定義情報Ｒは、操作予定領域２２以外の再定義情報設定領域２５に設定される。再定義情報設定領域２５は、ここではタイトルが定義される行（この例では２行目）より上の行（この例では１行目）に設けられる。タイトルが定義される行よりも上の行（外側の領域）に再定義情報設定領域２５を設けることで、ユーザが不用意に再定義情報Ｒを操作（変更）することを防止できる。なお、タイトルが設定される行および再定義情報設定領域２５が設けられる行はこの例に限らず、例えば、タイトルを５行目に設定し、再定義情報設定領域２５を２行目に設定してもよい。
【０１３４】
再定義情報Ｒの値は、定義情報生成欄２７のセル（すなわち修復対象となるセル）に複写（コピー）された結果、当初定義されていた定義情報Ｓの値と同一になるような値である。また、再定義マクロは、「修復対象のセルが存在する列の再定義情報設定領域２５に設定されている再定義情報Ｒを、同じ列の定義情報生成欄２７のセル（すなわち修復対象のセル）に複写する」という命令を少なくとも含み、これを実行するマクロである。
【０１３５】
例えば、同図（Ｃ）に示す「Ｄ４」セルの内容（値）が同図（Ｂ）上段と同様に「＝Ｂ４＋Ｃ４」と定義されている場合、Ｄ列の再定義情報Ｒは「＝Ｂ１＋Ｃ１」とする。そして、ユーザの操作によって「Ｄ４」セルの内容が削除され、その後に「Ｄ４」セルを元の状態に戻したい場合は、再定義マクロによって再定義情報Ｒと同列の定義情報生成欄２７のセル（この例では「Ｄ４」セル）に複写する。そうすると表計算ソフトウェア１６の自動修正機能が働いて、「Ｄ４」セルの内容（値）が「＝Ｂ４＋Ｃ４」に定義（再定義）される。
【０１３６】
また、同図（Ｃ）の状態からユーザがＣ列に列の挿入を行うと、同図（Ｄ）に示すように、Ｃ列以降の列が右に一列移動する。このとき、表計算ソフトウェア１６の自動修正機能によって、再定義情報Ｒおよび定義情報生成欄２７もＥ列に移動し、再定義情報Ｒの内容（値）も「＝Ｂ１＋Ｄ１」に修正される。
【０１３７】
その後に、ユーザの操作によって「Ｅ４」セルの内容が削除され、その後に「Ｅ４」セルを元の状態に戻したい場合は、再定義マクロによって「Ｅ１」セルの再定義情報Ｒを、同列の定義情報生成欄２７のセル（この例では「Ｅ４」セル）に複写する。そうすると表計算ソフトウェア１６の自動修正機能が働いて、「Ｅ４」セルの内容（値）が「＝Ｂ４＋Ｄ４」に定義（再定義）される。エクセル（登録商標）でのセルの表記は、Ｒ１Ｃ１形式、Ａ１形式の二種類がある。ここでは、セルの表記を「Ａ１形式」で表記している。Ｒ１Ｃ１形式でも同じことは表記できるが、省略する。
【０１３８】
このように、第１状態更新手段１７１は、ユーザによる列方向の操作がされた後に会計基本処理プログラムによって定義された定義情報Ｓがユーザによって変更された場合であっても、当該変更されたセルに対して、会計基本処理プログラム２１が想定する予定通りの結果が得られるように）当該変更があったセルに定義情報Ｓを再定義することができる。
【０１３９】
このように、本実施形態の状態更新処理手段１７は、表計算ソフトウェア１６の自動修正機能も活用しつつ、会計基本マクロ内でセルを参照する場合の、計算結果の整合性を保つように構成されている。
【０１４０】
また、この例では列方向の再定義情報設定領域２５を２行目（同図（Ｃ）では「Ｄ２」セル）に設定しているが、再定義情報設定領域２５は操作予定領域２２の外側領域であって、ユーザが不用意に操作しない領域に設定すればよく、２行目に限らない。また、再定義情報設定領域２５は、定義情報生成欄２７と異なる列に設ける構成でもよい。
【０１４１】
また、会計基本マクロと状態更新処理マクロとは完全に別体に構成されているものに限らず、会計基本マクロにおいてセルを参照する際に、再定義情報Ｒや再定義マクロを含めて（再定義した状態で）対象となるセルを参照する場合もある。つまり会計基本マクロ内に再定義マクロの少なくとも一部が記述される場合もある。なお、再定義情報Ｒおよび再定義情報設定領域２５は、列方向に複数設けられても良い。
【０１４２】
このように、列方向の再定義情報Ｒは、再定義情報設定領域２５が設けられたそれぞれの列の所定の定義情報生成欄２７（行方向に１又は複数並ぶ）に適用される定義情報Ｓを再定義（初期設定の場合もある）するための情報（例えば、演算式など）である。
【０１４３】
以上、列の挿入の場合について説明したが、列の削除がされた場合も同様である。また、再定義情報Ｒとしてセルのアドレスを含む演算式を定義する場合、セルの参照は処理内容に応じて、相対参照であっても絶対参照であってもよい。さらに、再定義情報Ｒは、関数や固定値、文字列等であってもよい。
【０１４４】
［行毎の状態更新処理］
図示は省略するが、第１状態更新手段１７１は、行毎にセルの定義情報Ｓを更新することにより、会計基本マクロの処理の整合性を維持することもできる。
【０１４５】
この場合、操作予定領域２２の外側領域（例えば２列目など）に、行方向の再定義情報設定領域２５を設定し、行方向の再定義情報Ｒを定義する。行方向の再定義情報Ｒは、再定義情報設定領域２５が設けられたそれぞれの行の所定の定義情報生成欄２７（列方向に１又は複数並ぶ）に適用される定義情報Ｓを再定義（初期設定の場合もある）するための情報（例えば、演算式など）である。
【０１４６】
第１状態更新処理手段１７１は、行方向の再定義情報Ｒと再定義マクロによって、参照対象セルの状態を更新する。すなわち、例えば会計基本マクロによって、あるセルを参照する場合には、この参照の前に（会計基本マクロ内で）行方向の再定義情報Ｒを用いる再定義マクロを実行する。この場合の再定義マクロは、「修復対象のセルが存在する行の再定義情報設定領域２５に設定されている再定義情報Ｒを、同じ行の定義情報生成欄２７のセル（すなわち修復対象のセル）に複写する」という命令を少なくとも含み、これを実行するマクロである
【０１４７】
なお、あるセル（基準となるセル）において、行方向および／または列方向に隣接するセルを参照する場合には、基準となるセルと、当該基準となるセルからの移動位置（行、列）を指定する関数（エクセル（登録商標）の場合は、OFFSET関数））を用いて再定義情報Ｒを定義するとよい。OFFSET関数によれば、ユーザによる行・列の操作がされた場合であっても、その影響を受けずに隣接するセルを参照することができる。
【０１４８】
第１状態更新処理手段１７１は、会計処理システム１０のいずれのシートにおいても状態の更新が可能である。すなわち、第１状態更新処理手段１７１による第１状態更新処理は、本実施形態における状態更新処理の基本的な概念であり、第２状態更新処理手段１７２〜第４状態更新処理手段１７４では、セルやシートの修復の状況に応じて、上述した第１状態更新処理を利用した処理を行う。また、本実施形態の会計処理システム１０では、以下に説明する第２状態更新処理手段１７２〜第４状態更新処理手段１７４における状態更新処理以外に限らず、セルの修復において第１状態更新処理手段１７１による（これを利用した）状態更新処理を行う場合もある。
【０１４９】
また、状態更新処理手段１７による状態更新処理を行うためのシート（セル）の各種設定も、状態更新処理手段１７の一部である（以下同様）。
【０１５０】
＜状態更新処理手段／第２状態更新処理手段（第２状態更新処理）＞
図１４から図１６を参照して、第２状態更新処理手段１７２について説明する。第２状態更新処理手段１７２は、あるセルに定義されている定義情報Ｓが変更された場合に、当該セルの変更内容によらずこれを修復する第２状態更新処理を行う手段である。第２状態更新処理の対象となるシートは、例えば、経費シート、売上・仕入シート、普通仕訳シート、追加シート（図１２参照）の少なくともいずれかである。なお、本実施形態で説明するシートは一例であり、これ以外のシートがあってもよい。
【０１５１】
第２状態更新処理手段１７２は、例えば、セルの値が変更された場合のイベント（例えば、エクセル（登録商標）ではChangeイベント）、又は他のシートへ移動する（それまでアクティブだったシートを非アクティブにする。）時に発生するイベント（例えば、エクセル（登録商標）ではDeActivateイベント）を契機として、定義情報Ｓが定義されているセルの一部又は全部を再定義する第２状態更新処理を行う。
【０１５２】
また、第２状態更新処理手段１７２は、操作予定領域２２内のある範囲の特定のセルについて、その状態を更新する。詳細には、予め状態更新の対象となる或るセルの範囲に所定の名前（エクセル（登録商標）では「セル範囲名」）を付しておき、セル範囲名が付された範囲のセルについてセル入力、情報の貼り付け、クリア、切り取りなどをした場合(このような場合に、Changeイベントが発生する。以下「Changeイベント発生時」と呼ぶ）、または他のシートへ移動する場合(このような場合に、DeActivateイベントが発生する。以下「DeActivateイベント発生時」と呼ぶ)に、当該セル範囲名のセルについて状態更新処理を行う。
【０１５３】
図１４、図１５を参照して具体的に説明する。両図はいずれも一例として経費シートを示している。この例では、予め、図１４（Ａ）に示すように、２行目の、４、５，６，７，１０列に「ｎソート列」というセル範囲名を付し、これらを再定義情報設定領域２５としてそれぞれに所定の再定義情報Ｒを定義する。また、セル範囲名を付した列以外の列（例えば８列目）の３３行〜４９９９行に「ｎ年月」というセル範囲名を付している。なお、この例では、セル範囲名「ｎ年月」のセル範囲はこの例に限らず、行挿入や行削除により変動する。
【０１５４】
そしてセル範囲名「ｎソート列」の列と「ｎ年月」の行で特定される同図（Ｂ）の破線で示す範囲（例えば、４、５，６，７、１０列の３３行〜４９９９行）が、第２状態更新処理の対象範囲となる。なお、同図の例ではシート中の２行〜３１行および、３列、４列、７列の範囲は会計処理システム１０の管理用エリアとして、ユーザにおける運用時には非表示となるエリアである。
【０１５５】
第２状態更新処理は、再定義マクロによって以下の手順で行う。
【０１５６】
［Changeイベント発生時］
まず、再定義マクロは、Changeイベントの発生の契機となった操作がされた１または複数のセルが含まれるセルを取得し、変更されたセルが第２状態更新処理の対象範囲に含まれるか否かを判断する。
【０１５７】
例えば、図１５（Ａ）を参照して、第２状態更新処理の対象範囲のうち、太線で示すセルの内容を削除（クリア）したとする。太線で示す領域の６列、７列、１０列は全て第２状態更新処理の対象範囲に含まれるため、この太線で示す領域の６列、７列、１０列のセルが、第２状態更新処理の対象となるセル（修正対象セル）となる。再定義マクロは、当該修正対象セルを取得し、状態の更新（セルの定義情報Ｓの再定義）を行う。第２状態更新処理では、修正対象セルが１つ以上あれば状態の更新を行い、修正対象セルがない場合には、この処理を終了する。
【０１５８】
再定義マクロは、修正対象セルを列ごとに分割し、一列ずつ、当該列の再定義情報設定領域２５（この例では６列の２行目、７列の２行目、および１０列の２行目）に設定されている再定義情報Ｒ（例えば、正常な関数や演算式など）を、当該列の修正対象セルに順次上書きし、修正対象セルの状態を更新（定義情報Ｓに書きかえ）する。再定義マクロは、一列の状態更新が終了したら次の列の状態更新を行う。
【０１５９】
第１状態更新処理において説明したように、操作予定領域２２の外側にあり、ユーザが操作する際に通常は非表示となっている再定義情報設定領域２５に定義されてる再定義情報Ｒを修正対象セルに上書きすることによって、修正対象セルの内容を会計基本マクロで想定されていた内容（定義情報Ｓ）に修復することができる。また、修正対象セルが関連する行操作（行挿入や行削除）があった場合でも、会計基本マクロ内でその修正対象セルを参照する場合の、計算結果の整合性を保つことができる（以下の状態更新処理においても同様である）。
【０１６０】
このような処理により、例えば同図（Ｂ）に示すように、修正対象セルの内容が削除（値のクリア）された場合であっても、同図（Ｃ）に示すように、再定義情報Ｒによって、正常な定義情報Ｓ（例えば、正常な関数や演算式など）が修正対象セルのそれぞれに再定義される。
【０１６１】
なお、同図（Ｃ）の状態では、６列および７列は定義情報Ｓが再定義され表示されているが、１０列は空白となっている。これは、再定義情報Ｒによって、正常な定義情報Ｓが再定義された結果によるものである。
【０１６２】
例えば、１０列の２行目に定義されている再定義情報Ｒは、以下の演算式である。
【０１６３】
「=IFERROR(TEXT(DATEVALUE(INT($H2/100)+1988 &"/"& MOD($H2,100)&"/"&$I2),"aaa"),"")」
【０１６４】
この演算式の意味は、「年月日と解釈できる値が与えられたときは、その年月日の曜日を表示し、そうでなければ、空白を表示する」というものである。つまり、同図（Ｃ）における１０列は、再定義情報Ｒによって、正常な定義情報Ｓが再定義されたが、年月日と解釈できる値が与えられなかったために、空白が表示されている。
【０１６５】
図１６は、行の挿入があった場合の第２状態更新処理の一例を示す概要図である。この場合、第２状態更新処理の対象範囲は、図示のようにセル範囲名「ｎソート列」のＣ列からＦ列と、セル範囲名「ｎ年月」の３３行〜４９９９行で特定される範囲とする。
【０１６６】
この状態で、ユーザの操作によって１０１行と１０２行の間に１行の挿入があった場合、Changeイベントが発生し、１０２行〜４９９９行が一行ずつ繰り下がり、同図右側に示すように１０３行〜５０００行となる。つまり修正対象セルは、新たな１０２行のＣ列からＦ列のセルとなる。
【０１６７】
第２状態更新処理では、ある列（挿入行の列）の中に一つでも修正対象セルがあれば、列全体の演算式を更新する。換言すると、Changeイベントを発生の契機となった操作がされた１または複数のセルの演算式を更新する。
【０１６８】
そして、Changeイベントの発生により、再定義マクロは、修正対象セルを列ごとに分割し、一列ずつ（Ｃ列、Ｄ列、Ｅ列、Ｆ列の順に）当該列の再定義情報設定領域２５（この例では２行目）に設定されている再定義情報Ｒ（例えば、正常な関数や演算式など）を、当該列の修正対象セルに順次上書きし、修正対象セルの状態を更新（定義情報Ｓに書きかえる）。再定義マクロは、一列の状態更新が終了したら次の列の状態更新を行う。
【０１６９】
［DeActivateイベント発生時］
DeActivateイベント発生時は、第２状態更新処理の対象範囲（例えば、図１５（Ａ）の破線の範囲）を列ごとに分割して、一列ずつセルの全数について、各セルの内容を判定する。この判定は、各セルの内容と当該列の再定義情報設定領域２５（この例では２行目）に設定されている再定義情報Ｒ（例えば、正常な関数や演算式など）とを比較することにより行う。各セルの内容と再定義情報Ｒの内容が一致している場合は、そのまま次の（下の）セルに移動して順次判定し、当該列の中で１つでもセルの内容と再定義情報Ｒの内容が不一致のセルが存在した場合は、当該列の再定義情報設定領域２５（この例では２行目）に設定されている再定義情報Ｒ（例えば、正常な関数や演算式など）を、当該列の第２状態更新処理の対象範囲のセルに順次上書きし、当該列の第２状態更新処理の対象範囲のセルの全てについて状態を更新する（定義情報Ｓに書きかえる）。再定義マクロは、一列の状態更新が終了したら次の列の状態更新を行う。
【０１７０】
なお、ここでは、第２状態更新処理の対象範囲のセルの全数について、その内容を判定する例を説明したが、以下の簡易判定を行っても良い。
【０１７１】
簡易判定ではまず、第２状態更新処理の対象範囲のセルの列毎の個数（Ｎ１）を把握する。この個数の把握は、例えばエクセル（登録商標）の場合には、「Range.cells.count」プロパティの参照で把握することができる。
【０１７２】
次に、数を把握したセルのうち、内容が演算式であるセルの個数（Ｎ２）を把握する。これは例えばエクセル（登録商標）の場合には、「Range.SpecialCells(xlCellTypeFormulas).cells.count」プロパティの参照で把握することができる。
【０１７３】
そして、列毎に上記（Ｎ１）と（Ｎ２）の値を比較し、一致していれば正常と判定し、次の列を処理する。一方上記（Ｎ１）と（Ｎ２）の値を比較し、不一致の場合は、異常と判定し、当該列の第２状態更新処理の対象範囲のセルの全てについて状態を更新（定義情報Ｓに書き換える）。
【０１７４】
第２状態更新処理手段１７２の更新処理は、特に、対象となるシート・列の数が多く、データ件数も多い一方で、列毎に同じ演算式が定義されているような場合（ユーザの入力を想定していないような場合）の状態更新（セル内容の修復）に有効である。
【０１７５】
また、対象となるセルの内容が変更された場合、通常は、Changeイベントのみを契機として、第２状態更新処理を実行すればよい。しかしながら、Changeイベントの発生に代えて、あるいは、Changeイベントの発生に加えて、DeActivateイベントの発生を契機とした第２状態更新処理を行うことにより、セルの状態更新（セルの内容の修復）をより確実に行うことができる。
【０１７６】
例えば、会計基本マクロでは、必要に応じて指定されたオブジェクトに対しするイベントの発生の有無を切り替える（フラグを切り替える）場合があり、仮にイベントの発生が無いとされている場合（エクセル（登録商標）では「Application.EnableEvents=False」の状態の場合）に、ユーザがセルを操作（書き換えなど）すると、Changeイベントの発生が判断されない。また、会計処理マクロによるイベントの発生の有無の切り変えが必ず成功しているとは限らない場合もある。
【０１７７】
このような場合に、DeActivateイベントの発生を契機として第２状態更新処理を行うことで、セルに対する状態更新（セルの内容の修復）を確実にすることができる。
【０１７８】
このように、第２状態更新処理手段１７２では、対話形式の操作によってユーザにより所定のセルに設定されている定義情報Ｓ（例えば関数や演算式など）が意図せず変更（意図しない文字列の上書き、貼付け、切り取り、削除など）がされた場合、再定義情報Ｒと再定義マクロによって、自動的に変更されたセルに定義されていた（所定の）定義情報Ｓを上書きするものである。
【０１７９】
なお、上記の例では、経費シートを例に説明したが、売上・仕入シート、普通仕訳シート、追加シートについても、それぞれ例えば、ｎソート列の範囲（例えば、売上・仕入シートでは２行目の第３列〜第６列など）や、ｎ年月の範囲（例えば、、売上・仕入シートでは第４行〜第２５２行など）などがそれぞれに応じて異なる以外は、同様の方法で状態更新処理を行うことができる。
【０１８０】
＜状態更新処理手段／第３状態更新処理手段（第３状態更新処理）＞
次に、図１７を参照して第３状態更新処理手段１７３について説明する。第３状態更新処理手段１７３は、定義情報Ｓが定義されているセルに変更があった場合に、変更後のセルの状態（値）に応じて第３状態更新処理を行う手段である。
【０１８１】
第３状態更新処理の対象となるシートは、主に、売上・仕入シート（図１２参照）であり、同図（Ａ）〜同図（Ｄ）は売上・仕入シートを示しているが他のシートであってもよい。
【０１８２】
第３状態更新処理手段１７３は、例えば、Changeイベントの発生や、DeActivateイベントの発生を契機として、定義情報Ｓが定義されているセルの一部又は全部を再定義する第３状態更新処理を行う。
【０１８３】
この場合も、予め状態更新の対象となる或るセル（例えば、定義情報Ｓとして演算式や関数が定義されているセル）の範囲に所定のセル範囲名を付しておき、セル範囲名が付された範囲のセルについてセル入力、情報の貼り付け、クリア、切り取りなどが行われ(Changeイベントが発生し)た場合、または対象シートから他のシートに移動する(DeActivateイベントが発生した)場合に、当該セル範囲名のセルについて状態更新処理を行う。
【０１８４】
つまり、まず第２状態更新処理の場合と同様に、列方向のセル範囲名が付された列と行方向のセル範囲名が付された行とで特定される第３状態更新処理の対象範囲を決定し、Changeイベントを発生の契機となった操作がされた１または複数のセルが含まれるセル範囲を取得して変更されたセルのうち、第３状態更新処理の対象範囲に含まれるセルを、修正対象セルとして特定する。第３状態更新処理では、修正対象セルが１つ以上あれば状態の更新を行い、修正対象セルがない場合には、この処理を終了する。
【０１８５】
再定義マクロは、修正対象セルを列ごとに分割し、一列ずつ、セルの内容を判断し、セルの内容に応じて当該列の再定義情報設定領域２５（例えば、２行目）に設定されている再定義情報Ｒ（例えば、正常な関数や演算式など）を、当該列の修正対象セルに順次上書きし、修正対象セルの状態を更新する（定義情報Ｓに書きかえる）。再定義マクロは、一列の状態更新が終了したら次の列の状態更新を行う。
【０１８６】
ここで、第３状態更新処理では、以下の判定基準（ケース１〜５）により操作がされたセルの内容を判断し、その内容が「異常」と判断された場合に、当該セルの内容を再定義情報Ｒで再定義する。
【０１８７】
[ケース１]操作がされたセルの内容が「空白」の場合（ユーザによってスペースキーが押された場合など）→判定は「異常」
【０１８８】
[ケース２]操作がされたセルの内容が無い場合（ユーザによって削除（Delete）キーが押される、あるいはセルが切り取られるもしくは行挿入が行われた場合など）→判定は「異常」
【０１８９】
[ケース３]操作がされたセルに空白以外の固定値（定数）が入力されている場合（ユーザによるキーボード操作による入力があった場合あるいは、値の貼り付けがあった場合など）→判定は「正常」
【０１９０】
[ケース４]操作がされたセルに演算式が入力されていて、その演算式が再定義情報設定領域２５に設定されている再定義情報Ｒと一致する場合→判定は「正常」
【０１９１】
[ケース５]操作がされたセルに演算式が入力されていて、その演算式が再定義情報設定領域２５に設定されている再定義情報Ｒと不一致の場合→判定は「異常」
【０１９２】
すなわち、第３状態更新処理では、定義情報Ｓが設定されているセルにユーザによって空白以外の定数が入力され、その入力によって予め定義された定義情報Ｓが失われた場合であっても、ユーザの入力した定数を許容する（正常なものとして扱い、再定義を行わない）。一方で、それ以外の入力については、予め定義された定義情報Ｓと一致する場合を除き、異常な値の入力と判定して定義情報Ｓの再定義を行う。
【０１９３】
また、DeActivateイベント発生時も、第２状態更新処理手段１７２の場合と同様に、第３状態更新処理の対象範囲を列ごとに分割して、一列ずつセルの全数について、各セルの内容と当該列の再定義情報設定領域２５に設定された再定義情報Ｒとを比較し、不一致のセルに再定義情報Ｒで再定義（正しい演算式等を上書き）する。
【０１９４】
なお、この場合、取得するセルの種類を指定し、指定された条件を満たしているすべてのセルのセル範囲を簡便に取得する方法（例えば、エクセル（登録商標）の場合は、Rangeオブジェクトを返す「Range.SpecialCells」等のプロパティ・メソッド・関数、マクロ等）を利用してもよい。このような方法を利用することで全数の判定ではなく、指定された条件を満たすセル（例えば、この場合定数が入力されているセル）のセル範囲が戻されるため、処理を高速にすることができる。
【０１９５】
図１７を参照して具体的に説明する。ここでは、例えば、１８列と２０列の１３２行目以降が修正対象セルであり、初期状態で定義情報Ｓに基づく値が設定されるほか、ユーザによる固定値の入力は受け付けるものとする。つまり、図示は省略しているが、１８列と２０列の再定義情報設定領域２５（例えば、２行目など）に所定の再定義情報Ｓが定義されている。
【０１９６】
同図（Ａ）に示す初期状態では、１４０行目において２０列（「入金」の項目）のセルの値は、定義情報Ｓによって「２３，７１７」となり、１８列目は空白となっている。
【０１９７】
この場合、同図（Ｂ）に示すように、１４０行目２０列のセルの値をユーザが、「２３，２１７」に修正し、１８列のセルの値を「５００」に修正すると、上述の判定基準「ケース３」によって、この値の入力を受け付ける（許容する）。
【０１９８】
一方、同図（Ｃ）に示すように、１４０行目２０列のセルの値をユーザが、例えば削除する（Deleteキーが押される）と、上述の判定基準「ケース２」によって、「異常」と判定され、再定義情報設定領域２５（ここでは不図示の２０列目の例えば２行目など）に設定されている再定義情報Ｓが再定義マクロによって１４０行目２０列のセルに複写され、同図（Ｄ）に示すように初期状態の値が再定義される（セルの内容を表示する表示欄ＣＮ参照）。
【０１９９】
このような処理により、例えば、同図（Ａ）に示す初期状態から、例えばユーザによって、同図（Ｂ）に示すように、第３状態更新処理の対象範囲に含まれるセル（例えば、１８列１４０行と２０列１４０行のセル）に数値（金額などを示す数値）が入力された場合には、当該値を正常なものとして処理し、同図（Ｃ）に示すように削除または空白等が入力された場合には、同図（Ｄ）に示すように所定の演算式や関数などに修正することができる。
【０２００】
特に会計処理システムにおいては、或る項目（セル）についてユーザによる数値（金額等）の入力を認めることで、シートの内容が分かり易く（明確）になる場合も多くある。このような場合入力された数値を正常として認めることで、ユーザが意図的に固定値を入力したい場合にはそれを維持し、あるいは演算式を維持したい（当初の演算式に戻したい）場合には、所定の演算式を再定義するなどの運用が可能となり、ユーザの利便性を格段に高めることができる。
【０２０１】
なお、第２状態更新処理と、第３状態更新処理は類似する処理であるが、以下の点において異なる。
【０２０２】
まず、第２状態更新処理は、再定義の対象となる全てのセルに再定義情報Ｒをコピーする。これに対し、第３状態更新処理では、ユーザによって固定値（定数）が入力された場合には、再定義情報Ｒのコピーは行わない。
【０２０３】
また、会計処理システム１０の場合、第２状態更新処理は、処理対象として好適なシートは経費シート、売上・仕入シート、普通仕訳シート、追加シートであり、それぞれに異なる第２状態更新処理の対象範囲（行方向のセル範囲名と列方向のセル範囲名で特定される対象範囲）が設定される。これに対し、第３状態更新処理の処理対象として好適なシートは主に売上・仕入シートである。そして、例えば同じ売上・仕入シートであっても、第２状態更新処理の対象範囲と第３状態更新処理の対象範囲は異なる範囲である。
【０２０４】
また、第２状態更新処理の対象範囲と第３状態更新処理の対象範囲のセルの数で比較すると、第２状態更新処理の対象範囲の方が大幅に多い。
【０２０５】
また、第２状態更新処理では、再定義をする場合（全数処理の場合）には、列単位で全数を再定義（上書き）するが、第３状態更新処理では、固定値の入力を許容するため、列単位でセルを個別に判定し、選択的に再定義（上書きする）を行う。
【０２０６】
なお、ユーザの入力がされない列（例えば、ソートキー列）にも、演算式は入っているが、そのような列はソートキー等としての管理目的に用いる。ユーザの入力には、金額のほか、勘定コード、勘定科目、得意先名、摘要などの文字情報や日付・時刻、その他のコード、フラグなどもあり、これらを編集・表示する演算式も、本実施形態の状態更新処理（セルの定義情報Ｓを修復する処理）の対象となる。
【０２０７】
＜状態更新処理手段／第４状態更新処理手段（第４状態更新処理）＞
次に、図１８〜図２６を参照して第４状態更新処理手段１７４について説明する。第４状態更新処理手段１７４は、複数のシートに亘る処理においてシートの操作がされた場合の第４状態更新処理を行う手段である。
【０２０８】
会計基本処理プログラム２１には、複数のシートに亘る処理が含まれる。複数のシートに亘る処理とは例えば、一のシート中のセルに定義されている定義情報Ｓから他のシート中のセルに定義されている定義情報Ｓを参照したり、複数のシートにおいて同じ領域（アドレス）に存在するセルの定義情報Ｓを串刺しで演算するなどの処理である。表計算ソフトウェア１６の基本機能では、このような複数のシートに亘る処理を行う際に、シートの追加や差換えがあると、当該シートを参照できない場合があり、会計処理システム１０としての信頼性に欠ける場合がある。第４状態更新処理手段１７４は、会計基本処理プログラム２１において複数シートに亘る処理を行う際にシートの追加または差換えの操作があった場合において、当該追加又は差換えのあったシート（特に参照の対象とすべきシート）をもれなく参照の対象とするように、第１状態更新処理手段１７１による第１状態更新処理も一部に利用しつつ、操作可能対象の状態を更新する。
【０２０９】
まず、追加・差換えのシートを参照するためには、シート名の指定によって指定されたシートを参照の対象となるように特定し、当該シートの名称を取得し、ワークシート上（参照する側のシート上）に定義された演算式（会計基本マクロや再定義マクロに既述された演算式）等から参照可能な形式で保存する必要がある。第４状態更新処理手段１７４では、これらの処理を連続して自動的に行うように構成されている。
【０２１０】
シート上のセルを、演算式から参照・特定するための記述方法には、シート名やアドレスを「文字列」として記述する方法とシート名やアドレスを「文字列式」として記述する方法がある。
【０２１１】
前者は、参照するシートのセルに参照されるセルのシート名やアドレスを記載するにあたり、演算式に直接記述する方法であり、シート名やアドレス参照は「文字列」として記述しなければならない。このため、参照される対象のシートを別のシートに変更したい場合、参照するシートにある演算式を手作業で書き直す必要がある。そのため、シートの追加や差し換えが必要な場合には、多大な労力を必要とする。また、マクロを用いて当該作業を自動化することも可能であるが、マクロが複雑となり実用性が低い。
【０２１２】
一方後者は、演算式内に参照すべきセルを間接的に指定するための関数を用いる。例えばエクセル（登録商標）の場合は、Indirect関数を記述し、関数の引数としてシート名とアドレスを記述する方法である。この場合のシート名やアドレスは、セル参照や関数を含む文字列式によることができる。一例を挙げると、「=Indirect(A1&"!C3")」のような演算式を定義し、「Ａ１」セルに参照されるシートのシート名を書き込めば、任意のシートの「Ｃ３」セルの値を参照できる。この場合、「A1&"!C3"」の部分が文字列式となっており、「Ａ１」セルに参照される側のシート名を書き込むマクロを設定すれば、当該マクロを含む一連の流れの中で動的に参照される側のシートを変更できる。
【０２１３】
参照される側のシートのシート名は、セルに文字として入力する方法の他、ＧＵＩを活用して画面上に表示された選択肢から選ぶような簡便な指定方法でもよい。例えば表計算ソフトウェア１６の選択肢を表示する機能としてドロップダウンリスト等のツールを用いてもよい。
【０２１４】
また、オウン・コードによりＧＵＩ画面を定義し、参照される側のシートを一括で差換えたり、戻したりの管理ができる機能を持たせてもよい。その場合、図示は省略するが、例えば、参照する側のシート（損益計算シート、日別残高シートのいずれか）で、ユーザが「Ａ１」セルをダブルクリックすると、ＧＵＩ画面が現れる。ＧＵＩ画面にはドロップダウンリストが２つ定義されており、それぞれ、経費、売上・仕入（これらが主に、差換え機能の対象となる）の二つのシートの参照すべき版（例えば、最新版）を選ぶ機能を担っている。ユーザがドロップダウンリスト（例えば「経費」）をクリックすると、ブックレベル範囲名「ｇ経費」を持つシートのシート名が先頭に、シートレベル範囲名「ｇ経費」を持つシートのシート名が、それに続いて一覧で表示される。ユーザが参照したい版のシート名を選ぶと、ＧＵＩ画面から起動されるマクロが損益計算シート、日別残高シートの両方のシートの参照先シート名欄３０に、選択したシートのシート名を複写する。
【０２１５】
この方法によれば、ユーザによってシート名が変更された場合や、新規にシートが追加された場合、あるいは他のファイル等から移植したシートを参照したい場合も、それらを一連の手順として可能となる。
【０２１６】
そこで、本実施形態ではシート名の指定によって指定されたシートを参照・特定する方法として、シート名を「文字列式」として記述し、参照されるシートを再定義マクロで動的に指定する方法を採用した。
【０２１７】
次に、シートを特定する方法について説明する。表計算ソフトウェア１６の基本機能として、シートを特定する方法は例えば、参照するシート名の指定による方法、参照するシートのシート・タブが左から数えて何番目に位置するかを指定する方法、CodeNameによって指定する方法、シート中に特定のオブジェクト（目印）を設けることによって指定する方法などがある。
【０２１８】
本実施形態では、マクロ内で動的にシート名を指定するために、シート中に特定のオブジェクト（目印）を設けることによって指定する方法を採用する。この方法によれば、シートの追加時および差し換え時に、特段の操作をしなくても、追加・差し換えされたシートを参照でき、また、ユーザがシート名を変更した場合であっても、同じシートを参照し続けることができる。
【０２１９】
そして、シート中に特定のオブジェクトを設ける方法としては、セル範囲名やコメントを用いる方法、特定のセル(例えば、「Ａ１」セルなど)に特定の文字を定義する方法、あるいは特定のセルの書式を特定の形（例えば、罫線の色指定）にする方法などが挙げられる。本実施形態では、ユーザの不用意な操作があっても影響が及びづらく、マクロの定義が比較的単純であるという理由から、オブジェクトとしてセル範囲名を採用することとした。
【０２２０】
すなわち、第４状態更新処理手段１７４では、参照される側のシートの特定とそのシート名の取得を、以下の方法により行う。
【０２２１】
参照される側のシートを特定するには、当該シートの１または複数のセルにセル範囲名を設定し、これを利用する。例えば、一のシートから他のシートを参照する際、参照される側のシートに差し換えがあった場合に参照される側のシートを特定するには、参照される側のシートに特定のセル範囲名を設定する。シートの新旧で差換える場合、一般的には当該シートを複写して名称を変更する。つまりこの場合、名称の異なる経費シートが複数存在することになる。このような新旧の経費シートから、目的となる一つを特定するために、本実施形態ではブックレベルでのセル範囲名を利用する。
【０２２２】
具体的には、例えば、経費シートを参照される側のシートとした場合、経費シート内の１または複数のセルに例えば、「ｇ経費」という名称のセル範囲名を設定する。そしてセル範囲名「ｇ経費」が設定されている経費シートが最新の経費シートであるとして参照の対象とする。シート差し換えは一のシートを特定するため、この場合にはブックレベルでのセル範囲名を利用する。
【０２２３】
また、例えば、串刺し演算（集計）の場合には、対象シート内の１または複数のセルに「ｎ経費」という名称のセル範囲名を設定し、当該セル範囲名を用いて串刺し演算（集計）の対象シートを特定する。串刺し演算は複数のシートを対象にするため、この場合にはシートレベルでのセル範囲名を利用する。この範囲名はシートに属するオブジェクトと見ることができ、シートの複写時にはシートと同時に複写される。その性質を利用し、ブックレベル範囲名と合わせて、シートを特定する目印に使用している。
【０２２４】
ここで、「セル範囲名」について説明する。「セル範囲名」は既述のとおり、セル参照を素早くするために設定する名称（文字列）であり、１又は複数の範囲のセルと紐づけることができる。セル範囲名とセルを紐づけし、当該セルをアドレスではなくセル範囲名で参照することによって、列や行の追加・削除があっても、マクロや演算式の修正が不要となる。
【０２２５】
また、エクセル（登録商標）の「セル範囲名」には参照可能な範囲（変数の適用範囲、スコープ、有効範囲）の広さの違いで、次の種類がある。
・マクロと、ブック（ファイル）内の全てのシート内の演算式から参照可能なもの（これを以下の説明では「ブックレベル範囲名」と称する）。
【０２２６】
「ブックレベル範囲名」は、シート名の指定のみでシートを跨いだセル参照ができるため、本実施形態ではセルの指定のほか、シートを指定する場合にも応用している。
・マクロと、単一のシート内の演算式（参照元シートと参照先シートが同一の場合に限る）から参照可能なもの（これを以下の説明では「シートレベル範囲名」と称する）。
【０２２７】
「シートレベル範囲名」は、その範囲名の紐づけされたセルのあるシート内の、全ての演算式から参照できる。つまり、基本的にシート内での演算に活用すべきものだが、シート名の指定を付加してこれを指定すれば、シートを跨いだセル参照もできる。本実施形態ではこれを、シート内でのセル指定を簡便に行うために使用している。
【０２２８】
なお、上記の「ブックレベル範囲名」および「シートレベル範囲名」の他に、マクロと、単一のシート内の演算式（参照元と参照先が異なる）から参照可能なものもあるが、これについては本実施形態では利用していないため、説明を略す。
【０２２９】
なお、本実施形態における「シートレベル」は例えば、「モジュールレベル」、「局所レベル」、「ローカルレベル」等と捉えることもでき、「ブックレベル」は例えば、「パブリックレベル」、「大域レベル」、「グローバルレベル」等と捉えることもできる。
【０２３０】
また、本実施形態では、「範囲名の定義」と記載しているが、これは「名前付きセル範囲の定義」ということもできる。
【０２３１】
具体的に、エクセル（登録商標）の機能として、シートを表示した状態で対話型ＵＩ（ウィンドウ表示）を利用してセル範囲名を定義すると、「Thisworkbook.Names」オブジェクト（「Thisworkbookオブジェクトの直下のNamesオブジェクト）にセル範囲名の一覧が保存される。セル範囲名の定義のためには、エクセル（登録商標）には名前ボックスＮＢなどのＧＵＩ画面が提供されているが、セル範囲名の定義や削除を一連の流れとして行うには、専用の画面を作る（オウン・コード）とよい。
【０２３２】
その場合、図示は省略するが、参照する側のシート（損益計算シート、日別残高シートのいずれか）の「Ａ１」セルを、ユーザがダブルクリックすると、ＧＵＩ画面が現れる。ＧＵＩ画面には現在ファイル内に定義されている範囲名（参照先セルの属するシートのシート名と範囲名の併記）と、「ブックレベル・シートレベル」の区別をするチェックボタンが、一覧として表示されている。範囲名が多数の時は、縦スクロールバーも現れる。ユーザが範囲名を選択し、その範囲名の隣のチェックボックスをＯＦＦからＯＮに変更すると、ＧＵＩ画面から起動するマクロがその範囲名をブックレベルに変更する。同名の範囲名があるときは、選択されていない同名の範囲名は皆シートレベルに変更する。ユーザが範囲名を選択し、その範囲名の隣のチェックボックスをＯＮからＯＦＦに変更すると、ＧＵＩ画面から起動するマクロがその範囲名をシートレベルに変更する。
【０２３３】
ブックレベル範囲名を定義した場合、NamesオブジェクトのＮａｍｅプロパティの値としてにはブックレベル範囲名のみが設定されるが、これにシート名は含まれない。参照先のセルは、同オブジェクト内のRefersToプロパティに、「シート名＋アドレス」の形式で記述することにより紐づけされる。
【０２３４】
一方、シートレベル範囲名を定義した場合、NamesオブジェクトのNameプロパティの値としてシート名が含まれる。参照先セルは、同オブジェクト内のRefersToプロパティに、「シート名＋アドレス」の形式で記述することにより紐づけされる。
【０２３５】
そして、ブックレベル範囲名は、１つのブックにつき１個のみ設定でき、別のシートにあってもそのセル範囲名で指定できるという、ブック全体に通用するセル範囲名となる。一方、シートレベル範囲名は、当該シートのみで有効なセル範囲名であり（シート内で一個ずつ同名のものを定義でき）、ブック内ではシートの数と同数、これを定義できる。また、異なるシートに同じセル範囲名を設定することができる。そしてブックレベル範囲名と、同名のシートレベル範囲名は、同一シート内では同時に定義することはできない。
【０２３６】
このようにして第４状態更新処理では、シートを特定可能とし、表計算ソフトウェア１６の基本機能によって特定したシートを取得する。
【０２３７】
次に、特定したシート名を、演算式から参照可能な形で保存する方法(先に説明したIndirect関数に引数として、シート名を与える方法)ついては、シート名をセルに値として書き込む方法を採用する。また本実施形態では、特定したシート名の保存をする場合、参照される(データを保管している）側のシートのセルに保存する方法と、シート名を保存するための特別のシートを定義する方法を採用する。これらは、シートの操作内容によって選択される。すなわち、一のシートから他のシートを参照している環境において、参照される側のシートを（例えば、新旧で）差換える（そのために参照される側のシートが複数存在する）場合には、シート名を参照される側のシートにセルの値として保存する方法が選択される、また、複数シートの串刺し演算処理の場合にはシート名を保存するための特別のシートを定義する方法が選択される。
【０２３８】
なお、シート名の保存方法は、これに限らず、例えば、参照する(データを活用する)側のシートにセルの値として保存する方法、や、セル範囲名のリスト(Namesオブジェクト)に書き込む方法、セル範囲を与えるとそのセルの属するシート名を返す仕組み（関数、プロパティ、ユーザ定義関数、マクロなど）を利用する方法などであってもよい。
【０２３９】
このように第４状態更新処理では、参照されるシートを、セル範囲名を利用して特定し、特定したシートのシート名を、演算式から参照可能な形で保存する。
【０２４０】
次に、参照されるシートを特定する方法や、演算式でのシートの指定方法について具体的に説明する。第４状態更新処理では、以下に説明するシートの構成（設定）を含み、当該構成によって、少なくとも、シートの差し換えの操作がされた場合と、複数シートの串刺し演算の場合に、マクロ内から動的にシートを指定し、参照されるシートの更新をすることができる。以下、この２つの場合について説明する。
【０２４１】
［１．シートの差し換え操作がある場合のシートの指定］
シートの差し換え操作とは、一のシートから参照されるシートに例えば新旧の差し換えがあり、そのために類似したシートがファイル（ワークブック）内に複数存在している（新版、旧版の混在など）状態での操作である。
【０２４２】
ここでは、参照する側のシート上の演算式から、意図したシートを一意に特定し、そのシートのセルの値を取得する方法を説明する。表計算ソフトウェア１６にはシートを一意に特定する方法があるが、その方法では新旧差換えの操作が容易でない。その方法によると、参照する側のシートで全ての演算式を書き換える必要が生ずる。この方法は、新旧差換えを簡便に行うことができ、かつ、シートを一意に特定する手段であるが、この手段によるとユーザがシート名を変更した時には、不具合が生じる。表計算ソフトウェア１６の自動修正機能には、ユーザがＧＵＩ経由で参照される側のシート名を変更した場合にも、参照されるシートを一意に保つ仕組み（以下「シート参照の維持機能」と呼ぶ）がある。しかし本実施形態における状態更新処理での処理を前提にすると、表計算ソフトウェア１６に組み込まれたシート参照の維持機能の対象範囲から外れてしまう。
【０２４３】
そのため、第４状態更新処理手段１７４では、新旧差換えを簡便に行うための機能とともに、それに合わせたシート参照の維持機能を実現している。
【０２４４】
図１８を参照して、第４状態更新手段１７４で用いるシート構成、すなわち、参照する(データを活用する)側のシート（例えば、「損益計算シート」）において他のシート（参照されるシート、例えば「経費シート」）のデータを参照するための構成の一例を説明する。同図では、参照する側のシートとして損益計算シート（同図（Ａ））を、参照される側のシートとして経費シート（同図（Ｂ）、同図（Ｃ））を示している。
【０２４５】
同図（Ｂ）を参照して、参照される側のシート（例えば、「経費シート」）では以下の設定を行う。まず、参照される側のシート（例えば、「経費シート」）内の任意のセルに「ブックレベル範囲名」を定義しておく。これは、任意のセル（例えば「Ｃ２」セルなど）を選択し、名前ボックスＮＢに名前（例えば「ｇ経費」など）を入力することにより、ブックレベル範囲名として登録される。
【０２４６】
ブックレベル範囲名は、ワークブック内のシートの中から、目的のシートを特定するための手段として使用できる。目的のシートを特定する手段としては、一般にはシート名によってシートを特定する方法が多用されているが、それよりも柔軟に目的のシートを特定することができる。
【０２４７】
また、参照される側のシートのシート名（自身のシート名）を取得して、シート名のセル（ブックレベル範囲名と紐づけられた「Ｃ２」セル）にシート名を上書きするマクロを定義する。当該マクロは、再定義マクロに含まれ、参照される側のシートから他のシートに移動する際に実行される。
【０２４８】
つまりブックレベル範囲名「ｇ経費」と紐づけられた「Ｃ２」セルは、そのセルの属するシートのシート名が定義されたセル（シート名のセル）となる。
【０２４９】
例えば、同図（Ｂ）では、「Ｃ２」セルの内容は、そのセルの属する「経費シート」のシート名である文字列（シートタブの文字列）「経費」である。そして、同図（Ｃ）に示すように、ユーザがこの「経費シート」のシート名を「経費」から「経費２９０８」に変更し（複写ではなく、シートの名称変更）、他シートの移動をし、再度、経費シートに戻ると、「Ｃ２」セルにシート名を上書きする再定義マクロによって「Ｃ２」セルの内容が更新される。このシート名を上書きする再定義マクロについては、後に詳述する。
【０２５０】
すなわち、再定義マクロは、DeActivateイベントを監視し、DeActivateイベントの発生を契機として、参照される側のシート（例えば、「経費シート」）のシート名（自身のシート名、変更後の「経費２９０８」）を取得して、シート名のセル（ブックレベル範囲名と紐づけられた「Ｃ２」セル）に、取得したシート名を上書きする。これにより経費２９０８シートの「Ｃ２」セルに、変更後のシート名（例えば、「経費２９０８」）が上書きされる（同図（Ｃ））。なお、この場合、「Ｃ２」セルは、例えば２行目の全体を非表示にするなどし、ユーザによる不用意な更新がされないようにしておく。
【０２５１】
同図（Ｂ），同図（Ｃ）に示すように「Ｃ２」セルを紐づけている範囲名は、ワークブック内で一意のブックレベル範囲名「ｇ経費」である。ブックレベル範囲名が付されているシートは、シート名の変更時には、「ｇ経費」と紐づけられた「Ｃ２」セルの内容（値）のみが変更される。すなわちここでは文字列「経費」が「経費２９０８」に変更される。
【０２５２】
一方、参照する側のシート（例えば、「損益計算シート」）におけるデータの参照では、同図（Ａ）に示すように、参照される側のシートのシート名を定義（入力、表示）する参照先シート名欄３０を設ける。また参照するデータについては、参照先シートで参照すべきセルを間接的に指定するための関数を用いて特定する。
【０２５３】
例えば、同図（Ａ）に示すように、参照する(データを活用する)側のシートの任意のセル（例えば、「Ｋ５」セル）などを、参照される側のシート名を定義する参照先シート名欄３０とする。
【０２５４】
そして、参照先シート名欄３０には、参照されるシート（例えば、「経費シート」）のブックレベル範囲名を用いて、「＝ｇ経費」と定義（記載）する。これにより、ブックレベル範囲名として「ｇ経費」が付されたシート、つまりこの例では、参照されるシートのシート名を取得できる。また、参照先シート名欄３０は、ユーザによる入力も受け付ける。
【０２５５】
なお、参照する側のシートは、参照先シート名欄３０に定義されたシート名を参照するように構成されており、ユーザは参照先シート名欄３０に任意のシート名を入力することで、参照する側のシートの参照先を変更することもできる。
【０２５６】
更に、参照先シート名欄３０の値（定義情報Ｓ）は、ユーザによる固定値の入力を受付ける第３状態更新手段１７３によって、あるいはこれと同様の更新を第４状態更新手段１７４に備えることによって、再定義情報Ｒでの再定義も可能に構成する。
【０２５７】
すなわち、参照する側のシートに再定義情報設定領域２５を設ける。再定義情報設定領域２５は、例えば、参照先シート名欄３０と同列の２行目（例えば「Ｋ２」セル）などとし、再定義情報Ｒとして参照されるシート（例えば「経費シート」）のブックレベル範囲名を活用した演算式（例えば「＝g経費」）を定義する。
【０２５８】
また、再定義マクロとして、参照先シート名欄３０に同列の再定義情報設定領域２５に定義されている再定義情報を参照先シート名欄３０にコピーする命令を定義し、これを実行することによって、参照先シート名欄３０には、再定義情報Ｒとして保存されている演算式が、所定のタイミングで再定義されるようになる。
【０２５９】
また、参照する側のシートで、参照される側のシートのデータを参照する場合には、参照すべきセルを間接的に指定するための関数を用いる。例えばエクセル（登録商標）の場合は、「InDirect関数」によって参照先のセルアドレスを文字列又は文字列式として記載できる。これにより、あるシートから他のシートへの参照を定義するのに、参照先のアドレスの定義中にセル参照や関数を含めることができる。
文字列によるアドレス指定の例としては、「=InDirect("経費!F12")」により、経費シートの「Ｆ１２」セルを参照する演算式などがある。文字列式による例としては、経費シートに定義したブックレベル範囲名を用いて「=InDirect(InDirect("g経費")&"!F12")」とする演算式などがある。これはInDirect関数に引数として、InDirect関数を使用し、関数の入れ子にした例である。この二つの例は結果的に同じ値を返す。
【０２６０】
また、参照されるシートのシート名をセルに定義することもできる。すなわち、この例では、参照先シート名欄３０（「Ｋ５」セル）を用いて、参照する側の任意のセル（例えば、「Ｎ１２」セルなど）において「=InDirect(K5&"!F12")」と定義することにより、損益計算シートの「Ｎ１２」セルにおいて、損益計算シートの参照先シート名欄３０（「Ｋ５」セル）に定義されたシート名を有するシート（経費シート）の「Ｆ１２」セルが参照できる。この例においては、「Ｋ５」部分がセル参照である。
【０２６１】
第４状態更新手段１７４は、このように設定されたシートを用いて、複数のシート間に亘る操作を行う場合に必要に応じて第４状態更新処理を行う。以下これについて更に説明する。
【０２６２】
［１−１．シートの一時的な差し換えの場合］
図１９および図２０は、参照される側のシートを一時的に差し換えて、これを参照する側のシートに反映させる場合の第４状態更新処理の例を示す図であり、参照される側のシートとして経費シート、参照する側のシートとして損益計算シートを用いる場合の例である。
【０２６３】
図１９（Ａ）を参照して、損益計算シートの例えば「Ｋ５」セルは、参照先シート名欄３０であり、内容は経費シートのブックレベル範囲名を活用した演算式（例えば、「＝ｇ経費」）が定義されている。また、図１８の場合と同様に、参照先シート名欄３０は、ユーザによる入力も可能に構成されているとともに、再定義情報Ｒによる再定義も可能である。すなわち、参照先シート名欄３０と同列の例えば２行目（「Ｋ２」セル）などに設けられた再定義情報設定領域２５に保存されている再定義情報Ｒ（この例では演算式（例えば「＝ｇ経費」））を、ユーザの一定の操作（値削除など）により、「Ｋ５」セルに上書きするように構成されている。
【０２６４】
ここでは、参照される側のシート（経費シート）が複数ある場合を例に説明する。この例では、同図（Ｂ）、同図（Ｃ）に示すように、ユーザが経費シートを複写した結果、シート名が「経費１１１」であるシートとシート名が「経費２２２」であるシートが存在している。そしてシート名が「経費２２２」のシートについて、Ｈ２９年１１月の入金（破線で示す欄）の値を変更している。
【０２６５】
ここで、エクセル（登録商標）の基本機能として、セル範囲名を有するシートを複写した場合は、当該セル範囲名も複写されるが、当該セル範囲名がブックレベル範囲名のときは、複写先ではシートレベル範囲名に置き換わるようになっている。つまり複写元のシート（経費１１１シート）で当該セル範囲名がブックレベル範囲名であったとしても、複写先のシート(経費２２２シート)では当該セル範囲名はシートレベル範囲名となる。これは、一つのファイル（ワークブック）内には、同名のブックレベル範囲名は一つしか定義できないという、エクセル（登録商標）の仕様によるものである。
【０２６６】
つまりこの例では、ユーザが経費シートを複写した結果、「Ｃ２」セルに対してブックレベル範囲名として「ｇ経費」が付されたシート名「経費１１１」のシートと、シートレベル範囲名として「ｇ経費」が付されたシート名「経費２２２」のシートとが存在している。
【０２６７】
そして上述のとおり、損益計算シートの「Ｋ５」セル（参照先シート名欄３０）は、経費シートのブックレベル範囲名を活用した演算式（例えば、「＝ｇ経費」）が定義されており、これによりブックレベル範囲名として「ｇ経費」が付されたシートが参照される。つまり、参照先シート名欄３０に「＝ｇ経費」と定義することによって、ブックレベル範囲名として「ｇ経費」が付されたシートが参照される。
【０２６８】
従ってこの場合、損益計算シートでは同図（Ａ）に示すように、ブックレベル範囲名として「ｇ経費」が付された「経費１１１」のシートが参照されている。
【０２６９】
この状態で、損益計算シートにおいて、シート名が「経費１１１」のシート（ブックレベル範囲名「ｇ経費」を持つシート）ではなく、シート名が「経費２２２」のシート（シート複写により新たに生成されたシート）を参照させる（参照される側のシートを一時的に差し換える）場合の状態更新処理について説明する。
【０２７０】
ブックレベル範囲名「ｇ経費」を持つシート以外のシートを一時的に参照するには、図２０（Ａ）に示すように、ユーザが、損益計算シートの参照先シート名欄３０（「Ｋ５」セル）に、固定値「経費２２２」を入力する。これにより、参照先のシートは「経費２２２」というシート名のシートに変更され、例えば、損益計算シートの任意のセル（例えば、「Ｍ８」セルなど）に定義された関数（例えば、「=InDirect($K$5 & "!$M$5")」など）により、「経費２２２」というシート名のシートのセルの値（前述の例では、「Ｍ５」セルの値）を参照できる。
【０２７１】
また、参照される側のシートを、シート名「経費２２２」のシートからシート名「経費１１１」のシートに戻す場合は、同図（Ｂ）に示すように参照先シート名欄３０の値をクリア（例えば、削除（Ｄｅｌｅｔｅ）Ｋｅｙの押下）する。
【０２７２】
これにより、同図（Ｃ）に示すように第３状態更新手段１７３によって、参照先シート名欄３０のセルが再定義情報設定領域２５の再定義情報Ｒの演算式（例えば、「＝ｇ経費」）に再定義される。この演算式の値（ブックレベル範囲名「ｇ経費」と紐づいたセルの値（「経費１１１」シートのＣ２セルの値））は、「経費１１１」であり、参照先シート名欄３０のセルの値は「経費１１１」となる。これにより参照される側のシートは、シート名が「経費１１１」のシートに戻る。
【０２７３】
［１−２．シートの恒久的な差し換えの場合］
次に、参照される側のシートを恒久的に差し換えて、これを参照する側のシートに反映させる場合の第４状態更新処理について説明する。
【０２７４】
例えば、図１９および図２０の場合（「経費１１１」シート（ブックレベル範囲名「ｇ経費」を持つシート）を複写して、「経費２２２」を作成した場合）を例に説明する。この例において参照される側のシートを恒久的に差し換える場合には、ユーザが参照される側のシートに付与されている範囲名をシートレベルからブックレベルに変更する。
【０２７５】
表計算ソフトウェア１６の基本機能として、ブックレベル範囲名をシートレベル範囲名に変更したり、その逆に変更することはできない。そのため、セル範囲名のレベルを変更する場合には、セル範囲名を一旦削除して改めて付与する必要がある。
【０２７６】
具体的には、複写元の「経費１１１」というシート名のシート（複写元）に定義されているブックレベル範囲名「ｇ経費」を削除し、「経費２２２」というシート名のシート上の任意のセル（例えば、「Ｃ２」セル）に新たにブックレベル範囲名「ｇ経費」を定義する。
【０２７７】
そして参照されるシート（「経費２２２」というシート名のシート）から、他のシートに移動すると、参照されるシートにおいて「DeActivateイベント」が発生する。これを契機として再定義マクロによって、ブックレベル範囲名「ｇ経費」と紐づいたセル（例えば「経費２２２」というシート名前のシートの「Ｃ２」セル）には、そのシート名（「経費２２２」）が上書きされる。これ以降は、参照される側のシートはシート名「経費２２２」のシートとなる。
【０２７８】
［１−３．シート名と参照可能な形で保存されたシート名との整合性を保つ処理］
シート名はシート毎に一意に指定する文字列であり、表計算ソフトウェア１６では「シートタブ」の領域に表示される。この文字列は、ユーザがＧＵＩを経由した操作にて、変更可能である。
【０２７９】
表計算ソフトウェア１６の演算式からは、「シートタブ」の文字列（以下「実シート名」と呼ぶ）を参照することはできないため、本実施形態では、他の場所（例えば、ブックレベル範囲名「ｇ経費」と紐づけられている「Ｃ２」セル）にシートタブと同じ文字列を保存して（そのように再定義マクロを定義して）その文字列（以下「参照可能シート名」と呼ぶ）を参照している。
【０２８０】
ところで、ユーザがこの実シート名を変更したままでは、実シート名と参照可能シート名との間に不一致が生じる。この不一致のために参照する側のシートから目的のシートを特定できず、目的のセルを参照することができなくなる。
【０２８１】
具体的に、ユーザが「経費１１１」という名称のシートを、ＧＵＩ操作で、「経費ＡＡＡ」という名称に変更した場合を例に説明する。この場合には、「経費１１１」という名称のシートを参照していたシート（例えば、損益シート）に定義されている演算式で、不都合が起こる。
【０２８２】
これは、シートタブに表示されているシート名は、例えばユーザがシートタブに入力した後の決定処理（例えば、Enterキーの押下など）により「経費ＡＡＡ」と更新されるが、ブックレベル範囲名「ｇ経費」と紐づけられているセル（「Ｃ２」セル）の値は、決定処理のみでは「経費１１１」のまま更新されないためである。
【０２８３】
この状態で損益シート内の演算式は、「ｇ経費」と紐づけられているセルの値である「経費１１１」をシート名と見做して、「経費１１１」というシートを参照しようとする。しかし、「経費１１１」という名称だったシートは、名称変更されて「経費ＡＡＡ」という名称になっている。
【０２８４】
そうなると、損益シート内の演算式は、参照先のシートが消滅したと誤認し、「参照先不定」のエラーを発生させてしまう。ただし、この時点では、損益シートは非Activeの状態なので、この不都合はユーザからは見えない。ユーザが損益シートをActive（つまり画面に表示されている）の状態にした時に、初めてこの不具合が見えることになる。
【０２８５】
そこで、第４状態更新処理手段１７４では、参照先のシート名を修復する状態更新処理を行う。
【０２８６】
ユーザがＧＵＩを経由した操作にて、参照される側のシート名を変更する時においては必ず、参照される側のシート（例えば経費シート）がActiveで、参照する側のシート（一般に、損益シートなどの集計を目的としたシート）が非Activeである。逆にユーザが、参照する側のシートをActiveにする操作をすると、参照する側のシートがActiveになる前に、参照されるシートが非Activeとなる。
【０２８７】
第４状態更新処理手段１７４では、変更されるシートが非Activeとなるタイミングで、シート名と参照可能な形で保存されたシート名との間に不整合を解消する。具体的には変更されるシートが非Activeとなるタイミングで再定義マクロが起動し、参照可能な形で保存されたシート名を上書きする。この再定義マクロは、「シートタブに表示されているシート名を、ブックレベル範囲名「ｇ経費」と紐づけられているセルに複写する」という命令を少なくとも含み、図１８を参照して説明した「シート名を上書きする再定義マクロ」である。
【０２８８】
具体的には、ユーザが「経費」という名称のシートを、ＧＵＩ操作で、「経費ＡＡＡ」という名称に変更し、その後に他のシートに移動した場合に、第４状態更新処理手段１７４による第４状態更新処理が実行される。そして、上述のシート名を上書きする再定義マクロによって、シートタブに表示されているシート名「経費ＡＡＡ」（図１８（Ｃ）では「経費２９０８」）を、ブックレベル範囲名「ｇ経費」と紐づけられているセル（「Ｃ２」セル）に複写する。
【０２８９】
これにより、損益シート内の演算式は、「経費」という名称のシートではなく、「経費ＡＡＡ」という名称のシートを参照するようになる（図１８参照、図１８においては、このシート名を上書きする再定義マクロによって「経費２９０８」という名称のシートが参照されるようになっている）。よって、ユーザが損益シートをActive（つまり画面に表示されている）の状態にした時には、不具合の修正が完了しており、当該不具合は、ユーザの目に触れることはない。
【０２９０】
以上が、新旧差換えを簡便に行うための手段とともに、ユーザがＧＵＩ経由で参照される側のシート名を変更した場合にも、参照されるシートを一意に保つ仕組みである。
【０２９１】
［２．複数シートの串刺し演算の場合シートの指定］
次に、図２１から図２６を参照して、第４状態更新手段１７４によって、複数シートの串刺し演算の場合に、マクロ内から動的にシートを指定し、参照するシートの更新をする例について説明する。
【０２９２】
まず、図２１は、本実施形態の串刺し演算の概要を示す図である。本実施形態の串刺し演算では、同図（Ａ）に示すように、一覧表シート、集計データシート、元データシートを有する。串刺し演算は、１枚の一覧表シート、１枚の集計データシートおよび複数（最大９９枚まで）の元データシートの組合せを一組とするデータ単位（串刺し演算データ単位）で実行される。
【０２９３】
一覧表シートは、元データシートのシート名を列挙していくシートである。シート名を列挙する列はある列に特定されている。
【０２９４】
集計データシートは、一覧表シートから元データシートのシート名を取得し、元データシートの共通項目についてその値を一覧させていくシートである。このシートには、一覧表シートから取得するシート名と、元データシートから取得する共通項目のデータを演算式により定義しておく。
【０２９５】
元データシートは、それぞれ、シート中の任意のセル範囲に、シートレベル範囲名を定義しておく。また、集計データシートに複写される共通項目のデータのレイアウトも定義しておく。元データシートは、例えば帳票形式でその一部が表示され、ユーザからの入力を受け付ける画面などになるが、共通項目は通常はユーザに非表示となっている。共通項目には、それ以外の（右下方の）各種入力欄から、会計基本処理プログラム２１によってデータが集約（編集）される。なお、各種入力欄はユーザによるカスタマイズが許容されている。その際、共通項目の編集も可能である。
【０２９６】
串刺し演算データ単位（１枚の一覧表シート、１枚の集計データシートおよび複数（最大９９枚まで）の元データシートの組合せを一組とするデータ単位）は会計処理システム１０内で複数定義できる。串刺し演算データ単位の内部では、共通項目は同じレイアウトのセル範囲でなければならない。この場合複数の串刺し演算データ単位（例えば、単位Ａ、単位Ｂ）の間で、共通項目は同じ項目で構成されていてもよいし、異なる項目で構成されていてもよい。
【０２９７】
同図（Ｂ）は、集計データシートと出力帳票（損益計算や残高などの帳票）の関係の概要を示す図である。本実施形態の会計処理システム１０では、データが入力されるシートとして、経費シート、売上・仕入シート、普通仕訳シート、追加シートを有している。そしてこれらとは別に独立して串刺し演算データ単位がワンセット定義されている。串刺し演算データ単位は、会計処理システム１０内で複数定義できる。この場合複数の串刺し演算データ単位（例えば、単位Ａ、単位Ｂ）の間で、共通項目は同じ項目で構成されていてもよいし、異なる項目で構成されていてもよい。そして例えば、損益計算シートや日別残高シートではこの串刺し演算データ単位でデータを収集し、損益計算や日別残高計算を行う。
【０２９８】
串刺し演算の場合に状態を更新するための再定義マクロは、ブック内でシートの移動があった（DeActivateイベントが発生する）時に、起動するように定義する。この再定義マクロの内容は、以下の通りである。
（１）対象シートかどうかを判定するステップ１
【０２９９】
移動元のシート（以下TagetSheetと言う）に、目的のシートレベル範囲名が定義されているか否かを検索し、目的のシートレベル範囲名がない場合（例えば、単に空白のシートが追加された場合など）は処理を終了する。
（２）対象シートかどうかを判定するステップ２
【０３００】
TagetSheetのシート名が、既に一覧表シートに列挙されているかを検索し、列挙されている場合は、新規追加された元データシートではない（既存の元データシートである）と判断し、処理を終了する。
（３）ファイル内の全シートを順読みし、目的のシートレベル範囲名が定義されているシートのシート名一覧を作成する。ユーザが串刺し演算処理の対象のシートにすることを目的として作成（複写等）した元データシートであれば、シートレベル範囲名が設定されているため、これに基づき一覧を作成する。
（４）上記（３）の一覧（元データシートのシート名の一覧）を、一覧表シートの所定の列に貼り付ける（一覧表シートを更新する）。
【０３０１】
また、貼り付ける前に、ＦＬＧ欄（Ｃ列）のセルを値クリア（ユーザが前回設定した内容を全削除）しておく。この列の値は後述する「参照される側のシートを取捨選択」の画面（オウン・コードによるＧＵＩ画面）で設定され、集計データシート内の演算式から参照される。
【０３０２】
なお、上記（２）の判定で、TagetSheetのシート名が既に一覧表シートに列挙されていないと判定されて（３）に進む状態としては、以下の態様がある。
・「既存のシートで、シート中に目的の「シートレベル範囲名」があるが、一覧表シートには名前がない」場合であり、ユーザがシート名を変更したことによって、一覧表シートに記載されたシート名と、実際のシート名との間に不一致が起きている場合である。
・「既存のシートで、シート中に目的の「シートレベル範囲名」があるが、一覧表シートには名前がない」場合であり、ユーザがそのシートを複写したことにより、一覧表シートにシート名を追加すべきであるが、未だリストに追加されていない場合である。
・「新規のシートに、ユーザが目的のシートレベル範囲名を付与した」場合であり、一覧表シートにシート名を追加すべきであるが、未だリストに追加されていない場合である。
【０３０３】
本実施形態の串刺し演算は、会計基本処理プログラム２１によって実行されるが、本実施形態の第４状態更新手段１７４は、図２１に示す各シートの構成（設定）と、上述の串刺し演算の場合に状態を更新するための再定義マクロによって、ユーザによりシートの操作（追加、削除、名称の変更）がされた場合に串刺し演算の処理対象を（予定されている全てのシートが参照できるようにその状態を）更新する。
【０３０４】
図２２〜図２５を参照して、具体例を挙げて説明する。
【０３０５】
図２２は、元データシートの一例を示す図である。同図（Ａ）はユーザの入力画面として表示される元データシートの例であり、同図（Ｂ）は同図（Ａ）では非表示となっていた部分を含めた元データシートの全体構成の一例である。
【０３０６】
同図は入金伝票の一例である。入力画面において、通常は同図（Ａ）のように（例えば、２行〜４４行、Ｂ列〜Ｊ列が非表示）で表示されており、必要に応じて例えばユーザがＡ１セルをダブルクリックすると、同図（Ｂ）のように全体が表示される。同図（Ｂ）の破線の領域が、同図（Ａ）に表示されている。
【０３０７】
同図（Ａ）の例では矢印の範囲（行方向の例えば１５行分）が、共通項目として集計されるデータである。なお、行数は１５行に限らず、適宜変更が可能である。
【０３０８】
ここでは入金伝票のレイアウトで示しているが、これに限らず、例えば振替伝票や領収書などのレイアウトでもよいし、日報のように本来会計処理に使用される帳票以外のレイアウトであってもよい。
【０３０９】
同図（Ｂ）に示すように、同図（Ａ）で表示されていた共通項目の各データは、同シート内の通常は非表示の左上領域（集約領域３３という。）に集約される。そしてこの集約領域３３には、シートレベル範囲名（例えば、「ｎ追加ｓｈｔ」）が定義されている。この元データシートが、串刺し演算データ単位毎に最大９９枚まで存在している。
【０３１０】
再定義マクロは、このシートレベル範囲名（例えば、「ｎ追加ｓｈｔ」）が定義されている場合には、集計の対象とする（上記（１）、（２））。
【０３１１】
図２３は、一覧表シートの一例である。例えば、Ｃ列には、「ｎ追加ｓｈｔ」のシートレベル範囲名を有するシート（つまり「元データシート」）のシート名一覧が作成される。シート名は例えば９９件まで登録可能であり、このＣ列（の９９件分のセル範囲）には、セル範囲名（例えば、「ｇ追加ＳＨＴ名称」）が定義されている。セル範囲「ｇ追加ＳＨＴ名称」は、集計データシート（シート名は、「追加シート」）から参照されている。また、一覧表シートの任意のセル（例えば、「Ｂ２」セル）には、ブックレベル範囲名として「ｇ追加ｓｈｔ」というセル範囲名が定義されている。
【０３１２】
図２４は、集計データシートの一例を示す図である。この例で、Ａ列は、ブックレベル範囲名「ｇ追加ｓｈｔ名称」と紐づいているセル範囲（すなわち、図２３のシートのＣ列）を参照し（表示欄ＣＮ参照）、当該シート名の一覧に含まれるシート名（文字列）を１５行ずつ繰り返し記載している。繰り返し行数は本シートの「Ａ３」セルで指定されている。
【０３１３】
Ａ列の演算式は、表示欄ＣＮに示すように「=IFERROR(OFFSET(g追加SHT名称,INT((CELL("row",A9)-4)/n行数),0,1,1),"**")」であり、このうちセル範囲「ｇ追加ＳＨＴ名称」は一覧表シート（シート名は「追加ｓｈｔ」）に属するセル範囲を参照している。「ｎ行数」は、集計データシートの「Ａ３」セル（セルの値は１５であり、このセルの値で繰返し行数を指定している）に与えられた範囲名である。演算式中の「INT((CELL("row",A9)-4)」の値は１であり、演算式全体では上記セル範囲の１行目の値を参照している。上記の演算式は、「Ａ９」セルに記載された場合の例である。
【０３１４】
第４状態更新処理手段１７４は、このように構成された各種シートと上述の串刺し演算の場合に状態を更新するための再定義マクロによって、シートの操作（追加、削除、名称の変更）がされた場合に串刺し演算の処理対象を（予定されている全てのシートが参照できるようにその状態を）更新する。
【０３１５】
第４状態更新処理手段１７４は、参照するシートから参照される側のシートへの参照手段を提供するものである。つまり、参照するシートにおいて参照される側のシートを取捨選択することができ、選択したシートのみを集計の対象とすることもできる。取捨選択の方法としては、参照される側のシート上のデータの内容によったり、参照されるシートに参照用とは別の印を付けたりする、別シートやＧＵＩ画面にシート名の一覧を表示してユーザに選択させるような方法がある。表計算ソフトウェア１６にはユーザにシート選択をさせる場合に利用できる簡便な機能として、オートフィルタやチェックボックスのような手段が提供されている。
【０３１６】
参照される側のシートを取捨選択するには、オウン・コードによるＧＵＩ画面（「参照される側のシートを取捨選択」の画面）を定義すると良い。その場合、ＧＵＩ画面は、一覧表シート又は集計データシートの「Ａ１」セルをユーザがダブルクリックすると起動する。この画面上には元データシートのシート名の一覧が表示されている。表示されているシート名が多数の時は、画面内に縦スクロールバーも現れる。シート名の横にはそれぞれ、チェックボックスが付されている。ユーザが、あるシートを集計対象外としたいときは、シートのシート名横のチェックを外す。その後ユーザがＯＫボタンを押すと、ＧＵＩ画面からマクロが起動する。そのマクロは、集計対象外のシートがあるときは、一覧表シートの対象外とされたシートの「対象外フラグ」列のセルの値を１に、そうでないシートの「対象外フラグ」列のセルの値を空白にする。集計データシート内の演算式は、ある元データシートに対応する「対象外フラグ」が１の時は、（「If Then 分岐」の機能を活用して、）その元データシートからの値複写を行わない仕様になっている。一覧表シートの「対象外フラグ」列は、元データシートのリスト貼付時にクリアされ、この画面で編集される。
【０３１７】
なお、例えば元データシートにおいても、第３状態更新手段１７３による更新処理が可能となっている。図２５は、図２２に示す元データシートを示す図である。図２２（Ｂ）および図２５を参照して、例えば、入金伝票シートには、例えば「Ｎ５１」セルに相手先コードを名称に変換する演算式（以下「名称変換算式」と呼ぶ。これは例えば、エクセル（登録商標）では「Vlookup」のような関数による簡便な手段が広く利用されている）が定義されている。また、入金伝票シートの通常は非表示となっている領域（名称変換算式参照領域３５、図２２（Ｂ）参照）には、相手先コードを名称に変換するための相手先リストが定義されている。名称変換の方法は、上記に限らず、自己作成関数による方法、イベント発生を捉えてマクロを実行する方法など、がある。コード変換は相手先のほか、地名、事業所名、商品名、勘定科目など、種々の変換が考えられる。
【０３１８】
そして、同図（Ａ）に示すように相手先コード欄（「Ｎ５０」セル）に数値の入力があると、名称変換算式は名称変換算式参照領域３５の相手先リストを参照し、入力された数値に一致する相手先名が有る場合は、相手先名欄（「Ｎ５１」セル）に当該相手先名を表示する。相手先コード欄、名称変換算式参照領域３５、相手先名欄は、単一のシート内にある必要はない。例えば、名称変換算式参照領域３５を、別シート、別ファイル（ワークブック）に設けたり、ネットワーク上の他のコンピュータやストレージに置いて運用することも出来る。相手先コード欄と、相手先名欄の役割を単一のセルに付けることもできる。
【０３１９】
また、名称変換算式が定義されている「Ｎ５１」セルと同列の例えば２行目（「Ｎ２」セル）には、再定義情報設定領域２５が設けられており（図２２（Ｂ）参照）、再定義情報Ｒとして、相手先コードを名称に変換する名称変換算式（「Ｎ５１」セルに定義されている演算式）が定義されている。
【０３２０】
ユーザは名称変換算式による変換が不要な場合は、図２５（Ｂ）に示すように相手先名欄に相手先名を直接入力する。そして名称変換算式による変換機能を復活させたい場合には、同図（Ｃ）に示すように相手先名欄（「Ｎ５１」セル）において値削除（Deleteキーを押下）する。これにより第３状態更新手段１７３が「Ｎ２」セルに定義された再定義情報Ｒおよび再定義マクロを用いて、「Ｎ５１」セルに名称変換算式を再定義する。
【０３２１】
このように、本実施形態では、会計基本処理プログラム２１で使用する定義情報Ｓ（主に演算式など）が定義されている場合には、状態更新手段１７を設定し、セル、行、列、シートの操作があった場合には、定義情報Ｓを再定義することが可能となっている。
【０３２２】
図２６は、「元データシート」のシート名一覧を保存する他の例を示す図である。同図は、一覧表シートの機能を集計データシートの中に集約させている。
【０３２３】
上記の例では、「元データシート」のシート名一覧を保存するシートとして、専用のシート、すなわち、一覧表シートにリストとして書き込む方法を説明した。
【０３２４】
これに対し、図２６の場合は、「元データシート」のシート名一覧を、参照する側のシートに保存する。すなわち同図に示すように、「元データシート」のシート名一覧を保存するための領域を、集計データシート内に定義している。これにより、串刺し演算データ単位を構成するシートを、元データシートと、同図に示す一覧表シートと集計データシートとの集約シートとの２種類にすることができ、シート構成を簡略化することができる。
【０３２５】
＜セルの表示態様変更手段＞
本実施形態の会計処理システム１０は、更に、所定の条件に応じてセルの表示態様を変更するセル表示態様変更手段を備える。
【０３２６】
セル表示態様変更手段は、セルの内容（定義情報Ｓ）が所定の条件の場合に、当該セルを或る表示態様で表示させる手段である。ユーザは、入力した値に応じてセルの表示態様が変化する場合があるので、入力値等が適切であるか否かを判断でき、その意味では警告機能ということもできる。
【０３２７】
具体的には、会計基本処理プログラム２１では、セル表示態様変更手段として、警告処理を行うシートについて、予め対象範囲内のセルに「条件付き書式」として表示態様を設定しておく。ここで「条件付き書式」は、表計算ソフトウェア１６の基本機能であり、指定した条件に合致した場合に適用される表示態様（文字の色やセルの色）に関する書式を指定する機能である。
例えば、演算式のセル（デフォルト）に対しては、セルの背景色を薄い赤、固定値の入っているセルにはセルの背景色を濃い赤などに設定する。
【０３２８】
例えば、演算式が定義されているセルに対してユーザが定数（固定値）を入力する。この場合、上記の例では薄い赤の背景色のセルに定数（固定値）が入力され、演算式でなくなるため、セル表示態様変更手段によって背景色が濃い赤に変化する。このような表示態様の変化により、当該セルにデフォルトで設定されていた定義情報Ｓが演算式であるのか固定値であるのかをユーザが目視することができ、計算結果の検証に役立たせることができる。また、シート上で演算式が定義されているセルと固定値が定義されているセルの表示態様が異なるため、体裁を良好にすることもできる。
【０３２９】
セル表示態様変更手段は、ユーザのシートヘの入力を契機として態様変更を行う。ユーザは、設定した「条件付き書式」により、セルのコンテンツが演算式か固定値かを、その表示態様によって目視で判断する。そして、例えば固定値であるべきセルについて、意図的に固定値が入力されている場合は正常とし、誤操作により固定値が入力されている場合には、当該値を消去（Deleteキーを押下）する。
【０３３０】
そしてこのようにあるセルに対する「値消去」により発生したChangeイベントを契機として、第３状態更新手段１７３が状態更新処理を行い、操作されたセルに定義されていた再定義情報Ｒが再定義される。
【０３３１】
表計算ソフトウェア１６の自動修正機能の仕様として、行・列の挿入・削除をした場合には、セルの演算式（所定の定義情報Ｓ）は維持されない。そのため本実施形態では、第２状態更新手段１７２および第３状態更新手段１７３によって当該演算式（所定の定義情報Ｓ）を維持している。それに対し、セル表示態様変更手段で設定される「条件付き書式」は行・列の挿入・削除をした場合には、表計算ソフトウェア１６の自動修正機能により維持される。
【０３３２】
ただし表計算ソフトウェア１６の自動修正機能では、シート上で、「セルの切り取り」をした場合には、切り取られたセルの「条件付き書式」は維持されない。そこで、本実施形態の状態更新処理手段１７は、「条件付き書式」について、再定義を行う。具体的には、状態更新処理手段１７は、シートのDeActivate時に状態更新処理を実行し、シート内の「条件付き書式」が正常であるか否かに関わらず、全てデフォルトの「条件付き書式」を再定義する。この処理は、例えば、第２状態更新処理手段１７２によって行うようにしてもよいし、別途の状態更新処理手段によって行うようにしてもよい。デフォルトの「条件付き書式」は、第２状態更新処理手段１７２と同様に、再定義情報Ｒとしてシート上に保存しても良いし、マクロのソースコード内に保存しても良い。また、シート上の正常なセルから、「条件付き書式」の複写をしても良い。
【０３３３】
なおこの表示態様は、背景色の他、セルの網掛け、下線、フォントスタイル変更などであってもよい。
【０３３４】
また、セル表示態様変更手段は例えば、シートに入力された日付に注目し、日付の変わるごとに、行全体の表示態様（背景色など）を変更したり、取引種別の列に注目し、種別に応じて（例えば、売上の行は水色、仕入の行はピンクなど）に表示態様を変更する。このようにすることで、警告機能に加えて、シートの体裁を良好にすることができる。
【０３３５】
＜付記＞
以下、これまでに説明したことも含めて、本実施形態の別の観点からの説明を付記する。
【０３３６】
［状態更新処理手段］
本実施形態の状態更新処理手段１７は、セル、行・列、シートに対して会計基本処理プログラム２１での初期状態と異なる、あるいは想定していない操作（入力等）が行われた場合、セルに当初定義されていた定義情報Ｓを再定義し直す、すなわちセルの状態を修復するものである。ここで、「修復」には、次の（Ｘ）、（Ｙ）のような、二種類の意味がある。
（Ｘ）表計算ソフトウェア１６の基本機能としての修正機能
【０３３７】
これは、ユーザがシートを編集した時に、表計算ソフトウェア１６が演算式や表示の整合性を維持するために行うもの（基本機能としての「自動修正機能」）であり、具体的には、セル単位の機能として列追加・削除時の演算式の変化や、シート単位の機能として参照されるシートがユーザにより、名前変更されたときの演算式の修正等の機能である。
（Ｙ）本実施形態の状態更新処理機能
【０３３８】
会計基本処理プログラム２１が想定する所定の結果を維持するため、状態更新処理手段１７（上述の第１状態更新処理手段１７１〜第４状態更新処理手段１７４）によって修復をする機能である。一例を挙げるとセル単位の機能として、特定のセルの内容をユーザが空白にした場合に、セルごとに定義されている演算式等（定義情報Ｓ）を上書き（再定義情報Ｒにより再定義）する機能や、セルに定義されている書式（条件付書式）が削除された場合に自動で修復する機能である。
【０３３９】
また、シート単位の機能として、シートの差換えがあった場合またはシートの串刺し演算があった場合に、追加、変更等されたシートを参照の主体に反映させる機能である。
【０３４０】
すなわち本実施形態では、表計算ソフトウェア１６の基本機能としての自動修正機能も一部活用しつつ、自動修正機能で不足する部分を、状態更新処理手段１７（再定義マクロ及び再定義情報Ｒ、シートの各種設定）によって補い、ユーザにとって利便性の高い修復機能を提供している。
【０３４１】
本実施形態の会計処理システム１０は、以下の機能（手段）を有している。
（ａ）ユーザによって行又は列の操作があった後に、セルの内容が変更された場合に、会計基本処理プログラム２１（会計基本マクロ）が参照するセルに不整合が生じないように、セルの内容を再定義する機能（第１状態更新処理手段１７１）
（ｂ）ユーザによってセルに何らかの操作（入力等）がされた場合に、入力された値の種類（演算式、固定値など）によらず、初期のセルの定義情報Ｓに再定義する機能（第２状態更新処理手段１７２）
【０３４２】
この場合、対象となるシートは、会計処理システム１０の場合、例えば経費シート、売上・仕入シート、普通仕訳シート、追加シートである。なお、シートは一例であり、この例に限らない。
【０３４３】
また、更新対象のセルは、ユーザによる操作があったセルと同じ列で、有効な行範囲内にある全てのセルであり、この場合は、修正対象のセル範囲は、縦方向に長いセルの一団となる。
【０３４４】
また、更新対象のセルは、再定義情報設定領域２５に定義されている再定義情報Ｒによって更新（修復）される。
【０３４５】
また、対象となるシートで行挿入があった場合は、シート内の、演算式の入るべき列で、有効な行範囲内にある全てのセルが再定義情報Ｒによって更新（修復）される。つまり、ある列の中に一つでも修正対象セルがあれば、（挿入した行の）列全体の演算式を更新する。なお、この場合、シート内の演算式の全てが更新される構成であってもよい。また、シートを移動した際に、挿入した行の列全体の演算式の更新（またはシート内の全ての演算式の更新）を行うようにしてもよいし、行わないようにしてもよい。
（ｃ）ユーザによって或るセルに何らかの操作（入力等）がされた場合、入力された値の種類が固定値（定数）であればその入力は許容し、それ以外の場合は初期のセルの定義情報Ｓに再定義する機能（第３状態更新処理手段１７３）
【０３４６】
この場合、対象となるシートは例えば、売上シートである。また、更新の対象となる或るセルとは、リスト中の特定の列に属するセル（縦長の一団の単位となる）、または、帳票形式のシートで名称変換算式による表示を行うセル（セル一個の単位）である。ただし、そのセルが既述の第３状態更新処理の判定基準（ケース１〜ケース５）を満たさない場合は処理を終了する。判定は、入力があったセルを１個単位で全数判定する。
【０３４７】
また、名称変換算式による表示を行うセルの更新処理において、同じ列に名称変換算式が定義されているセルが複数ある場合、再定義情報Ｒの定義領域は、他の領域が適宜選択される。また、再定義情報Ｒは再定義マクロ内に直接記載してもよいが、その場合は適宜再定義マクロのメンテナンスが必要となる。
【０３４８】
また、対象となるシートで、行挿入があった場合は、シート内の、演算式の入るべき列で、有効な行範囲内にある全てのセルについて更新処理を行う。この場合は、修正対象のセル範囲は、横方向に長いセルの一団となる。行挿入時には、全てのセルが空白であるため、全てのセルが更新される。
【０３４９】
また、対象となるシートから他のシートに移動する場合、演算式の入るべき列で、有効な行範囲内にある全てのセルについて、第３状態更新処理の判定基準（ケース１〜ケース５）でセル１個単位で判定し、異常のセルがある場合には更新される。
（ｄ）会計基本処理プログラム２１（会計基本マクロ）複数のシートに亘る処理を行うに際し、シートの追加や差し替えがあった場合に、それらを複数のシートに亘る処理に反映させる機能（第４状態更新処理手段１７４）
（ｄ−１）シートの差し換え時の状態更新処理
【０３５０】
この場合、再定義マクロの起動契機は、参照されるシート（経費シート、売上・仕入シート、普通仕訳シートほか、以下「対象シート」という）から、他のシートに移動するときである。
【０３５１】
移動元のシートが対象シートに属するかどうかは、目印となる対象シート情報で判断する。対象シート情報は例えば、ブックレベル範囲名（上記の例では、経費シートの「g経費」）である。この対象シート情報を最新の対象シートに設定する。
【０３５２】
また、第４状態更新処理手段１７４では、対象となる（追加等された）シート名を参照する側のシート上に定義された演算式から参照可能な方法で保存する。
【０３５３】
ここで、（ｄ−１）の機能は、あるシート（ここでは例として、経費シート)の世代管理をするための機能であるといえる。シートの差し替えをする時は、複数の「経費」シートがあることになる。つまり、「旧経費」シート、「新経費」シート、「二世代前の経費」シート・・・と同じレイアウトのシートが複数存在する。この場合、どのシートが原本であるか、最新であるか、どのシートから金額を集計するかを確定させる必要がある。この原本が確定すれば、状態更新処理手段１７が自動で状態の更新を行うことができる。その原本を確定するための対象シート情報が例えば、ブックレベル範囲名（例えば、「ｇ経費」）であり、当該対象シート情報を予めシート上のセルに設定しておく。
【０３５４】
なお、再定義マクロの起動契機は、参照されるシートから他のシートに移動するときであってもよいし、他のシートから参照するシートに移動するときであってもよい。
【０３５５】
また、対象シート情報は、範囲名の有無に限らず、コメントの有無・内容、特定のセル(「Ａ１」セルなど)に特定の文字を入れる、特定のセルの書式を特定の形（例えば、罫線の色指定）にするなどであってもよい。
【０３５６】
また、シート名の保存場所は、表計算ソフトウェア１６の演算式から読み出せる場所であれば良く、例えば、参照される側のシート、参照する側のシートのいずれのセルであってもよい。また、シート名を保存するための特別のシートを定義してもよいし、範囲名のリスト(Namesオブジェクト)に書き込む方法、シート名を返す関数を活用する方法もよい。
【０３５７】
また、再定義マクロが保存する項目としては、参照先のシート名でもよいし、参照先のシート名と参照先のアドレス、セル参照などでもよい。表計算ソフトウェア１６の演算式で解釈できる形であればよく、範囲名でもよい。
（ｄ−２）串刺し演算処理時の状態更新処理
【０３５８】
串刺し演算処理時の状態を更新する再定義マクロは、元データシートから、他のシートに移動するときに実行される。
【０３５９】
移動元のシートが元データシートであるかどうかは、上記（ｄ−１）と同様に対象シート情報（例えば、シートレベル範囲名）がシートに設定されているか、否かで判断する。
【０３６０】
再定義マクロは、移動元のシートの名称が、一覧表シートに含まれているか否かを判定し、そのシート名が、一覧表シートに含まれていなければ処理を続行し、含まれていれば処理を終了する。
【０３６１】
再定義マクロは、一覧表シートの所定の領域に、元データシートのシート名を保存する。本実施形態では、シート名の一覧を確実に保持するために、独立したシート（一覧表シート）を定義している。この一覧表シートは、一の「串刺し演算データ単位」に対して、１件定義されている。再定義マクロは、元データシートから他のシートに移動する(DeActivateイベント発生)時に起動する。
【０３６２】
また、対象シート情報は、範囲名の有無に限らず、名前付き範囲の有無、コメントの有無・内容、特定のセル(「Ａ１」セルなど)に特定の文字を入れる、特定のセルの書式を特定の形（例えば、罫線の色指定）にするなどであってもよい。
【０３６３】
また、シート名の保存場所は、表計算ソフトウェア１６の演算式から読み出せる場所であれば良く、シート名を保存するための特別のシートを定義（「串刺し演算データ単位」を構成する一覧表シートを定義）して書き込むしてもよいし、参照する側のシートに保存（シート名を保存するための「セル領域」を、集計データシート内に定義して保存（図２６参照）してもよい。また、 範囲名のリスト(Namesオブジェクト)に書き込むようにしてもよい。
【０３６４】
また、再定義マクロが保存する項目としては、参照先のシート名でもよいし、参照先のシート名と参照先のアドレス、セル参照などでもよい。また、表計算ソフトウェア１６の演算式で解釈できる形であればよく、範囲名でもよい。
【０３６５】
また、「串刺し演算データ単位」とは、例えば元データシート、集計データシート、一覧表シートの３種類で一つの構成とする単位であり、それぞれのシート枚数は、元データシートが１〜９９枚、集計データシートが１枚、一覧表シートが１枚である。単一の「串刺し演算データ単位」に属する元データシートの枚数上限は、シート行数の上限（表計算ソフトウェアの仕様等による）やコンピュータのメモリ搭載量などに依存し、９９枚を超える枚数の定義も可能である。また「串刺し演算データ単位」に属する元データシートは、ゼロ枚でもよい。
【０３６６】
例えば、会計処理システム１０では「串刺し演算データ単位」が実装されている。この単位内では、シートレベル範囲名「ｎ追加」を利用して複数のシートのデータを束ねている。つまりこのシートレベル範囲名「ｎ追加」は１つの「串刺し演算データ単位」に対応しており、シートレベル範囲名を変更すれば、ファイル（ワークブック）内に、複数の「串刺しデータ単位」を定義できる。この場合、「串刺しデータ単位」の構成は異なってもよい。
【０３６７】
また本実施形態の会計処理システム１０は単一のファイル（ワークブック）内で構成されるものに限らない。一つ又は複数の「串刺し演算データ単位」を別のファイルに保存したり、「串刺し演算データ単位」の一部を他ファイルに保存、つまり一覧表シート、集計データシートや元データシートを別々のファイルに保存する等も可能である。これらの場合にはマクロの他、表計算ソフトウェア１６の基本機能に含まれるファイル間のデータ参照機能を活用可能である。
（ｅ）セルの入力内容に応じた警告機能（セルの表示態様変更手段）
【０３６８】
セルの内容（定義情報Ｓ）が所定の条件の場合に、当該セルを或る表示態様で表示させる手段であり、入力した値に応じてセルの表示態様が変化するため、警告機能として利用できる。また、初期状態であっても部分的に表示態様が異なるセルが存在するようになるため、シートの装飾性や視認性を高めることもできる。この警告機能や装飾性・視認性を高める設定は、マクロにより再定義され、維持される。
【０３６９】
これら（ａ）〜（ｅ）の機能はいずれも、状態更新処理手段１７のマクロ（再定義マクロ）が或るイベントを契機として起動し、セルの状態を更新する（再定義する）ものである。
【０３７０】
［イベント］
本実施形態では、ChangeイベントとDeActivateイベントの発生を契機として、状態更新処理を実行する。ただし、上記（ａ）の第１状態更新処理手段１７１による状態更新処理は、イベントとは関係なく、各マクロ（会計基本マクロおよび／または再定義マクロ）の中で、必要に応じて利用される。
【０３７１】
上記（ｂ）の機能は、ChangeイベントおよびDeActivateイベントの発生を契機とし、上記（ｃ）の機能は、Changeイベントが、リスト形式のシートで発生した場合、あるいは、Changeイベントが、帳票形式のシートで発生した場合、あるいは、DeActivateイベントが発生した場合（リスト・帳票、形式不問）を契機とし、上記（ｄ）の機能は、DeActivateイベントが、対象のシートで発生した場合を契機とし、上記（ｅ）の機能は、DeActivateイベントが、対象のシートで発生した場合を契機としている。
【０３７２】
なおこれらは一例であり、例えばDeActivateイベント(シートの移動により、対象シートが非Activeになる場合に発生する)に変えて、Activateイベント(シートの移動により、対象シートがActiveになる場合に発生する)を契機としてもよいし、DeActivateイベントとActivateイベントの両方を契機としてもよい。
【０３７３】
なお、上述した各イベントは、一例であり、同様の機能を有するイベントや、他のイベントであっても適用できる。また、各イベントを発生させる仕組みをオウン・コードして活用する方法もある。この場合、例えば、ファイル保存時やユーザのボタン押下時などのイベントが挙げられる。
【０３７４】
なお、本実施形態では、状態更新処理手段１７は再定義情報Ｒと、これを参照対象セルにコピーする再定義マクロを用いて、状態を更新する例を説明したが、会計基本マクロに直接、文字列で参照対象セルのアドレスを記載し（例えばアドレスを含む演算式を文字列で記載）し、当該参照対象セルはユーザの操作を禁止する構成を含むようにしてもよい。この場合、行や列の挿入があり、セルのアドレスが移動した場合には、会計基本マクロ内に文字列で記載された参照対象セルのアドレス（例えばアドレスを含む演算式）を手動で書き換える。
【０３７５】
また、再定義情報Ｒは、任意のシート（定義情報Ｓと同一のファイル内のシートとは限らない）の任意のセルに記録し、再定義情報設定領域２５には、再定義情報Ｒの記録されたセルへの参照（ファイル名、シート名、セルアドレス、範囲名など）を記録する構成にしても良い。この場合においても、定義情報Ｓの属するシート上で、行・列の追加・削除があった時は（一定の条件があるが）、表計算ソフトウェア１６の自動修正機能によって、再定義情報Ｒの内容は修正される。
【０３７６】
また、再定義情報Ｒを、定義情報生成欄２７のセルに属するオブジェクトやプロパティに記録する方法でもよい。
【０３７７】
例えば、第４状態更新手段１７４において、相手先名欄（元データシートのセル）に属するコメント（オブジェクト）の値（プロパティ）に、演算式などを（文字列の形式で）記録する構成にしてもよい。この場合、行や列の挿入があり、セルのアドレスが移動した場合には、コメントの値として文字列で記載された参照対象セルのアドレス（例えばアドレスを含む演算式）を手動で書き換える。
【０３７８】
また、相手先名欄に属するコメントの値に再定義情報Ｒの記録されたセルへの参照を記録する構成でもよい。
【０３７９】
また本実施形態の状態更新手段１７による状態更新処理は、状態更新処理プログラム２３中に演算式を保存したり、再定義情報Ｒ（例えばアドレスを含む演算式）を定義情報Ｓの領域中に保存して選択するなどの方法、によってもよい。具体的には例えば、行挿入時に独自のイベントを発生させた場合には、隣接する行から演算式を複写するなどしてもよい。
【０３８０】
また、上記の実施形態では、表計算ソフトウェア１６としてエクセル（登録商標）を用いる例を説明したが、同様の機能を有する他の表計算ソフトウェアであっても同様に実施でき、同様の効果が得られる。
【０３８１】
本発明は、また、以上の実施形態で説明した情報処理システムに用いられる情報処理方法である。すなわち、表計算ソフトウェア１６を用いて所定の定型処理を行う情報処理方法であって、定型処理を実行するために、表計算ソフトウェア１６の少なくとも１つのセルに関連して定義された定義情報Ｓを用いた処理を実行するステップと、定義情報Ｓが関連するセル、行、列、シートの少なくともいずれかの操作可能対象について操作がされた場合に、操作予定領域２２領域以外の領域（再定義情報設定領域２５）に予め定義された再定義情報Ｒを用いて操作可能対象についての状態を更新するステップと、を有する情報処理方法である。
【０３８２】
また、本発明は、上記の情報処理方法による処理をコンピュータに実行させる、表計算ソフトウェアを用いた情報処理プログラムである
【０３８３】
また、本発明は、上述の入力手段と、出力手段と、計算処理手段と、状態更新処理手段とを備えて、表計算ソフトウェアを用いて所定の処理の計算を行う計算処理装置である。この計算処理装置は、例えば、上記の計算処理方法による処理をコンピュータに実行させるためのプログラムをコンピュータに実装することによって実現できる。
【０３８４】
このように、本実施形態の会計処理システム１０は、表計算ソフトウェア１６を利用することで、従来の手書き帳簿のようにユーザにとってなじみのある環境を再現しつつ、更にはユーザの軽微なカスタマイズを許容しつつ利便性の高い運用を可能としている。
【０３８５】
つまり、ユーザの操作の利便性や汎用性を高めるため、ユーザの入力制限や操作の制限は可能な限り少なくしている。このため、基本機能は可能な限り活用し、ユーザによる軽微なカスタマイズ（行の挿入・削除やシートの追加・削除・複製など）を認め、また操作予定領域２２も可能な限り広く（非表示領域をなるべく少なく）する（シートの追加や差換え、表組の変更などのセル操作を許容する）とともに、操作予定領域２２においては任意の入力を許容するように構成されている。
【０３８６】
さらに、ユーザが、定義情報Ｓが定義（設定）されているセルに関連する行、列、セル、シートの少なくともいずれかの操作可能対象について操作（追加、削除等）することによって、会計処理システム１０に本来想定されている処理が行えない（想定される適切な結果が得られない）状態となった場合であっても、状態更新処理手段１７が再定義情報Ｒ及び再定義マクロを用いて少なくとも一つのセルに定義情報Ｓを再定義することによって、操作可能対象を、本来想定されている処理が行える（想定される適切な結果が得られる）状態に戻すことができる。これにより、例えば、表計算ソフトウェア１６における、「シート保護」、「ブック保護」の機能を利用せずに、安定的な運用が実現できる。
【０３８７】
なお、以上説明した状態更新手段１７は、第１状態更新手段１７１〜第４状態更新手段１７４の全てが含まれる構成であってもよいし、一部が含まれる構成であってもよいし、一部を適宜組合わせて適用することもできる。
【０３８８】
また、上記の実施形態では、情報処理システム１０として会計処理を行う会計処理システムを例に説明したが、本発明は、表計算ソフトウェアを用いた情報処理システムであれば上記の例に限らない。例えば、売上、成績の管理、在庫や生産の管理など様々な業務で利用される表計算ソフトウェアを用いた情報処理システムにおいても上記の実施形態を同様に適用可能であり、同様の効果が得られる。
【０３８９】
尚、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【０３９０】
１    会計システム（会計端末装置）
２    入力部
３    演算処理部
３a    会計処理部
３ｂ    自動化処理部
４    出力部
１０    情報処理システム（会計処理システム）
１１    入力手段
１２    出力手段
１３    制御手段
１４    記憶手段
１５    基本処理手段
１６    表計算ソフトウェア
１７    状態更新処理手段
１９    情報処理端末
２０    情報処理プログラム（会計処理プログラム）
２１    会計基本処理プログラム
２２    操作予定領域
２３    状態更新処理プログラム
２５    再定義情報設定領域
２７    定義情報生成欄
３０    参照先シート名欄
３３    集約領域
３５    名称変換算式の参照領域
１７１    第１状態更新処理手段
１７２    第２状態更新処理手段
１７３    第３状態更新処理手段
１７４    第４状態更新処理手段
【図１】
2018077844.tif 000003
【図２】
2018077844.tif 000004
【図３】
2018077844.tif 000005
【図４】
2018077844.tif 000006
【図５】
2018077844.tif 000007
【図６】
2018077844.tif 000008
【図７】
2018077844.tif 000009
【図８】
2018077844.tif 000010
【図９】
2018077844.tif 000011
【図１０】
2018077844.tif 000012
【図１１】
2018077844.tif 000013
【図１２】
2018077844.tif 000014
【図１３】
2018077844.tif 000015
【図１４】
2018077844.tif 000016
【図１５】
2018077844.tif 000017
【図１６】
2018077844.tif 000018
【図１７】
2018077844.tif 000019
【図１８】
2018077844.tif 000020
【図１９】
2018077844.tif 000021
【図２０】
2018077844.tif 000022
【図２１】
2018077844.tif 000023
【図２２】
2018077844.tif 000024
【図２３】
2018077844.tif 000025
【図２４】
2018077844.tif 000026
【図２５】
2018077844.tif 000027
【図２６】
2018077844.tif 000028