(57)【特許請求の範囲】
【請求項１】
ホストアプリケーションに存在するチャートを管理し編集するためのコンピュータによって実行される方法であって、
個々のアプリケーションにおける前記チャートに対応するデータを編集するための機能を提供するステップであって、前記個々のアプリケーションにおける前記データの存在は、前記ホストアプリケーションにおける前記チャートの存在とは異なる、提供するステップと、
ここで、前記チャートに対応する前記データを編集するための機能を提供するステップは、
ユーザアクションの通知を受信するステップであって、前記ユーザアクションの通知は、前記ユーザアクションが前記チャートへの変更である結果のときに受信されるステップと、
前記チャートへの変更が前記データに影響を与えないときに、前記ホストアプリケーション内の前記チャートへの変更を処理するステップと、
前記チャートへの変更が前記データに影響を与えるときに、前記チャートへの変更を個々のアプリケーションに伝達するステップと、
前記個々のアプリケーションの可視的インスタンスが必要であるとの判定がされたときに、前記個々のアプリケーションの可視的インスタンスを作成するステップと、
前記個々のアプリケーションの可視的インスタンスが必要ではないとの判定がされたときに、前記個々のアプリケーションの非可視的インスタンスを作成するステップとをさらに含み、
前記個々のアプリケーション内で生じる前記データへの変更を前記ホストアプリケーションに伝達するステップであって、前記データへの前記変更は、前記ホストアプリケーションにおける前記チャートの前記存在に反映される、伝達するステップと
を具え、
前記個々のアプリケーション内で生じる前記データへの変更を前記ホストアプリケーションに伝達するステップは、チャート統合アプリケーションに従って対話を処理するステップを含み、
前記チャート統合アプリケーションは、ホストアプリケーションのドキュメント内に含まれる前記チャートと前記個々のアプリケーションに含まれるスプレッドシートに提供される前記データとの統合を管理するように構成されたことを特徴とする方法。
【請求項２】
前記個々のアプリケーションの前記可視的インスタンスは、前記ホストアプリケーションの可視的インスタンスと共にディスプレイに同時に提供されることを特徴とする請求項１記載の方法。
【請求項３】
前記ホストアプリケーションと前記個々のアプリケーションとの間で対話する前に前記ホストアプリケーションと前記個々のアプリケーションとの間でリンクを作成するステップをさらに具えたことを特徴とする請求項１記載の方法。
【請求項４】
前記リンクは、アプリケーション間で対話を実装するための、少なくとも１つのＣＯＭインタフェースに対応することを特徴とする請求項３記載の方法。
【請求項５】
前記個々のアプリケーションは、表計算アプリケーションに対応することを特徴とする請求項１記載の方法。
【請求項６】
前記表計算アプリケーションは、前記ホストアプリケーションに含まれる前記チャートに対応する前記データのスプレッドシートを表示するように構成されることを特徴とする請求項５記載の方法。
【請求項７】
前記チャート統合アプリケーションは、少なくとも１つのＣＯＭインタフェースを介して前記表計算アプリケーションと対話することを特徴とする請求項６記載の方法。
【請求項８】
実行オブジェクトテーブルを用いて、前記少なくとも１つのＣＯＭインタフェースは、他のＣＯＭインタフェースが、特定のチャートが特定のチャートデータのセットと関連付けられるように、互いに関連付けられるように格納されることを特徴とする請求項７記載の方法。
【請求項９】
埋め込みオブジェクト処理部を用いて、前記チャートを、前記データを有する前記チャートの統合から分離して表示するステップをさらに具えたことを特徴とする請求項６記載の方法。
【請求項１０】
前記スプレッドシートが、埋め込みスプレッドシートファイルおよび外部スプレッドシートファイルの１つに属するときに、前記チャートと前記スプレッドシートとの間のリンクを含むために前記ホストアプリケーション内の前記チャートを格納するステップをさらに具えたことを特徴とする請求項６記載の方法。
【請求項１１】
前記チャートに関連するユーザアクションを受信するステップと、
前記ユーザアクションに従ってスプレッドシートが必要であるかを判定するステップと、
前記スプレッドシートの可視的インスタンスが前記ユーザアクションを処理するために必要であるかを判定するステップと、
前記ホストアプリケーションと前記スプレッドシートとの間のリンクを生成するステップと、
前記ユーザアクションを前記スプレッドシートに送信するステップと、
チャートデータが変更するかを判定するステップと、
前記変更に基づいて更新が必要であるかを判定するステップと
をさらに具えたことを特徴とする請求項１記載の方法。
【請求項１２】
コンピュータにより、請求項１ないし１１のいずれかに記載の方法を実行することが可能な命令を有するコンピュータプログラム。
【請求項１３】
請求項１２記載のコンピュータプログラムを有するコンピュータ読取り可能な記録媒体。
【請求項１４】
ホストアプリケーションに存在するチャートを管理し編集するための装置であって、
プロセッサと、
コンピュータ実行可能命令を有するメモリと
を具え、前記プロセッサにより処理される前記コンピュータ実行可能命令は、
個々のアプリケーションにおける前記チャートに対応するデータを編集するための機能を提供することと、
ここで、前記チャートに対応する前記データを編集するための機能を提供することは、
ユーザアクションの通知を受信することであって、前記ユーザアクションの通知は、前記ユーザアクションが前記チャートへの変更である結果のときに受信されることと、
前記チャートへの変更が前記データに影響を与えないときに、前記ホストアプリケーション内の前記チャートへの変更を処理することと、
前記チャートへの変更が前記データに影響を与えるときに、前記チャートへの変更を個々のアプリケーションに伝達することと、
前記個々のアプリケーションの可視的インスタンスが必要であるとの判定がされたときに、前記個々のアプリケーションの可視的インスタンスを作成することと、
前記個々のアプリケーションの可視的インスタンスが必要ではないとの判定がされたときに、前記個々のアプリケーションの非可視的インスタンスを作成することとをさらに含み、
前記個々のアプリケーションにおける前記データの存在は、前記ホストアプリケーションにおける前記チャートの存在とは異なり、
前記個々のアプリケーション内で生じる前記データへの変更を前記ホストアプリケーションに伝達することとを実行するように構成され、
ここで、前記データへの前記変更は、前記ホストアプリケーションにおける前記チャートの前記存在に反映され、
前記個々のアプリケーション内で生じる前記データへの変更を前記ホストアプリケーションに伝達することは、チャート統合アプリケーションに従って対話を処理することを含み、
前記チャート統合アプリケーションは、ホストアプリケーションのドキュメント内に含まれる前記チャートと前記個々のアプリケーションに含まれるスプレッドシートに提供される前記データとの統合を管理することを特徴とする装置。
【請求項１５】
前記個々のアプリケーションは、表計算アプリケーションに対応することを特徴とする請求項１４記載の装置。
【請求項１６】
前記表計算アプリケーションは、前記ホストアプリケーションに含まれる前記チャートに対応する前記データのスプレッドシートを表示するように構成されることを特徴とする請求項１５記載の装置。
【請求項１７】
前記チャート統合アプリケーションは、少なくとも１つのＣＯＭインタフェースを介して前記表計算アプリケーションと対話することを特徴とする請求項１６記載の装置。
【請求項１８】
実行オブジェクトテーブルをさらに具え、前記少なくとも１つのＣＯＭインタフェースは、他のＣＯＭインタフェースが、特定のチャートが特定のチャートデータのセットと関連付けられるように、互いに関連付けられるように格納されることを特徴とする請求項１７記載の装置。
【請求項１９】
前記チャートを、前記データを有する前記チャートの統合から分離して表示するように構成された埋め込みオブジェクト処理部をさらに具えたことを特徴とする請求項１４記載の装置。
【請求項２０】
前記スプレッドシートが、埋め込みスプレッドシートファイルおよび外部スプレッドシートファイルの１つに属するときに、前記チャートと前記スプレッドシートとの間のリンクを含むために前記ホストアプリケーション内の前記チャートを格納する手段をさらに具えたことを特徴とする請求項１４記載の装置。
【請求項２１】
前記プロセッサにより処理される前記コンピュータ実行可能命令は、
前記チャートに関連するユーザアクションを受信することと、
前記ユーザアクションに従ってスプレッドシートが必要であるかを判定することと、
前記スプレッドシートの可視的インスタンスが前記ユーザアクションを処理するために必要であるかを判定することと、
前記ホストアプリケーションと前記スプレッドシートとの間のリンクを生成することと、
前記ユーザアクションを前記スプレッドシートに送信することと、
チャートデータが変更するかを判定することと、
前記変更に基づいて更新が必要であるかを判定することと
をさらに実行することを特徴とする請求項１４記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ドキュメントにおける統合チャートに関する。
【背景技術】
【０００２】
コンピュータ機器にてタスクを実行するための利用可能なアプリケーションの数は増加しており、これらのアプリケーションの間でのシームレスなユーザ体験（user experience）に対する期待もまた増加している。あるアプリケーション内のオブジェクトを取り扱うときには、同じオブジェクトが第２のアプリケーションで使用されれば同等に機能するであろうとの期待がある。これは、同じソフトウェア一式（suite）に含まれるアプリケーションに特に当てはまる。
【０００３】
しかしながら、多くのアプリケーションはオブジェクトに関する自分達自身のサポートを提供しているので、ユーザ体験は、これらのアプリケーションの間でしばしば変化する。例えば、強力なチャートアプリケーション（charting application）にて作成されたチャートは、ユーザが同じチャートをプレゼンテーション（例えば、スライドショウ）アプリケーションで作成しようとしたときに、平等にサポートされないことがしばしばある。特定のオブジェクトに関しては、ユーザはオブジェクトを全く作成することができない。
【０００４】
あるアプリケーションは、他の１または複数のアプリケーションからのオブジェクトが、そのアプリケーションが作成するドキュメントの中に埋め込まれているのを許容する。例えば、表計算アプリケーション（スプレッドシートアプリケーション：spreadsheet application）によって生成されたテーブルは、ワードプロセッサアプリケーションによって作成されたワードプロセッサドキュメント内のテキスト間に直接埋め込まれることが可能である。しかしながら、各ソリューションに関して、第１のアプリケーションで利用可能であった機能の全てが、第２のアプリケーションに埋め込まれたときにそのオブジェクト用に残っているわけでもない。
【０００５】
例えば、他のアプリケーションのドキュメント内におけるオブジェクトを埋め込む一つの標準規格は、ＯＬＥ（Object Linking and Embedding）標準規格として称される。ＯＬＥは、ワシントンのレッドモンドのマイクロソフト（登録商標）コーポレーションによって開発された複合文書標準規格である。ＯＬＥによって、開発者が１つのアプリケーション内でオブジェクトを作成し、その後、第２のアプリケーション内にそれらをリンクし、または埋め込むことを可能にする。埋め込みオブジェクトは、それらのオリジナルフォーマットを保持し、埋め込みオブジェクトを作成したアプリケーションにリンクする。したがって、オブジェクトにリンクされたドキュメントが編集され、かつ、更新されたときには、そのオブジェクト自身もまた更新される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、埋め込みオブジェクトを、インラインで編集することができない大きなファイル及びオブジェクトを作成してイメージとして格納することがしばしばあるので、ＯＬＥは、明らかな不都合を有する。利用可能なオブジェクトサポートソリューションの多様性は、各ソリューションに関連する利点および不都合の多様性に帰結する。
【課題を解決するための手段】
【０００７】
本発明の側面は、一般的に、ドキュメント内のチャートを統合することに関する。ある側面では、スプレッドシートドキュメントを、他のホストアプリケーション内で使用されるチャートデータ用のソースとして使用する。以前は、チャート生成に直接関連しないアプリケーションアプリケーションに含まれるチャートは、必要最低限のものだけを備えた（stripped down）特徴のセットに悩まされていた。チャート作成を直接サポートする表計算アプリケーション内で利用可能な多くの特徴は、他のホストアプリケーション内でのチャート作成に関して利用可能ではない。例えば、表計算アプリケーション内でのチャートと併用して使用されることがある、特定の式および並び替え能力は、ホストアプリケーションでは利用可能ではない。また、スプレッドシートにて比較的分かりやすく作成するチャートの特定の型は、ホストアプリケーションにおいて作成することが極めて難しい。本発明の一側面では、ホストアプリケーションのチャートを変更し、その結果、チャートのデータがスプレッドシートドキュメントから取得される。これは、ホストアプリケーション内のチャートが、表計算アプリケーション内のチャートとして同じ特徴セットを有することを許容し、チャートを使用する際に表計算アプリケーションの編集パワーを有することも同様に許容する。したがって、チャートが別のホストアプリケーションで作成されようと、表計算アプリケーションから埋め込まれようと、よりシームレスなユーザ体験を提供する場合には、チャートの使用および編集は、依然として同じままである。
【０００８】
本要点は、詳細な説明で以下にて説明される概念の抽出を単純な形式で導入することを提供する。本要点は、クレームされる主題のキーとなる特徴または基礎的な特徴を特定することを意図するものでもなく、また、クレームされる主題の範囲を決定する際の支援として使用されることを意図するものでもない。
【０００９】
本発明の、限定的でなく、かつ、包括的ではない実施形態は、以下の図面を参照して説明され、ここで、同種の参照番号は、特記されない限り、様々なビューを介して同種の部分を参照する。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態は、本発明の一部を形成し、発明を実施するための特定の例示的な実施形態を示す、添付する図面を参照して以下でより詳細に説明される。しかしながら、実施形態は多くの異なる形式で実装されることができ、以下で説明する実施形態に限定して解釈されるべきではない。むしろ、これらの実施形態は、本開示は綿密で完全であり、当業者に対して発明の範囲を十分に伝達するために提供される。本発明の本実施形態は、方法、システム、またはデバイスとして実施することができる。したがって、本発明の実施形態は、全体ハードウェア実装、全体ソフトウェア実装、またはソフトウェアとハードウェアの側面を組み合わせて実装する形式を採ることができる。それゆえ、以下の詳細な説明は、限定する意味で受け取られるべきものではない。
【００１１】
本発明における様々な実施形態の論理的な動作は、（１）コンピュータシステムを実行するコンピュータ実装されるステップのシーケンスとして、および／または（２）コンピュータシステム内の相互接続したマシンモジュールとして実装される。この実装は、発明を実装するコンピュータシステムのパフォーマンス要求に依存して選択される事項である。したがって、以下で説明される本発明の実施形態を作り出す論理的な動作は、動作、ステップ、またはモジュールとして代替的に参照される。
【００１２】
図１を参照すると、発明を実装する、ある例示的なシステムは、コンピュータデバイス１００のようなコンピュータデバイスを含む。コンピュータデバイス１００は、クライアント、サーバ、モバイルデバイス、または他の任意のコンピュータデバイスとして構成することができる。非常に基本的な実施形態では、コンピュータデバイス１００は、典型的には、少なくとも一つの処理ユニット１０２およびシステムメモリ１０４を含む。的確な構成およびコンピュータデバイスの型に依存して、システム１０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）またはこの２つを組み合わせたものであることができる。システムメモリ１０４は、典型的には、オペレーティングシステム１０５、一または複数のアプリケーション１０６を含み、プログラムデータ１０７を含むことができる。一実施形態においては、アプリケーション１０６は、本発明のシステムを実装するためのチャート統合システム１２０を含む。加えて、プログラムデータ１０７は、チャートデータ１２２を含む。この基本的な実施形態は、図１の点線１０８内のこれらのコンポーネントによって示される。
【００１３】
コンピュータデバイス１００は、追加的な特徴または機能を有することができる。例えば、コンピュータシステム１００は、例として磁気ディスク、光ディスクまたはテープのような追加的なデータストレージデバイス（取り外し可能およびまたは固定）をも含むことができる。そのような追加的なストレージは、図１にて、取り外し可能ストレージ１０９および固定ストレージ１１０として示される。コンピュータストレージ媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージのための任意の方法または技術に実装される、揮発性および不揮発性、取り外し可能および固定媒体を含むことができる。システムメモリ１０４、取り外し可能ストレージ１０９および固定ストレージ１１０は、全てコンピュータストレージ媒体の例である。コンピュータストレージ媒体には、限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または、所望の情報を格納するために使用することができ、コンピュータデバイス１００によってアクセスすることができる任意の他の媒体を含む。そのようなコンピュータストレージ媒体は、いずれもデバイス１００の一部とすることができる。コンピュータデバイス１００はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス１１２を有することができる。また、ディスプレイ、スピーカ、プリンタなどの出力デバイスも含むことができる。
【００１４】
コンピュータデバイス１００はまた、デバイスがネットワークを介するなどして他のコンピュータデバイス１１８と通信することを許容する通信コネクション１１６を含む。通信デバイス１１６は、通信媒体の一例である。通信媒体は、典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波または他の転送メカニズムのような変調データ信号内の他のデータによって具体化することができ、任意の情報配信媒体を含む。ここで「変調データ信号(modulated data signal)」とは、その特性の１または複数が、情報を信号において符号化するような形でセットまたは変更された信号のことである。例を挙げると、通信媒体としては、有線ネットワークや直接有線コネクションなどの有線媒体、および音響、ＲＦ、赤外線および他の無線媒体などの無線媒体があるが、これらに限定されない。以下で使用されるコンピュータ可読媒体は、ストレージ媒体および通信媒体の両者を含む。
【００１５】
コンピュータデバイス１００によって実行される実施形態では、ホストアプリケーションのドキュメント内に含まれるチャート用のチャートデータ１２２に対するソースとしてスプレッドシートを使用することを提供する。チャート統合アプリケーション１２０は、ホストアプリケーション内のチャート表現を有するスプレッドシートのチャートデータの統合を提供する。したがって、チャート用のスプレッドシートによって提供される機能がホストアプリケーション内で利用可能に作成される。ユーザは、チャートを編集することができ、より限定された特徴セットよりはむしろ表計算アプリケーションによって提供される特徴セットに従ってチャートのプレゼンテーション（presentation）を変更することができる。
【００１６】
様々な代替実施形態を包含するために以下で開示を許容し、請求する上位概念を除けば、請求項を通じて、および本明細書を通じて使用される用語は、以下のように定義される。
【００１７】
「チャート」は、一般的には、グラフ、棒グラフ、線グラフ、円グラフ、表グラフ、またはドキュメントに含まれる可能性のあるデータの絵入り描述を言う。本明細書で使用されるときには、特定のドキュメントに含まれる可能性のあるチャートの型に限定されない。
【００１８】
「ドキュメント」は、一般的には、ページ、シート、フォーム、または、テキスト、グラフィカルオブジェクト、表、データセル、またはデータ表現の他の型を含む、アプリケーションの他の構造として定義される。ドキュメントの例には、ワードプロセッサドキュメント、スプレッドシート、チャート、スライド、ウェブページ、ワークシート、ノート、ｅ−ｍａｉｌメッセージ、インスタントメッセージ、図面、図表、イメージ、およびテキストおよび／またはグラフィカルオブジェクトの他のアレンジが含まれる。
【００１９】
「特徴セット」は、一般的には、特定のアプリケーションに関連する機能または特徴のセットとして定義される。チャート作成をサポートするアプリケーションの例示的な特徴セットは、並べ替え機能、式のサポート、チャート型のサポートを、チャート操作（manipulation）能力を提供する他の機能および能力と同様に含む。
【００２０】
「ホストアプリケーション」は、一般的には、チャートが組み込まれ、またはリンクされるアプリケーションのことを言う。ホストアプリケーションは、ホストアプリケーションのドキュメント内のチャートのビジュアル表現を含む。ホストアプリケーションは、プレゼンテーションアプリケーション、ワードプロセッサアプリケーション、およびチャートを含む他のアプリケーションを含むことができる。
【００２１】
「プレゼンテーションアプリケーション」は、一般的には、表象的な表示をユーザに提供するように構成されるアプリケーションのことを言う。たとえば、スライドショウは、生成されたプレゼンテーション内に１または複数のスライドを含むことができる。これらのスライドは、プレゼンテーションアプリケーションによって生成される個々のドキュメントに対応する。プレゼンテーションアプリケーションの例には、ワシントンのレッドモンドのマイクロソフト（登録商標）コーポレーションによって製造されたＰｏｗｅｒＰｏｉｎｔ（登録商標）ソフトウェアプログラムを含む。
【００２２】
「スプレッドシート」は、一般的には、データを含むセルのグリッドを含むドキュメントまたはデータベースとして定義される。スプレッドシートの一例には、ワシントンのレッドモンドのマイクロソフト（登録商標）コーポレーションによって製造されたＥｘｃｅｌ（登録商標）ソフトウェアプログラムが含まれる。他のスプレッドシートの例には、ワシントンのレッドモンドのマイクロソフト（登録商標）コーポレーションによって製造されたＡｃｃｅｓｓ（登録商標）にて生成されたデータグリッドが含まれる。スプレッドシートは、それぞれ、スプレッドシートに含まれるデータに対応するチャートを生成するための機能に関連付けられる。
【００２３】
「スプレッドシートアプリケーション」は、一般的には、スプレッドシートを生成するように構成されるアプリケーションのことを言う（上記のスプレッドシートの定義を参照）。
【００２４】
図２は、チャートを含むプレゼンテーションアプリケーションのスクリーンショットの一例を示す。プレゼンテーションアプリケーション２００は、チャートデータのサポートを内部で処理する、プレゼンテーションアプリケーションの従前のバージョンに対応する。プレゼンテーションアプリケーション２００には、スライドリストフィールド２１０、スライドフィールド２２０、およびチャートデータフィールド２３０が含まれていた。
【００２５】
スライドリストフィールド２１０は、プレゼンテーションアプリケーション２００にロードされる現在のプレゼンテーションファイルに含まれ、ビューイングおよび編集に利用可能なスライドをリストアップする。スライドリストフィールド２１０にはまた、現在ビューされているスライドの記述化またはビジュアル化された指示が含まれていた。スライドリストは、ほとんどのプレゼンテーションアプリケーションで共通のものであり、この技術分野で周知である。それゆえ、スライドリストフィールド２１０は、本明細書においては、さらに詳細には説明しない。
【００２６】
スライドフィールド２２０には、現在ビューされているスライドのコンテンツが含まれていた。本例においては、スライドコンテンツには、チャート２２２が含まれていた。チャート２２２は、棒グラフとして示されている。チャート２２２が選択されてスライドフィールド２２０に挿入されたときに、プレゼンテーションアプリケーション２００はまた、チャートデータフィールド２３０を開始した。
【００２７】
チャートデータフィールド２３０は、プレゼンテーションアプリケーション２００のウィンドウ上にオーバーレイされるポップアップウィンドウとして提供された。チャートデータフィールドは、プレゼンテーションアプリケーション２００によって提供されるコンテンツの一部であった。チャートデータフィールドには、データセル（例、２３２）、列および行ラベルセル（例、２３４）、チャートデータセル（例、２３６）、チャート軸ラベルセル（例、２３８）が含まれていた。チャートデータセルおよびチャート軸ラベルセルに含まれるデータ間の相関が、チャート２２２内のデータのフォーマットをもたらした。
【００２８】
プレゼンテーションアプリケーション２００は、チャートデータの入力のため、自身のサポートを提供し、チャートの作成および編集に関連する機能は限られていた。さらに、チャートデータフィールド２３０に対応するウィンドウは、ビューされるプレゼンテーションの一部に依存する位置およびサイズを絶えず管理する必要があった。
【００２９】
図３は、一実施形態における、プレゼンテーションアプリケーションに含まれる別の例示的なチャートのスクリーンショットを示す。プレゼンテーションアプリケーション３００は、図２に示すプレゼンテーションアプリケーション２００と同じである。プレゼンテーションアプリケーション３００は、スライドリストフィールド３１０およびスライドフィールド３２０を含む。スライドフィールド３２０はまた、図２で示すチャート２２２と同じチャート３２２を含む。しかしながら、プレゼンテーションアプリケーション３００は、チャートデータフィールド２３０と同様のウィンドウまたはフィールドを含まない。代わりに、プレゼンテーションアプリケーション３００は、チャート３２２用のチャートデータを提供するための表計算アプリケーション３５０を開始する。
【００３０】
表計算アプリケーション３５０は、セルの配列を含むスプレッドシート３５２を含む。セルには、データセル（例、データセル３５４）、および列および行ラベルセル（例、列ラベル３５６）を含む、様々な型がある。データ内のセル（例えば、３５４）は、それらが含まれるデータによって定義されるセルである。一例としては、データセルは、チャート３２０のようなチャートに対応するデータを含む。チャートデータセルの１つの型は、チャート（例えば値セル３６０）に関する値を含む。チャートに関連付けられるデータセルの別の型には、軸をラベル付けする軸ラベルまたはチャートの次元（例、ラベル３５８）を含む。表計算アプリケーション３５０に従って、データをチャート３２２に提供することによって、チャート３２２は、チャートを操るための表計算アプリケーション３５０によって提供される完全な特徴セットを利用することができる。チャート３２２に対する編集または操作がチャートデータに影響するとすぐに、表計算アプリケーション３５０がチャート３２２に提供される。チャートデータを編集し変更する処理のための例示的なプロセスは、図６と関連して以下で詳細に説明される。チャート３２２への変更に応答して表計算アプリケーション３５０を自動的に起動することによって、プレゼンテーションアプリケーション３００と表計算アプリケーション３５０との間の動作は、比較的シームレスである。従前の設計では、表計算アプリケーションをチャートデータのソースとして使用するためには、チャートはスプレッドシートで最初に作成され、その後、プレゼンテーションアプリケーション上にコピーされる必要があった。しかしながら、コピーされたチャートは、一度は表計算アプリケーションにて利用可能であった完全な特徴セットを、ホストアプリケーションで利用することができなかった。本発明は、比較的シームレスにチャートデータを表計算アプリケーションから調達し、完全な特徴セットがホストアプリケーションにおけるチャートに供されるようにセットされることを許容することによって、これらの制限を解決するものである。
【００３１】
図３の例は、表計算アプリケーションによって提供されるチャートデータを有するプレゼンテーションアプリケーション内のチャートを対象とするが、他のアプリケーションの組み合わせも使用可能であることを考慮されたい。ホストアプリケーションは、プレゼンテーションアプリケーションである必要性は必ずしもなく、ワードプロセッサアプリケーションまたはチャートが含まれる可能性がある他のアプリケーションなどの別のホストアプリケーションに変えてもよい。さらには、たとえチャートデータが表計算アプリケーションによって提供されるように示されたとしても、表計算アプリケーションはデータアプリケーションまたはグリッドデータアプリケーションのような他のアプリケーションを含むことができる。
【００３２】
図４は、一実施形態における、ホストアプリケーションに含まれるチャート用のチャートデータのソースとしてスプレッドシートを使用するための例示的なシステムの機能図である。システム４００は、プレゼンテーションアプリケーション４０２、ワードプロセッシングアプリケーション４０４、埋め込みオブジェクト処理部４０６、チャート統合アプリケーション４０８、データベース／表計算アプリケーション４１０、および実行オブジェクトテーブル４１４を含む。表計算アプリケーション４１０は、ホストアプリケーション（４０２、４０４）のうちの一つに含まれるチャートに対応するチャートデータ４１２を含む。二つのホストアプリケーション（４０２、４０４）が示されているが、任意の数のホストアプリケーションがシステム４００に関連付けられていてもよい。
【００３３】
埋め込みオブジェクト処理部４０６は、他のプログラムと関連付けられたホストアプリケーションドキュメント内に含まれるオブジェクトをサポートするための機能を提供する。一実施形態においては、埋め込みオブジェクト処理部４０６は、ホストアプリケーションドキュメント内のグラフィックオブジェクトを統合するためのコードを提供するグラフィックプログラムに対応する。埋め込みオブジェクト処理部４０６は、チャート統合アプリケーション４０８とホストアプリケーション（４０２、４０４）との間のインタフェースを提供する。埋め込みオブジェクト処理部４０６は、チャート統合アプリケーション４０８によって提供される命令を、グラフィックオブジェクトを操作するためのホストアプリケーション（４０２、４０４）によって理解される命令に翻訳する。別の実施形態においては、埋め込みオブジェクト処理部４０６は、システム４００に含まれておらず、代わりに、埋め込みオブジェクト処理部４０６の機能は、チャート統合アプリケーション４０８によって提供される。
【００３４】
チャート統合アプリケーション４０８は、表計算アプリケーション４１０と対話し、チャートデータ４１２を取得し編集する。一実施形態においては、チャート統合アプリケーション４０８は、図１にて提供されたチャート統合アプリケーション１２０に対応する。チャート統合アプリケーション４０８は、表計算アプリケーション４１０によって提供されるチャートデータ４１２と、ホストアプリケーション（４０２、４０４）に含まれるチャートとを同期させるように構成される。表計算アプリケーション４１０は、チャートデータ４１２を作り出し、チャート統合アプリケーション４０８からの要求に応答し、ＣＯＭインタフェースのセット（４２０、４２２、４２４）を通じてチャート統合アプリケーション４０８にチャートデータ４１２を伝達する。一実施形態では、ＣｈａｒｔＤａｔａＳｉｎｋ ＣＯＭインタフェース４２０は、表計算アプリケーション４１０が、チャート統合アプリケーション４０８にチャートデータ４１２への更新と、それらの更新をチャート統合アプリケーション４１２にプッシュするように通知する。同じ実施形態では、ＣｈａｒｔＤａｔａＳｏｕｒｃｅ ＣＯＭインタフェース４２２は、チャート統合アプリケーション４０８が表計算アプリケーション４１０を開始し、チャートデータ４１２に影響するユーザアクションを表計算アプリケーション４１０に転送することを可能にする。ＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース４２４は、統合アプリケーション４０８がＣｈａｒｔＤａｔａＳｉｎｋ ＣＯＭインタフェース４２０に関連付けられたＣｈａｒｔＤａｔａＳｏｕｒｃｅ ＣＯＭインタフェース４２２のインスタンスを取得することを可能にする。関連するさらなる実施形態においては、ＣｈａｒｔＤａｔａＳｉｎｋ ＣＯＭインタフェース４２０およびＣｈａｒｔＤａｔａＳｏｕｒｃｅ ＣＯＭインタフェース４２２の固有のインスタンスが、チャートのそれぞれに存在する。チャート統合アプリケーション４０８は、実行オブジェクトテーブル４１４から、ＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース４２４を取得することができる。表計算アプリケーション４１０は、表計算アプリケーション４１０がインスタンスを作り出すときに、実行オブジェクトテーブル４１４におけるＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース４２４を記録する。
【００３５】
実行オブジェクトテーブル４１４は、独立したプロセスがお互いからＣＯＭインタフェースを取得することを可能にするＣＯＭシステムコンポーネントである。実行オブジェクトテーブル４１４は、表計算アプリケーション４１０からＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース４２４を得るために使用される。表計算アプリケーション４１０に命令が与えられてＣｈａｒｔＤａｔａＳｏｕｒｃｅ ＣＯＭインタフェース４２２を作成し、それから、ＣｈａｒｔＤａｔａＳｏｕｒｃｅ ＣＯＭインタフェース４２２が現在開いているワークブックに関連付けられ、このワークブックは、ファイルシステムから開かれるか、あるいは、ホストアプリケーション（４０２、４０４）のファイルに埋め込まれている。ワークブックがホストアプリケーション（４０２、４０４）のファイルに埋め込まれているとき、チャート統合アプリケーション４０８は、ＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース（例、４２４）が所望される表計算アプリケーション４１０にシグナリングをする責任を負う。表計算アプリケーション４１０は、ＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース４２４のインスタンスを実行オブジェクトテーブル４１４に登録し、チャート統合アプリケーション４０８は、実行オブジェクトテーブル４１４からインタフェースを取り込む。ひとたびチャート統合アプリケーション４０８がＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース４２４のインスタンスを有すると、チャート統合アプリケーション４０８は、パラメータの数を指定することによって、ワークブックに関連付けられたＣｈａｒｔＤａｔａＳｏｕｒｃｅ ＣＯＭインタフェースのインスタンスを要求するメソッドを呼び出す。パラメータには、ＣｈａｒｔＤａｔａＳｏｕｒｃｅ ＣＯＭインタフェース４２２を現在のワークブックに関連付ける情報、チャート統合アプリケーション４０８によって供給されるサンプルデータを投入されるべき新しいワークブック、ファイルネームによって識別されるワークブック、または表計算アプリケーション４１０によってロードされるべきワークブックに埋め込まれたデータのバイナリストリームである。ひとたびＣｈａｒｔＤａｔａＳｏｕｒｃｅＦａｃｔｏｒｙ ＣＯＭインタフェース４２４が取得されると、実行オブジェクトテーブル４１４は、プロセスループから外れる。さらに、表計算アプリケーション４１０とチャート統合アプリケーション４０８との間の対話は、ＣＯＭインタフェース（４２０、４２２、４２４）を介して完了する。図６の考察が、チャート統合アプリケーション４０８と表計算アプリケーション４１０との間の対話に関連する例示的なプロセスのより詳細な説明として、以下で提供される。
【００３６】
図５は、一実施形態における、チャートデータの存在に関する例示的なファイル構造の機能図を示す。この特定の実施形態は、プレゼンテーションアプリケーションのプレゼンテーションに含まれるチャートに対応するチャートデータに関するファイル構造を提供する。しかしながら、チャートを含む他のホストアプリケーションの他のドキュメントに対応するチャートデータに関するファイル構造を含むことも可能である。ファイル構造５００は、プレゼンテーションアプリケーションのプレゼンテーションに対応するプレゼンテーションファイル５０２と、表計算アプリケーションのスプレッドシートに対応する外部スプレッドシートファイル５５０とを含む。
【００３７】
プレゼンテーションファイル５０２は、スライド５１０、図面５２０、チャート５３０、および含まれる可能性がある埋め込みスプレッドシートファイル５４０で構成される。スライド５１０には、特定のプレゼンテーションに関連付けられたスライド（例、５１２、５１４）の任意の数が含まれる。図面データがスライドに含まれる場合には、スライド（例、５１２）は、図面ファイル（例、５２２）と関連付けられる。図面データがチャートに対応する場合には、図面（例、５２２）は、さらにチャートファイル（例、５３２）に関連付けられる。一実施形態においては、チャートファイル（例５３２）は、使用されるチャートの型、チャートのプレゼンテーション、チャートのフォーマット、およびスライド内のチャートの存在に関連する他の情報を含む。この実施形態では、チャートに含まれる値は、スプレッドシートに関連付けられた別ファイル（例、５４０、５５０から）取得されるが、プレゼンテーションアプリケーションがそのデータの表示に関するフォーマットを判定する。別の実施形態においては、チャートファイル（例、５３２）は、ポインタにより似ており、チャートデータを含む別のファイル（例、５４０、５５０）へとプレゼンテーションアプリケーションを導く。この実施形態では、表計算アプリケーションが、値とチャート用に使用されるフォーマットとの両方を判定し、プレゼンテーションアプリケーションは、単に特定のスライド内にチャートを表示する責任を負うだけである。プレゼンテーションにおけるチャートの実際の実装は、上記で説明した実施形態のグラデーションとして、またはグラデーションよりも異なる線に沿って、ホストアプリケーションと表計算アプリケーションとの間のチャートのフォーマットに関する責任を分けることができる。さらには、ユーザは、プレゼンテーションのフォーマットか、または表計算アプリケーションに含まれるデータのフォーマットを使用する選択を受ける。
【００３８】
図示するように、チャート用のデータは、プレゼンテーションファイルに埋め込まれるスプレッドシートファイル（例、５４０）によって提供されるか、または、外部に格納されるスプレッドシートファイル(例、５５０)によって提供されることができる。スプレッドシートがプレゼンテーションファイル５０２と共にローカルに格納されるか、あるいは、外部に記憶されプレゼンテーションファイル５０２によってリンクされるかは、ユーザが決めるであろう選択である。例えば、チャートを外部スプレッドシートにリンクさせるか、スプレッドシートをプレゼンテーションファイルにコピーさせるか、またはもしかするとチャートのイメージを単に取り込むかをユーザが選択することができるダイアログウィンドウを、ユーザは受けることができる。選択は、それぞれ、チャートの編集、ホストアプリケーションファイルのファイルサイズ、およびファイルの移植性に関して利点および不便性を有する。
【００３９】
図６は、一実施形態における、ホストアプリケーションに含まれるチャートのデータを提供するための表計算アプリケーションとホストアプリケーションとの間の対話についての例示的な処理の論理的フロー図を示す。プロセス６００は、チャートがホストアプリケーションドキュメントに挿入され、ユーザによる対話を待ち受けるところで開始する。プロセスは、アクション受信動作６０２を続ける。
【００４０】
アクション受信動作６０２は、チャート統合アプリケーション（図４の４０８参照）にけるチャートのユーザアクションを受信する。一実施形態では、ホストアプリケーションは、ユーザアクションを、キーストローク、マウスクリック、またはホストアプリケーションへの他の入力エントリとして登録し、その入力をホストアプリケーションドキュメント内のチャートに関連すべきものとして関連付ける。ひとたびチャート統合アプリケーションがユーザアクションの通知を受信すると、処理はスプレッドシート必要判定動作６０４に続く。
【００４１】
スプレッドシート必要判定動作６０４は、チャートに影響を与えるユーザアクションに応答するために必要かどうかを判定する。特定のシナリオでは、表計算アプリケーションによって供給されるチャートデータに影響を与えることなくチャートの一部をユーザアクションが変更することができる。例えば、ドキュメント内のチャートの位置を変更することができる。そのような変更は、プロセスに関するチャート統合アプリケーションに送られる場合がある。しかしながら、変更を行うためのスプレッドシートへのアクセスは、必要ない。スプレッドシートがユーザアクションに応答する必要がない場合には、処理はチャート処理動作６０６に移動する。
【００４２】
チャート処理動作６０６は、スプレッドシートによって提供されるチャートデータをアクセスすることなくユーザアクションを処理する。一実施形態では、チャートへのこれらの変更を処理するための機能がホストアプリケーションに含まれる。別の実施形態では、チャート用のユーザアクションを処理するためのホストアプリケーションによって関数呼び出しが行われる。ひとたびユーザアクションが対処されると、プロセス６００は終了し、次のユーザアクションを待つか、あるいは他のタスクを続行する。
【００４３】
代わりにスプレッドシートがユーザアクションに応答することが必要である場合には、処理は可視的判定動作６０８へ続く。可視的判定動作６０８は、ユーザアクションに応答するため可視的スプレッドシートが必要とされるかを判定する。ユーザアクションが、チャートデータ、式、またはスプレッドシートによって提供されるチャートの他の側面を変更する機会をユーザに提供することを伴うときに、可視的スプレッドシートが必要とされることがある。スプレッドシートは、スプレッドシートフォーマットである間は、ユーザがチャートデータと対話することを許容することが必要とすることができる。対照的に、ユーザは、スプレッドシートの可視的インスタンスを開始させる必要がないとすることができる。追加の実施形態においては、スプレッドシートの可視的インスタンスおよび表計算アプリケーションの非可視的インスタンスは、個々のプロセスに関連付けられる。表計算アプリケーションとの対話が非可視的プロセスによって提供されるときは、ユーザアクションは、ユーザがチャートデータと対話することを許容する必要がない変更に対応することができる。可視的スプレッドシートが必要とされる場合には、処理は開始動作６０１に続く。
【００４４】
開始動作６１０は、表計算アプリケーションの可視的インスタンスを開始する。一実施形態では、表計算アプリケーションが開始され、表計算アプリケーションおよびホストアプリケーションのビューが「タイル化」され、または、同時に表示され、その結果、両アプリケーションは引き続き限られたビューエリアでビューすることができる。アプリケーションをタイル化することで、利用可能なディスプレイスクリーンで両方ともビューすることが可能となる。ひとたび表計算アプリケーションが開始されると、処理はリンク作成動作６１４に続く。
【００４５】
スプレッドシートの可視的インスタンスの代わりに、スプレッドシートへのリンクのみが必要とされる場合には、処理は可視的判定動作６０８からリンク判定動作６１２へと続く。リンク判定動作６１２は、スプレッドシートへのリンクが既に確率されているかを判定する。例えば、スプレッドシートは、ホストアプリケーションに格納されることができる。ホストアプリケーションに関して内部に格納される場合には、スプレッドシートへのリンクが確率される必要はない。対照的に、スプレッドシートは、表計算アプリケーションに関連付けられるメモリ内の異なる位置にあることも可能であり、また、全く別個のコンピュータデバイスに関連付けられることさえ可能である。しかしながら、ホストアプリケーションと比較すると、スプレッドシートが外部および／またはリモートのときに、ホストアプリケーションに含まれるチャートとスプレッドシートとの間でリンクが既に行われていることがある。例えば、以前のユーザアクションは、チャートとスプレッドシートとの間にリンクを確率する場合がある。したがって、現在のユーザアクションはリンクを再び確率する必要がない。スプレッドシートへのリンクがまだ開始されていない場合には、プロセスはリンク作成動作６１４へと続く。
【００４６】
リンク作成動作６１４は、表計算アプリケーションとホストアプリケーションのチャートとの間のリンクを開始する。一実施形態では、リンクの開始は、スプレッドシートの可視的インスタンスが開始されたか否かと似ている。別の実施形態では、チャートとスプレッドシートとの間で使用されるべき一般的な転送プロトコルを許容するＣＯＭインタフェースに従って生成される。ひとたびリンクが作成されると、処理は第２のアクション動作６１６へと続く。
【００４７】
リンクは以前にリンク判定動作６１２から利用可能であるか、あるいは、リンク作成プロセス６１４にしたがって新たに生成されて、ひとたびリンクが確率されると、チャート統合アプリケーションは、ユーザアクションの通知を表計算アプリケーションに送信する。スプレッドシートがその通知を受信した後に、プロセスは変更判定動作６１８で続く。変更判定動作６１８は、ユーザアクションがチャートデータへの変更に影響を与えるかを、ユーザアクションから見つける。チャートデータは、実際にはユーザアクションによって変更されないことがある。例えば、ユーザは、チャートデータをビューすることを選択することができる。この例では、表計算アプリケーションの可視的インスタンスが開始され、チャートとスプレッドシートとの間のリンクが作成され、要求された動作が完了する。ユーザアクションによってデータが変更されない場合には、プロセス６００は終了してプロセスは次のユーザアクションを待つか、あるいは他のタスクを続ける。
【００４８】
対照的に、ユーザアクションがチャートデータを変える場合には、プロセスはデータ変更動作６２０へと続く。データ変更動作６２０は、チャート統合アプリケーションにデータが変更したことを送り返す。ひとたびこの変更メッセージが受信されると、プロセスは更新判定動作６２２に続く。
【００４９】
更新判定動作６２２は、チャートへの更新がチャートデータに起こった変化のために必要であるかを判定する。一実施形態では、更新は、チャート内のチャートデータの表現をリフレッシュすることに対応する。更新が必要でない場合には、プロセス６００は終了し、プロセスは次のユーザアクションを待つか、あるいは、他のタスクを続ける。しかしながら、更新が必要である場合には、プロセスは、更新要求動作６２４に続く。
【００５０】
更新要求動作６２４は、表計算アプリケーションからのチャートデータの更新を要求する。一実施形態では、更新要求は、表計算アプリケーションによって提供されるチャートデータの全てのセットに関する要求として構成される。別の実施形態では、更新要求は、変更したチャートデータの任意の一部に関するものであり、チャートデータファイルの全てではない。ひとたび更新要求が送信されると、プロセスは更新受信動作６２６に続く。
【００５１】
更新受信動作６２６は、チャートデータの更新を受信し、その更新をホストアプリケーション内のチャートに適用する。一実施形態では、そのチャートは直近で更新されまたは作成されたものなので、更新は、変更したチャートの一部のみをリフレッシュする。別の実施形態では、更新は既存のチャートを、要求に応じて提供された最も最近のチャートデータに対応する新しいチャートに置き換える。ひとたびチャートが更新されると、プロセス６００は終了し、プロセスは次のユーザアクションを待つか、あるいは、別のタスクを続ける。
【００５２】
本発明は、特定の構造特徴および／または方法的なステップの言葉遣いで説明したが、添付する特許請求の範囲で定義される発明は、説明した特定の特徴またはステップに限定される必要はないことを理解されたい。発明の多くの実施形態は、本発明の要旨を逸脱しない範囲で行うことができるので、本発明は、添付する特許請求の範囲内に属する。
【図面の簡単な説明】
【００５３】
【図１】１つの例示的な実施形態において使用されることがある例示的なコンピューティングデバイスを示す図である。
【図２】プレゼンテーションアプリケーションに含まれるチャートの例示的なスクリーンショットを示す図である。
【図３】プレゼンテーションアプリケーションに含まれるチャートの、別の例示的なスクリーンショットを示す図である。
【図４】ホストアプリケーションに含まれるチャート用のチャートデータのソースとしてスプレッドシートを使用する例示的なシステムの機能図である。
【図５】チャートデータの持続に関する例示的なファイル構造の機能図を示す図である。
【図６】本発明の一実施形態における、ホストアプリケーションに含まれるチャートのデータを提供するための、スプレッドシートとホストアプリケーションとの間の相互作用に対する例示的なプロセスの論理的フロー図を示す図である。
【図１】
0005551363.tif 000002
【図２】
0005551363.tif 000003
【図３】
0005551363.tif 000004
【図４】
0005551363.tif 000005
【図５】
0005551363.tif 000006
【図６】
0005551363.tif 000007