(57)【要約】【課題】版数管理された適切なスプレッドシートをユーザに使用させ、さらに、ユーザが監査対象である証跡と認めたスプレッドシートだけを適切な場所に保存する。【解決手段】スプレッドシート内部統制システム１００は、表計算ソフトウェア１１０がインストールされたコンピュータ１２０を含み、表計算ソフトウェアのアドイン１８０は、スプレッドシート１３０に付与されていてユーザが参照できない隠しシート１３０ａの情報を読み取り可能であり、読み取った情報に応じて動作する。アドイン１８０は、スプレッドシートをオープンする際、隠しシート１３０ａに含まれている所定のパスでしか、スプレッドシート１３０をオープンさせない。また、スプレッドシートをクローズする際、演算結果を、証跡としてセーブすべきフォルダ２３０または２４０にセーブする。【選択図】図１
2010039652.tif 000002
【特許請求の範囲】
【請求項１】
スプレッドシートにパラメータを入力して演算可能な表計算ソフトウェアと、
前記表計算ソフトウェアがインストールされたコンピュータと、
を含み、
前記表計算ソフトウェアは、管理対象であるスプレッドシートだけに付与されていてユーザが参照できない隠しシートの情報を読み取り可能であり該読み取った情報に応じて動作するアドインを有し、
管理対象であるスプレッドシートの隠しシートには、該スプレッドシートが格納されるべきパスを含めることが可能であり、
前記アドインは、
管理対象であるスプレッドシートをオープンする際、該スプレッドシートの隠しシートに含まれている前記パスが、該スプレッドシートが現在格納されているパスと一致しているか否かを確認し、
前記確認の結果が不一致の場合、ユーザに警告を発することを特徴とするスプレッドシート内部統制システム。
【請求項２】
スプレッドシートにパラメータを入力して演算可能な表計算ソフトウェアと、
前記表計算ソフトウェアがインストールされたコンピュータと、
を含み、
前記表計算ソフトウェアは、管理対象であるスプレッドシートだけに付与されていてユーザが参照できない隠しシートの情報を読み取り可能であり該読み取った情報に応じて動作するアドインを有し、
管理対象であるスプレッドシートの隠しシートには、該スプレッドシートによる最終結果または中間結果を証跡としてセーブすべきパスと、該スプレッドシートの状態識別子である原本／最終結果／中間結果を含めることが可能であり、
前記アドインは、
管理対象であるスプレッドシートをクローズする際、前記状態識別子が原本であれば最終結果または中間結果に書き換え、該スプレッドシートの種別が正式／検算／試算のいずれであるかをユーザに確認して前記隠しシートに記録し、
前記記録した種別が正式または検算の場合に限り、前記証跡としてセーブすべきパスにスプレッドシートをセーブすることを特徴とするスプレッドシート内部統制システム。
【請求項３】
前記アドインは、
前記記録した種別が正式または検算の場合に、前記証跡としてセーブすべきパスへのスプレッドシートのセーブが失敗した場合、前記隠しシートに、未登録の旨を追記し、
前記未登録の旨が追記された隠しシートを有するスプレッドシートが再びオープンされたときには、該未登録の旨を削除して、前記証跡としてセーブすべきパスにセーブすることを特徴とする請求項２に記載のスプレッドシート内部統制システム。
【請求項４】
前記アドインは、
前記種別に拘らず、前記状態識別子が最終結果または中間結果に書き換えられたスプレッドシートを前記コンピュータにセーブ可能であり、
前記セーブされたスプレッドシートが再びオープンされたとき、前記状態識別子が最終結果である場合には、該スプレッドシートの再編集をロックし、前記状態識別子が中間結果である場合には、該スプレッドシートの再編集を可能にすることを特徴とする請求項２または３に記載のスプレッドシート内部統制システム。
【請求項５】
前記隠しシートに含まれる、スプレッドシートによる最終結果または中間結果を証跡としてセーブすべきパスは、前記種別が正式である場合と検算である場合とにそれぞれ対応して２つ存在し、
前記アドインは、
前記種別に応じて、前記２つのパスのいずれかにスプレッドシートをセーブすることを特徴とする請求項２に記載のスプレッドシート内部統制システム。
【請求項６】
原本のスプレッドシートを複数保有・提供し、該スプレッドシートの識別子、最新版数および検算要否を対応づけたテーブルを有するファイルサーバをさらに含み、
前記ファイルサーバは、
前記証跡としてセーブすべきパスに、状態識別子が最終結果または中間結果で種別が検算のスプレッドシートがセーブされた場合は、前記テーブルにおいて、該スプレッドシートの識別子および版数に対応する検算要否を否に変更し、
前記アドインは、管理対象であるスプレッドシートをオープンする際、前記テーブルにおいて、該スプレッドシートの識別子および版数に対応する検算要否が要である場合に限り、ユーザに検算を促す警告を発することを特徴とする請求項５に記載のスプレッドシート内部統制システム。
【請求項７】
管理対象であるスプレッドシートの隠しシートには、該スプレッドシートが原本としてリリースされた時のファイルサイズをさらに含めることが可能であり、
前記アドインは、
管理対象であるスプレッドシートをオープンする際、該スプレッドシートの実際のファイルサイズと、該スプレッドシートの隠しシートに含まれている、前記リリースされた時のファイルサイズとを比較し、
前記比較の結果が不一致の場合、ユーザに警告を発することを特徴とする請求項１から６のいずれか１項に記載のスプレッドシート内部統制システム。
【請求項８】
管理対象であるスプレッドシートには、予め表示サイズを最小化してロックする表示サイズロックがかけられていて、
前記アドインは、管理対象であるスプレッドシートをオープンする際、前記表示サイズロックを解除することを特徴とする請求項１から７のいずれか１項に記載のスプレッドシート内部統制システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、企業などの組織で用いられるスプレッドシートを組織内で内部統制するスプレッドシート内部統制システムに関するものである。
【背景技術】
【０００２】
２００６年、金融商品取引法が成立し、新たな内部統制のルールとしてＪ−ＳＯＸ（日本版ＳＯＸ法）が２００８年から施行されることになったことに伴い、企業の内部統制の重要性が再認識されている。
【０００３】
Ｊ−ＳＯＸ法では、（１）財務報告に係る内部統制の有効性を評価した「内部統制報告書」の作成、（２）外部監査法人などによる内部統制監査を受けること、の２点が義務付けられている。
【０００４】
一方、Ｅｘｃｅｌ（登録商標）に代表される表計算ソフトウェアで扱われるスプレッドシートは、簡便でＥＵＣ（End User Computing）可能な計算手段として普及してきた。Ｊ−ＳＯＸが義務付けている財務諸表の報告に影響するプロセスにおいても、スプレッドシートが多用されている（例えば特許文献１）。スプレッドシートを用いれば、必要なパラメータを入力して演算することにより、財務諸表を簡便に作成可能だからである。
【特許文献１】特開２００６−３１８５０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしスプレッドシートは、ＥＵＣ環境で利用されてきたことから、個人のアイデアに基づいて作成されたものが多く、改良や改造も自由で、版数管理やアクセス管理などが現場任せになっている。Ｊ−ＳＯＸの施行により、スプレッドシートによる演算結果（演算が完結した最終結果、および、演算の途中である中間結果、の両方を含む）は監査対象となり得るため、かかるスプレッドシートは、管理する必要のないスプレッドシートと峻別し、厳格に版数管理やアクセス管理を行う必要がある。
【０００６】
従来の版数管理は、ファイルサーバに最新版のスプレッドシートを用意し、これをダウンロードさせることで行われていた。しかし、ユーザに、常にファイルサーバにアクセスすることを義務付けるのは難しく、ユーザは、自己のローカルなコンピュータにダウンロードした古い版のスプレッドシートを再編集して使用し、誤った演算結果を作成してしまうおそれがあった。
【０００７】
また、スプレッドシートを用いて作成された、監査対象となる演算結果は、自由な改良や改造から守る必要があるため、証跡として残す必要がある。ただし、ユーザは、たとえ最新版のスプレッドシートを用いた場合であっても、監査対象である証跡として演算結果を出力することもあれば、単なる試算として演算結果を出力することもある。こうしたユーザの意図に応じて演算結果を峻別し、ユーザが証跡と認めたものだけを適切な場所に保存しなければ、不適切なスプレッドシートが監査対象になり、監査における混乱を招くおそれもある。
【０００８】
本発明は、このような課題に鑑み、従来の自由なＥＵＣ環境から脱却し、版数管理された適切なスプレッドシートをユーザに使用させ、さらに、ユーザが監査対象である証跡と認めた演算結果だけを適切な場所に保存することが可能なスプレッドシート内部統制システムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明にかかるスプレッドシート内部統制システムの代表的な構成は、スプレッドシートにパラメータを入力して演算可能な表計算ソフトウェアと、表計算ソフトウェアがインストールされたコンピュータと、を含み、表計算ソフトウェアは、管理対象であるスプレッドシートだけに付与されていてユーザが参照できない隠しシートの情報を読み取り可能であり読み取った情報に応じて動作するアドインを有し、管理対象であるスプレッドシートの隠しシートには、スプレッドシートが格納されるべきパスを含めることが可能であり、アドインは、管理対象であるスプレッドシートをオープンする際、スプレッドシートの隠しシートに含まれているパスが、スプレッドシートが現在格納されているパスと一致しているか否かを確認し、確認の結果が不一致の場合、ユーザに警告を発することを特徴とする。
【００１０】
上記の構成によれば、そのスプレッドシートが管理対象であるか否かは、隠しシートが付与されているか否かで峻別されている。
【００１１】
そして、管理対象のスプレッドシートをオープンする際、ファイルサーバ内などの所定のパスに格納されていないと、警告が与えられる。これにより、ローカルなコンピュータに管理対象スプレッドシートをダウンロードして自由に編集することを制限する。すなわち、ユーザはルールに違反してダウンロードしたスプレッドシートを使用することができないため、使用の都度、ダウンロードすることになり、最新版をファイルサーバにアップロードしておくことにより、簡単に版数管理が実現できる。
【００１２】
ファイルサーバからファイル（スプレッドシート）をローカルなコンピュータにダウンロードすること自体は、オペレーティングシステムのレベルでは、禁止できない。そこで、アドインの機能により、スプレッドシートが現在格納されているパスが適切であるか否かをチェックし、ユーザに警告を与えるものである。
【００１３】
さらに、上記課題を解決するために、本発明にかかるスプレッドシート内部統制システムの他の代表的な構成は、スプレッドシートにパラメータを入力して演算可能な表計算ソフトウェアと、表計算ソフトウェアがインストールされたコンピュータと、を含み、表計算ソフトウェアは、管理対象であるスプレッドシートだけに付与されていてユーザが参照できない隠しシートの情報を読み取り可能であり読み取った情報に応じて動作するアドインを有し、管理対象であるスプレッドシートの隠しシートには、スプレッドシートによる最終結果または中間結果を証跡としてセーブすべきパスと、スプレッドシートの状態識別子である原本／最終結果／中間結果を含めることが可能であり、アドインは、管理対象であるスプレッドシートをクローズする際、状態識別子が原本であれば最終結果または中間結果に書き換え、スプレッドシートの種別が正式／検算／試算のいずれであるかをユーザに確認して隠しシートに記録し、記録した種別が正式または検算の場合に限り、証跡としてセーブすべきパスにスプレッドシートをセーブすることを特徴とする。
【００１４】
「原本」は、マクロや計算式を含んでいるものの、演算のためのパラメータ（入力値）が入力されていないスプレッドシートである。「最終結果」はパラメータの入力により演算結果を表示しているスプレッドシートであり、演算が完結しているとユーザが判断したものである。「中間結果」も、パラメータの入力により演算結果を表示しているスプレッドシートであり、演算が未だ完結していない、中間結果であるとユーザが判断したものである。
【００１５】
かかるユーザの判断に応じて、状態識別子が最終結果または中間結果のいずれに書き換えられるかが決定される。
【００１６】
スプレッドシートの種別「正式」は、公式のデータを入力した、証跡して残すべき演算結果である。「検算」は、検算用のデータを入力した、証跡として残すべき演算結果である。「試算」は非公式のデータを入力して試しに行った演算結果スプレッドシートである。
【００１７】
スプレッドシートが、証跡としてセーブされるべきもの（証跡要）である場合には、隠しシートには、スプレッドシートによる最終結果または中間結果を証跡としてセーブすべきパスが含まれている。その場合、ユーザにメッセージを発して、スプレッドシートが正式であるか、検算であるか、試算であるかを確認する。そして「正式」または「検算」のスプレッドシートを、証跡としてセーブすべきパスにセーブし、監査対象とすることができる。
【００１８】
アドインは、記録した種別が正式または検算の場合に、証跡としてセーブすべきパスへのスプレッドシートのセーブが失敗した場合、隠しシートに、未登録の旨を追記し、未登録の旨が追記された隠しシートを有するスプレッドシートが再びオープンされたときには、未登録の旨を削除して、上記の証跡としてセーブすべきパスにセーブしてよい。
【００１９】
未登録のスプレッドシートは、証跡としてセーブすべきパスへのセーブが失敗したものである。そこで、証跡としてセーブすべきパスへ再びセーブし、未登録の旨を削除する。
【００２０】
アドインは、上記の種別に拘らず、状態識別子が最終結果または中間結果に書き換えられたスプレッドシートをコンピュータにセーブ可能であり、セーブされたスプレッドシートが再びオープンされたとき、状態識別子が最終結果である場合には、スプレッドシートの再編集をロックし、状態識別子が中間結果である場合には、スプレッドシートの再編集を可能にしてよい。
【００２１】
これにより、ローカルなコンピュータにセーブされた「最終結果」は、再編集できない。言い換えれば、スプレッドシートによる演算は常に、未使用のもの（「原本」）を使ってしか実行できない。このように「最終結果」の編集をロックする目的は、最終結果の再編集を不能にし、常に原本のスプレッドシートを用いて演算させるためである。また、一度利用したスプレッドシートを再利用する場合、昔のデータを消し忘れて計算してしまうなどのミスを防止するためである。
【００２２】
一方、ローカルなコンピュータにセーブされた「中間結果」は、再編集が可能である。これは、月次データなどを順次追加して演算をする場合などに適用されるものであり、演算の都度の結果は証跡取得の対象となる。
【００２３】
隠しシートに含まれる、スプレッドシートによる最終結果または中間結果を証跡としてセーブすべきパスは、種別が正式である場合と検算である場合とにそれぞれ対応して２つ存在し、アドインは、種別に応じて、２つのパスのいずれかにスプレッドシートをセーブしてよい。証跡としてセーブするスプレッドシートを分類し、扱い易くするためである。
【００２４】
原本のスプレッドシートを複数保有・提供し、スプレッドシートの識別子、最新版数および検算要否を対応づけたテーブルを有するファイルサーバをさらに含み、ファイルサーバは、証跡としてセーブすべきパスに、状態識別子が最終結果または中間結果で種別が検算のスプレッドシートがセーブされた場合は、テーブルにおいて、スプレッドシートの識別子および版数に対応する検算要否を否（検算が完了を示す）に変更し、アドインは、管理対象であるスプレッドシートをオープンする際、テーブルにおいて、スプレッドシートの識別子および版数に対応する検算要否が要である場合に限り、ユーザに検算を促す警告を発してよい。
【００２５】
原本としてリリースしたばかりの最新版のスプレッドシートは、未だユーザによる検算がなされていず、信頼性に欠けるおそれがある。そこで本発明では、システム管理者が検算の要請を行うことができるようにしている。未検算の原本スプレッドシートを使用したユーザが、演算結果スプレッドシート（種別：検算）をファイルサーバにセーブするまで、その原本スプレッドシートを使用するユーザにアドインが警告（「検算してください」という要請）を発するよう、テーブルにおける検算要否を「要」にしておく。ユーザによって検算が行われ、演算結果スプレッドシート（種別：検算）がファイルサーバにセーブされた後、すなわち証跡として退避した後は、テーブルの検算要否を「否」とし、警告を発しないようにする。このように、スプレッドシートが少なくとも１回は検算されたことがテーブルに記録される。
【００２６】
管理対象であるスプレッドシートの隠しシートには、スプレッドシートが原本としてリリースされた時のファイルサイズをさらに含めることが可能であり、アドインは、管理対象であるスプレッドシートをオープンする際、スプレッドシートの実際のファイルサイズと、スプレッドシートの隠しシートに含まれている、リリースされた時のファイルサイズとを比較し、比較の結果が不一致の場合、ユーザに警告を発してよい。ウィルスに感染した可能性のあるスプレッドシートの使用を回避するためである。
【００２７】
管理対象であるスプレッドシートには、予め表示サイズを最小化してロックする表示サイズロックがかけられていて、アドインは、管理対象であるスプレッドシートをオープンする際、表示サイズロックを解除してよい。
【００２８】
このように、予め表示サイズを最小化してロックされたスプレッドシートは、スプレッドシートの内容を参照できないため、事実上、アドインレスコンピュータ（アドイン無しの表計算ソフトウェアしかインストールされていないコンピュータ）では、編集できない。管理対象スプレッドシートを編集可能なコンピュータを、アドイン有り表計算ソフトウェアがインストールされたコンピュータに限定でき、アクセス管理が向上する。
【発明の効果】
【００２９】
本発明によれば、最新版スプレッドシートが用意されたサーバからローカルな環境にダウンロードしておき、利用に際して最新版か否かを確認する、従来のダウンロード形態の運用に加え、所定のパスでなければスプレッドシートがオープンできないという、ダウンロードを禁止する運用も行う。これにより、ユーザは、ローカルなコンピュータにスプレッドシートをダウンロードして自由に編集することができないため、使用の都度、最新版をファイルサーバ上の所定のパスにてオープンする必要がある。したがって、ファイルサーバに最新版をアップロードしておくことにより、簡単に版数管理が実現できる。
【００３０】
また、ユーザが、監査対象である証跡が必要と認めた演算結果だけを適切な場所に保存することが可能なスプレッドシート内部統制システムを提供することを目的としている。
【００３１】
さらに、ローカルなコンピュータにセーブされた演算結果スプレッドシートに編集ロックをかけ、再編集を不能にする。これにより、パラメータが入力されていない原本のスプレッドシートだけを繰り返し使用させ、再利用に伴うデータの加工ミスの防止や、証跡の確実な取得など管理の強化が可能になる。
【発明を実施するための最良の形態】
【００３２】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示に過ぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書及び図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【００３３】
図１は、本実施形態にかかるスプレッドシート内部統制システムの構成図である。スプレッドシート内部統制システム１００は、スプレッドシートにパラメータを入力して演算可能な表計算ソフトウェア１１０と、表計算ソフトウェア１１０がインストールされたコンピュータ１２０とを含む。
【００３４】
スプレッドシート内部統制システム１００はさらに、原本のスプレッドシート（管理対象スプレッドシート１３０）を複数保有・提供するファイルサーバ１５０を含む。コンピュータ１２０とファイルサーバ１５０は、典型的には、組織内のＬＡＮ（Local Area Network）１５２を介して接続されている。
【００３５】
ここで「管理対象」とは、そのスプレッドシートにパラメータを入力した演算結果が監査の対象となったり、少なくとも組織内にて版数管理がなされたりするスプレッドシートを意味する。「管理対象外」とは、監査や版数管理の対象とならないスプレッドシートであり、ユーザが個人的に自己のローカルなコンピュータ１２０に保存しているスプレッドシート１４０がこれに該当する。
【００３６】
本実施形態によれば、管理対象か否かは、スプレッドシートに隠しシートが付与されているか否かで峻別される。例えば管理対象スプレッドシート１３０、１９０、１９２、２００、２０２には、それぞれ、隠しシート１３０ａ、１９０ａ、１９２ａ、２００ａ、２０２ａが付与されている。隠しシート１３０ａ、１９０ａ、１９２ａ、２００ａ、２０２ａをユーザは参照できない。参照できるのは、アドイン（ソフトウェアに追加される拡張機能。アドインプログラム）１８０を有するソフトウェアだけであり、表計算ソフトウェア１１０がこれに該当する。アドイン１８０は、隠しシート１３０ａ、１９０ａ、１９２ａ、２００ａ、２０２ａの情報を読み取りおよび変更可能であり、読み取った情報に応じて動作する。
【００３７】
スプレッドシートは、その状態識別子に応じて、「原本」、「最終結果」または「中間結果」に分類される。「原本」とは、マクロや計算式を含んでいるものの、演算のためのパラメータ（入力値）が入力されていないスプレッドシートを意味する。ユーザは、ファイルサーバ１５０から提供される、この原本スプレッドシートを用いて、演算を行う。管理対象スプレッドシート１３０がこの「原本」に該当する。
【００３８】
「最終結果」は、パラメータ入力済みの演算結果を表示しているスプレッドシートであり、演算が完結しているとユーザが判断したものである。管理対象スプレッドシート１９０、２００、２５０がこれに該当する。
【００３９】
１度のパラメータ入力で演算が完結するタイプのスプレッドシートであれば１度の入力で「最終結果」となる。投信の年間データなど、毎月パラメータを入力する必要があり、反復利用されるタイプのスプレッドシートの場合は、複数回の入力を経て、ユーザの判断により「最終結果」となる。
【００４０】
「中間結果」も、パラメータの入力により演算結果を表示しているスプレッドシートであり、演算が未だ完結していない、中間結果であるとユーザが判断したものである。管理対象スプレッドシート１９２、２０２、２５２がこれに相当する。反復利用されるタイプのスプレッドシートにおいて、途中までパラメータが入力され、ユーザが、継続的に利用するものと判断したものが「中間結果」となる。
【００４１】
（隠しシート）
図２は図１の隠しシートの情報を示す図である。代表として、隠しシート１３０ａを用いて説明する。隠しシート１３０ａには、少なくとも、スプレッドシートの識別子（通常はファイル名）、版数、スプレッドシート状態識別子（原本、最終結果または中間結果）、ダウンロード形態、反復利用されるタイプのスプレッドシートか否かの情報、証跡要否、表示サイズロック解除情報、隠しシート解除情報、リリース時ファイルサイズ、警告ログ収集指定（および宛先メールアドレス）が含まれる。
【００４２】
（管理テーブル）
図３は、図１のファイルサーバ１５０が有する管理テーブル１６０を示す図である。管理テーブル１６０は、原本のスプレッドシートの識別子、最新版数および検算要否を対応づけたテーブルである。「検算要否」は、リリースされたばかりのスプレッドシートの信頼性を確認するため、それを使用するユーザに検算を促すか否かを表す情報である。
【００４３】
スプレッドシート１３０、１９０、１９２、２００、２０２および管理テーブル１６０は、すべて、ファイルサーバ１５０の記憶装置２１０に記憶されている。
【００４４】
（ＳＳオープン時のアドイン動作）
図４は、スプレッドシートをコンピュータ１２０の表計算ソフトウェア１１０（アドイン１８０有り）を用いてオープンする際の動作を示すフローチャートである。このオープン時の処理の目的は、スプレッドシートの版数管理である。本実施形態の版数管理の特徴は、従来から行われていた、ダウンロードを許可する運用に加え、ダウンロードを禁止する運用も用いることである。以下、詳しく説明する。
【００４５】
図２に示すように、隠しシートは、スプレッドシートが格納されるべきパス（原本記憶フォルダ２２０を指定）を含んでいる。スプレッドシートのダウンロード形態は、「ダウンロード許可」または「ダウンロード禁止」であり、いずれかを有効にできる。アドイン１８０は、スプレッドシートを表計算ソフトウェア１１０でオープンする際（ステップＳ３００）、まず、そのスプレッドシートが管理対象か否か、すなわち隠しシートを有しているか否かを判断する（ステップＳ３０２）。管理対象でない場合には、即座にオープンのみ行う（ステップＳ３０４）。
【００４６】
管理対象である場合には、隠しシートのダウンロード形態を参照し（ステップＳ３１０）、「ダウンロード許可」が有効な場合には、アドイン１８０は、図３の管理テーブル１６０を参照し、そのスプレッドシートの識別子と同一の識別子に対応する最新版数と、隠しシートの版数とを比較する（ステップＳ３７０）。一致していればそのままスプレッドシートをオープンし（ステップＳ３５０）、不一致であれば、最新版のスプレッドシートでない旨、警告（旧版警告）を発する（ステップＳ３８０）。
【００４７】
ステップＳ３８０では、隠しシートに記載の「挙動」に応じて、警告のうえオープンを許可する旨（挙動＝１）、あるいは、警告のうえオープンを許可しない旨（挙動＝２）、もユーザに知らせ、ステップＳ３９０に進む。挙動＝１ならオープンし（ステップＳ３５０）、挙動＝２ならオープン不能（ステップＳ３６０へ進む）にする。
【００４８】
一方、「ダウンロード禁止」が有効であれば、隠しシートに含まれているパスで指定される原本記憶フォルダ２２０が、スプレッドシートが現在格納されているパスと一致しているか否かを確認し（ステップＳ３２０）、確認の結果が不一致の場合、ユーザにパス相違警告を発する（ステップＳ３３０）。すなわち、所定のパスからの起動でないこと、および登録時に設定された挙動（＝３または４）によりオープンを許すか、許さないかの警告を与え、ステップＳ３４０へ進む。確認の結果が一致する場合はオープン実行する（ステップＳ３５０）。
【００４９】
ユーザがファイルサーバ１５０からファイル（スプレッドシート）をコンピュータ１２０にダウンロード（コピー）すること自体は、オペレーティングシステムのレベルでは、禁止できない。そこで、アドイン１８０の機能により、スプレッドシートが現在格納されているパス（コンピュータ１２０内）が不適切であることを検知し、ユーザに上記の警告を与える。これにより、ローカルなコンピュータ１２０に管理対象スプレッドシートをダウンロードして自由に編集することを制限する。すなわち、ユーザはルールに違反してダウンロードしたスプレッドシートを使用することができないため、使用の都度、ダウンロードすることになり、システム管理者は最新版をファイルサーバにアップロードしておくことにより、簡単に版数管理が実現できる。
【００５０】
ステップＳ３４０では、挙動＝３ならオープン実行し（ステップＳ３５０へ進む）、挙動＝４ならオープン不能（ステップＳ３６０へ進む）とする。
【００５１】
スプレッドシートをオープンした後の検算（ステップＳ３６２およびＳ３６４）については、後述する。
【００５２】
（ＳＳクローズ時のアドイン動作）
図２の隠しシート１３０ａには、スプレッドシート１３０による演算結果を証跡としてセーブすべきパス（正式SS記憶フォルダ２３０、検算SS記憶フォルダ２４０を指定）と、スプレッドシートの状態識別子である原本／演算結果／中間結果が含まれている。
【００５３】
図５はスプレッドシートをクローズする際のアドイン１８０の動作を示すフローチャートである。アドイン１８０は、スプレッドシートをクローズする際（ステップＳ４００）、まず、そのスプレッドシートが管理対象か否か、すなわち隠しシートを有しているか否かを判断する（ステップＳ４０２）。管理対象でない場合には、即座にコンピュータ１２０へのセーブ（ローカルセーブ）を行う（ステップＳ４８０）。例えば、図１の管理対象外スプレッドシート１４０は、このようにしてセーブされたものである。
【００５４】
管理対象である場合には、まず、そのスプレッドシートが未登録であるか否かを確認する（ステップＳ４１７）。「未登録」とは、詳しくは後述するが、証跡としてセーブすることに失敗したスプレッドシートであることを意味する。
【００５５】
未登録でない場合には、スプレッドシートの状態識別子が「原本」、「中間結果」または「最終結果」のいずれであるかを確認する（ステップＳ４１０）。原本のときは、アドイン１８０は、スプレッドシートが反復利用されるタイプのものか否かを隠しシート（図３）で確認し（ステップＳ４１９）、該当しない場合には、状態識別子が「最終結果」に書き換えられる（ステップＳ４１２）。１度のパラメータ入力で演算が完結するタイプのスプレッドシートだからである。
【００５６】
反復利用されるタイプのものである場合には、継続利用するか否かをユーザに確認する（ステップＳ４２１）。演算が未だ完結していない場合には、継続利用する（中間結果である）とユーザは判断し、状態識別子が「中間結果」に書き換えられる（ステップＳ４１３）。演算が完結している場合には、継続利用しない（最終結果である）とユーザは判断し、状態識別子が「最終結果」に書き換えられる（ステップＳ４１２）。
【００５７】
次に、ユーザに対し、スプレッドシートの種別を確認する（ステップＳ４２３）。すなわち、正式（公式のデータを入力した演算結果）であるか、検算（検算用のデータを入力した検算結果。検算用のデータは、通常、スプレッドシート中に提供されていて、ユーザが自由に使用可能である）であるか、試算（非公式のデータを入力した演算結果）であるかを確認し、隠しシートに記録する。
【００５８】
ステップＳ４１０において、既に「中間結果」である場合には、継続利用するか否かをユーザに確認し（ステップＳ４２５）、継続利用の場合には、種別（正式／検算／試算）は決定されているので、ステップＳ４２０に進む。継続利用でない場合には、状態識別子を「最終結果」に書き換えてステップＳ４２０に進む。
【００５９】
ステップＳ４２０において、隠しシートに記録した種別が「試算」の場合は、証跡として残す必要がないため、ローカルセーブ（ステップＳ４８０）して終了する。一方、隠しシートに記録した種別が「正式」または「検算」の場合に限り、演算結果が、監査対象である証跡としてセーブされるべきか否かをしめす証跡要否を確認する（ステップＳ４１５）。これは、スプレッドシートの隠しシートに記載の「証跡要否」が「要」「否」いずれであるかを読み取ることによって行う。
【００６０】
証跡としてセーブする必要のない「否」の場合には、ローカルセーブ（ステップＳ４８０）して終了する。一方、証跡としてセーブされるべきものである「要」の場合には、所定のフォルダ（図２のパスで指定される正式SS記憶フォルダ２３０または検算SS記憶フォルダ２４０）にセーブ（登録）する（ステップＳ４２７）。このように種別に応じて２つのフォルダ２３０、２４０を用意し、証跡としてセーブするスプレッドシートを分類し、扱い易くしている。上記パスは、最終結果と中間結果とで、さらに別々のフォルダを指定し、計４つのフォルダに証跡をセーブしてもよい。
【００６１】
以上のようにして、「原本」であったスプレッドシートを、パラメータを入力された「中間結果」または「最終結果」スプレッドシートとして、適切な場所にセーブし、監査対象とすることができる。
【００６２】
アドイン１８０は、記録した種別が「正式」または「検算」の場合に、証跡としてセーブすべきパスへのスプレッドシートのセーブが、ネットワーク障害など、何らかの原因で失敗した場合か否かを確認する（ステップＳ４５０）。セーブが成功した場合には、それが「検算」スプレッドシートであれば、図３の管理テーブル１６０を参照し、そのスプレッドシートの「検算要否」を「否」にし（ステップＳ４７２）、ローカルセーブ（ステップＳ４８０）して終了する。失敗した場合には、隠しシートの「未登録」（初期状態がOFF）をONにする（ステップＳ４６０）。未登録である旨の警告を表示し（ステップＳ４６２）、ローカルセーブ（ステップＳ４８０）して終了する。
【００６３】
上記のように未登録がONにされてセーブされたスプレッドシートが再びオープンされ、クローズされるときには、ステップＳ４００、Ｓ４０２、Ｓ４１７と進み、未登録ONであるため、ステップＳ４７０に進んで「未登録」をOFFにし、再び証跡としてのセーブが試みられる（ステップＳ４２７）。
【００６４】
（再編集ロック）
一方、「未登録」OFFでセーブされたスプレッドシートが再びオープンされ、クローズされるときには、ステップＳ４１７にて、既に登録されていると判定されるため、ステップＳ４１０に進む。さらにここで、「最終結果」であれば、ローカルセーブせずに終了する。これがいわゆる再編集ロック機能である。
【００６５】
既に述べたように、アドイン１８０は、スプレッドシートの種別が「正式」「検算」「試算」のいずれかに拘らず、スプレッドシートの状態識別子を「中間結果」または「最終結果」に書き換えて、ローカルなコンピュータ１２０にセーブ可能である（ステップＳ４８０）。しかし、状態識別子が「最終結果」に書き換えられてセーブされたスプレッドシート２５０（図１）の再編集は、それが未登録でない限り、ロックされる（ステップＳ４１０から、ローカルセーブのステップＳ４８０をスキップして終了する）。
【００６６】
言い換えれば、スプレッドシートによる演算は常に、未使用のもの（例えば「原本」スプレッドシート１３０）を使ってしか実行できない。「原本」は何度も繰り返し使われるが、一旦セーブすると、状態識別子が「中間結果」または「最終結果」になり、「最終結果」は、上述のように編集ロックし、参照しかできなくする。このように「最終結果」の編集をロックするのは、最終結果の再編集を不能にし、常に原本のスプレッドシートを用いて演算させるためである。また、一度利用したスプレッドシート２５０を再利用する場合に、昔のデータを消し忘れて計算してしまうなどのミスを防止するためである。
【００６７】
（検算要否の確認）
再び図４に戻り、残りのステップＳ３６２、Ｓ３６４について説明する。ファイルサーバ１５０は、図５のＳＳクローズ処理にて、証跡としてセーブすべきフォルダに、状態識別子：演算結果で種別：検算のスプレッドシートがセーブされた場合は、既に述べたように、図３の管理テーブル１６０において、そのスプレッドシートの識別子および版数に対応する検算要否を「否」に変更する（ステップＳ４７２）。アドイン１８０は、スプレッドシートがオープンされると（ステップＳ３５０）、そのスプレッドシートの管理テーブル１６０における検算要否を参照し（ステップＳ３６２）、それが「要」である場合に限り、ユーザに検算を促す警告を発する（ステップＳ３６４）。
【００６８】
原本としてリリースしたばかりの最新版のスプレッドシートは、未だユーザによる検算がなされていず、信頼性に欠けるおそれがある。そこで本実施形態では、システム管理者が検算の要請を行うことができるようにしている。上記のように、未検算の原本スプレッドシート（例えばスプレッドシート１３０）を使用したユーザが、その最終結果スプレッドシート２００（種別：検算）を検算SS記憶フォルダ２４０にセーブするまで、その原本スプレッドシート１３０を使用するユーザに、アドイン１８０は、未検算である旨の警告を発するよう、管理テーブル１６０における検算要否を「要」にしておく。ユーザによって検算が行われ、最終結果スプレッドシート２００（種別：検算）が検算SS記憶フォルダ２４０にセーブされた後、すなわち証跡として退避した後は、検算要否を「否」とし、警告を発しないようにする。このように、スプレッドシートが少なくとも１回は検算されたことが管理テーブル１６０に記録される。
【００６９】
なお、図４および図５の各工程は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
【００７０】
（ウィルス対策）
図２に示すように、管理対象である、例えばスプレッドシート１３０の隠しシート１３０ａには、スプレッドシート１３０が原本としてリリースされた時のファイルサイズ（リリース時ファイルサイズ）が含まれている。アドイン１８０は、スプレッドシート１３０をオープンする際（ステップＳ３５０）、スプレッドシート１３０の実際のファイルサイズと、スプレッドシート１３０の隠しシート１３０ａに含まれている、リリース時ファイルサイズとを比較し、比較の結果が不一致の場合、ユーザに警告を発する。
【００７１】
これは、ウィルスに感染したスプレッドシートの使用を回避するためである。通常、ウィルスに感染すると、スプレッドシートのサイズは、原本としてリリースされた時と異なる。そこで、実際のファイルサイズと、隠しシート内のリリース時ファイルサイズとを比較し、不一致であった場合には、ウィルスに感染しているおそれがあるとして、ユーザに警告を与えることとした。
【００７２】
（表示サイズロック）
管理対象であるスプレッドシート１３０には、予め表示サイズを最小化してロックする表示サイズロックをかけてよく、アドイン１８０は、スプレッドシート１３０をオープンする際、表示サイズロックを解除してよい。具体的には、アドイン１８０に、表示サイズロックを解除するパスワードを持たせておいてもよいし、図２に示すように、隠しシート１３０ａに、表示サイズロック解除パスワードを持たせ、それをアドイン１８０が読み取って解除してもよい。
【００７３】
このように、予め表示サイズを最小化してロックされたスプレッドシートは、オープンされるものの、スプレッドシートの内容を参照できないため、図１に示すアドインレスコンピュータ２６０（アドイン１８０無しの表計算ソフトウェア１１０しかインストールされていないコンピュータ）では、事実上、編集できない。
【００７４】
これにより、管理対象スプレッドシート１３０を編集可能なコンピュータを、アドイン１８０有り表計算ソフトウェア１１０がインストールされたコンピュータ１２０に限定でき、アクセス管理が向上する。
【００７５】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【産業上の利用可能性】
【００７６】
本発明は、企業などの組織の財務報告に用いられるスプレッドシートを組織内で統制するスプレッドシート内部統制システムに利用することができる。
【図面の簡単な説明】
【００７７】
【図１】本実施形態にかかるスプレッドシート内部統制システムの構成図である。
【図２】図１の隠しシートの情報を示す図である。
【図３】図１のファイルサーバが有する管理テーブルを示す図である。
【図４】スプレッドシートをオープンする際のアドインの動作を示すフローチャートである。
【図５】スプレッドシートをクローズする際のアドインの動作を示すフローチャートである。
【符号の説明】
【００７８】
１００  …スプレッドシート内部統制システム
１１０  …表計算ソフトウェア
１２０  …コンピュータ
１３０、１９０、１９２、２００、２０２  …管理対象スプレッドシート
１３０ａ、１９０ａ、１９２ａ、２００ａ、２０２ａ  …隠しシート
１４０  …管理対象外スプレッドシート
１５０  …ファイルサーバ
１６０  …管理テーブル
１８０  …アドイン
２１０  …記憶装置
２２０  …原本記憶フォルダ
２３０  …正式SS記憶フォルダ
２４０  …検算SS記憶フォルダ
２６０  …アドインレスコンピュータ
【図１】
2010039652.tif 000003
【図２】
2010039652.tif 000004
【図３】
2010039652.tif 000005
【図４】
2010039652.tif 000006
【図５】
2010039652.tif 000007