(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
次に本明細書の一部分を形成し、図を介して本発明を実行するための特定の例示の実施形態を示す添付図面を参照して、本発明の実施形態について以降でさらに十分に説明することにする。しかし、本発明は、多数の異なる形態で実施することもでき、本明細書中で記述している実施形態だけに限定されるものとは解釈すべきではない。そうではなくて、これらの実施形態は、この開示が徹底し完備したものになるように、また当業者に対して本発明の範囲を十分に知らせることになるように提供されている。とりわけ、本発明は、方法またはデバイスとして実施することができる。したがって、本発明は、全面的にハードウェアの実施形態、全面的にソフトウェアの実施形態、またはソフトウェア態様とハードウェア態様を組み合わせた実施形態の形態を取ることができる。したがって、以下の詳細な説明は、限定的な意味で解釈すべきものではない。
【0013】
数式セルを自動的に完成させるための方法およびシステムの例証の実施形態
【0014】
1.例示のユーザインターフェース
図3は、本発明の例示の一実施形態中で使用することができる例示のスプレッドシートのユーザインターフェースを示している。スプレッドシート300は、データを計算し、追跡するために使用される任意のタイプのスプレッドシートとすることができる。スプレッドシート300は、1つまたは複数の数式セル302を含むことができる。数式セル302は、数式、方程式、数字、文字、シンボル、単語、数式セル依存性、またはスプレッドシートに導かれる他の任意のデータ形式を受け取るように構成することができる。数式セル302は、1つまたは複数のコンポーネントを許可するように構成されるセルとして定義することができる。コンポーネントは、任意のタイプの数式データとして定義することができる。かかるコンポーネントは、数式依存性、スプレッドシート関数依存性、定義名依存性、リスト依存性、ピボット依存性、ユーザ定義関数依存性、列挙引数依存性、シートデータ依存性、日付オブジェクト依存性、または他の依存性を含むことができる。一実施形態においては、これらのコンポーネントは、1つまたは複数のアレイ中に記憶され、以下でさらに十分に記述することにする。スプレッドシート300は、ユーザが数式セル302中のデータに簡単にアクセスできるようにするための数式セル閲覧ウィンドウ304を含むこともできる。
【0015】
本発明は、たとえスプレッドシート300に関連して教示されるとしても、本発明では、数式セル302を有する任意のアプリケーションまたはプログラムを用いて実装することができることも企図されている。スプレッドシート300は、本明細書中において単に例示の目的および説明の目的で教示されているにすぎず、限定的と考えるべきではない。例えば、本発明は、カルキュレータが1つの数式セルを有する場合のカルキュレータアプリケーションに関連して使用することもできる。数式セルを有する会計アプリケーション、ビジネスアプリケーション、およびバンキングアプリケーションも企図している。
【0016】
図4は、数式セルを自動的に完成させる例示の一態様を示している。参照番号400は、数式セル402、ドロップダウンウィンドウ(drop down window)404、およびティップスウィンドウ(tips window)406を含むことができる例示のユーザインターフェースである。数式セル402、ドロップダウンウィンドウ404、およびティップスウィンドウ406は、デフォルトの形状およびサイズに設定することもでき、またこの形状およびサイズは、ユーザによって調整可能とすることもできる。また、このティップスウィンドウ406およびドロップダウンウィンドウ404は、数式セル402に対して任意の様式で位置づけることもできる。一実施形態においては、ティップスウィンドウ406およびドロップダウンウィンドウ404は、常に任意のユーザ入力の右側にとどまる。
【0017】
ドロップダウンウィンドウ404は、さらにスクロールバー408を含んで、それによりユーザが、これらのオートコンプリートメンバ(例えば、410)に簡単にアクセスすることができるようにすることができる。以下でさらに述べるようにオートコンプリートメンバは、入力トリガ412に相関している。入力トリガは、ドロップダウンウィンドウ404中のコンポーネントの表示を促す入力を含むことができる。ユーザが入力トリガ412を用いて前進するときに、これらのオートコンプリートメンバには、フィルタがかけられて、最も関連したメンバだけが表示される。本発明の一実施形態においては、これらのオートコンプリートメンバは、動的であり、数式セル402についてのすべての使用可能なオプションの集合体を含んでいる。
【0018】
ドロップダウンウィンドウ404はまた、オートコンプリートアイコン(autocomplete icon)414も含むことができる。以下でさらに述べているように、オートコンプリートアイコン414は、オートコンプリートメンバ410が特定のタイプのコンポーネントカテゴリに属することを示すことができる。例えば、オートコンプリートアイコン414は、オートコンプリートメンバ410が、スプレッドシート関数依存性、定義名依存性、リスト依存性、ピボット依存性、ユーザ定義関数依存性、列挙引数依存性、シートデータ依存性、データオブジェクト依存性などであることを示すことができる。コンポーネントのタイプは、トリガが、特定のタイプのコンポーネントに関与することしかできないので、重要なこともある。ドロップダウンウィンドウ404は、特定のオートコンプリートメンバ410を識別するための選択インジケータ416をさらに含むこともできる。
【0019】
本発明の一態様において、インターフェース400は、ティップスウィンドウ406を含んでいる。ティップスウィンドウ406は、選択されたオートコンプリートメンバ410に関連した情報を含んでいる。ティップスウィンドウ406は、ユーザが、オートコンプリートメンバ410の全部の機能を覚える(または理解する)ことができない点で、インターフェース400の有用性を増大させる。また、ティップスウィンドウ406は、ユーザが別のヘルプファンクションを開始する必要なしに、情報に対するアクセスを可能にする。
【0020】
参照番号418は、オートコンプリートアクチュエータ(autocomplete actuator)である。アクチュエータ418は、数式セル402をオートコンプリートプロセスへと促す。このオートコンプリートプロセスおよびインターフェース400は、オートコンプリートアクチュエータ418によって動作させられるまで、休止状態にとどまる。このようにして、ユーザがコンポーネントを入力していないときには、インターフェース400は、ユーザに対して侵襲的(invasive)にはならない。一実施形態においては、オートコンプリートアクチュエータ418は、単にオートコンプリートプロセスを促すにすぎず、それに対して、入力412は、この入力412がトリガであるときに、ドロップダウンウィンドウ404の表示を促す。例えば、1つの数字、文字、またはセル依存性は、ユーザ入力トリガでなくてもよい。したがってこのドロップダウンウィンドウは表示されない。このプロセスは、それが必要でないときには、このインターフェース400のどのような侵襲性も低減させる。本発明の一態様においては、このオートコンプリートプロセスは、ユーザが手動で動作させることができる。本発明の他の態様においては、アクチュエータ418は、「=」シンボルである。しかし、本発明の趣旨および範囲を逸脱することなく任意の数字、文字、またはシンボルを使用することもできる。
【0021】
以下の表1は、ユーザが、このインターフェースと対話して、選択されたオートコンプリートメンバを挿入することができる複数の例示の方法を示している。列1は、例示のユーザアクションを示し、列2は、このインターフェースにおける例示の応答の内容である。表1は、キーボード相互作用およびマウス相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0023】
以下の表2は、このドロップダウンウィンドウについての例示のナビゲーションツールを示している。列1は、例示のアクションを特定する。列2は、オートコンプリートメンバが選択されないときのこのインターフェースにおける例示の応答を特定し、列3は、オートコンプリートメンバが選択されるときのこのインターフェースにおける例示の応答を示している。表2は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0026】
以下の表3は、このドロップダウンウィンドウが、このユーザ入力についてのマッチングを有さないときのいくつかの例示のシナリオを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容である。表3は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0028】
ユーザが、コンポーネントを構築しながらオートコンプリートプロセスを起動するときについては、いくつかの規則を提供することができる。これらの規則の一部の実施例には、このカーソルの右側に位置するキャラクタは無視することができることが含まれる。オートコンプリートアレイメンバが挿入されるときに、これらのキャラクタは、「プッシュバック(push back)」される(上書きされない)。このカーソルの左側に位置するテキストが入力トリガであり、この入力トリガがコンポーネント(例えば、数式依存性、スプレッドシート関数依存性、定義名依存性、リスト依存性、ピボット依存性、ユーザ定義関数依存性、列挙引数依存性、シートデータ依存性、または日付オブジェクト依存性)に関与する場合、このカーソルの左側に位置するキャラクタが、オートコンプリートプロセスのために解析される。かかる状況においては、これらのオートコンプリートメンバには、フィルタをかけることができ、その結果、まるでこの入力トリガがまさに入力されたかのようにこのプロセスは、オートコンプリートアレイメンバを戻すようになる。このカーソルの左側に位置するテキストが、「スペース」、算術演算子(+、−、/、*など)、またはキャラクタ演算子(&)である(例えば、コンポーネントが関与していない)場合には、オートコンプリートメンバは、すべての可能性のあるオートコンプリートメンバを含んでいる(すなわち、フィルタがかけられない)。このユーザが、完全なオートコンプリートワード(autocomplete word)(vlookup、myListなど)の終わりにある場合には、これらのオートコンプリートメンバは、すべての可能性のあるメンバを含んでいる(すなわち、コンポーネントが関与していないのでフィルタがかけられない)。キャラクタがオートコンプリートワードから削除される場合には、これらのオートコンプリートアレイメンバは、この単語の残りの部分に基づいたメンバを含んでいる。本明細書中のこの開示を考慮して、ユーザが、オートコンプリートプロセスを起動するときについては、説明したもの以外の規則を提供することもできる。
【0029】
以下の表4は、ユーザが、コンポーネントを構築しながらオートコンプリートプロセスを起動するときに従うこともあるこれらの規則を例示するいくつかの例示のシナリオを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表4は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0031】
図5は、数式セルを自動的に完成させる他の例示の態様を示している。例示のユーザインターフェース500は、ユーザインターフェース500が列挙依存性ドロップダウンウィンドウ502を含んでいる点以外は、例示のユーザインターフェース400と同様である。列挙依存性ドロップダウンウィンドウ502は、このユーザが数式セル506中に列挙依存性を入力していることを入力トリガ504が示すときに呼び出される。このユーザインターフェースは、列挙依存性識別子508を含むこともできる。列挙依存性識別子508は、この列挙依存性ドロップダウンウィンドウ502の最上部に表示することができ、この列挙依存性のカテゴリを識別することができる(例えば、510)。
【0032】
図6は、数式セルを自動的に完成させるさらに他の例示の態様を示している。例示のユーザインターフェース600は、ユーザインターフェース600がリスト依存性ドロップダウンウィンドウ602を含んでいる点以外は、ユーザインターフェース400と同様である。リスト依存性ドロップダウンウィンドウ602は、ユーザが数式セル606にリスト依存性を入力していることを入力トリガ604が示すときに呼び出される。ユーザが、リスト依存性を入力しているときに、ユーザインターフェース600は、リスト特有とすることができる、このリストについての列名608を含むことになる。ユーザインターフェース600はまた、このリストに属し得る特別のアイテム610を含むこともできる。かかる特別のアイテムは、#All、#Data、#Header、#Totalsなどを含むことができる。
【0033】
図7は、数式セルを自動的に完成させるさらに他の例示の態様を示している。例示のユーザインターフェース700は、ユーザインターフェース700が、ピボット依存性ドロップダウンウィンドウ702を含んでいる点以外は、ユーザインターフェース400と同様である。ピボット依存性ドロップダウンウィンドウ702は、このユーザが、数式セル706中にピボット依存性を入力していることを入力トリガ704が示すときに呼び出される。ユーザがピボット依存性を入力しているときに、ユーザインターフェース700は、このピボット階層中の現在のロケーションに基づくこともあるこのピボットについてのメンバ名708を含むことになる。ユーザインターフェース700は、このピボットに属し得る特別のアイテム710を含むこともできる。かかる特別のアイテムは、#All、#Data、#Header、または#Totalsを含むことができる。
【0034】
図8は、数式セルを自動的に完成させるさらに他の例示の態様を示している。例示のユーザインターフェース800は、ユーザインターフェース800が接続依存性ドロップダウンウィンドウ802を含んでいる点以外は、ユーザインターフェース400と同様である。接続依存性ドロップダウンウィンドウ802は、このユーザが数式セル806中に接続依存性を入力していることを入力トリガ804が示すときに呼び出される。このユーザインターフェースはまた、接続識別子808を含むこともできる。接続依存性識別子808は、接続依存性ドロップダウンウィンドウ802の最上部に表示することができ、この接続依存性のカテゴリを識別することができる。
【0035】
図9は、数式セルを自動的に完成させるさらに他の例示の態様を示している。例示のユーザインターフェース900は、ユーザインターフェース900が日付依存性ドロップダウンウィンドウ902を含んでいる点以外は、ユーザインターフェース400と同様である。日付依存性ドロップダウンウィンドウ902は、このユーザが数式セル906中に日付依存性を入力していることを入力トリガ904が示すときに呼び出される。このユーザインターフェースは、カレンダオブジェクト908も含むことができる。カレンダオブジェクト908は、日付依存性ドロップダウンウィンドウ902の最下部に表示することができ、日付を挿入するためのフレンドリなインターフェースをユーザに提供することができる。
【0036】
2.例示のデータストア
図10は、数式セルデータをオートコンプリートするための例示の実施形態を示している。システム1000は、コンピュータデバイス1002を含み、このコンピュータデバイスは、
図1に関連して前述したコンピューティングデバイス100、または
図2に関連して前述したモバイルデバイス200と同様とすることができる。コンピューティングデバイス1002は、オートコンプリートアプリケーションを有することができ、このオートコンプリートアプリケーションは、前述のようなオートコンプリートメンバを表示するためのオートコンプリートドロップダウンウィンドウ1004を含むことができる。
【0037】
参照番号1006は、データストアの一実施形態を示している。データストア1006は、複数のデータストア(コンポーネントストア)から構成することもできる。データストア1006は、スプレッドシート関数1008、定義名1010、リスト1012、ピボット1014、ユーザ定義関数1016、列挙引数1018、シートデータ1020、および日付オブジェクト1022についてのストアを含むことができる。データストア1006は、フィルタ1026を含むこともあるオートコンプリートメンバストア1024を含むこともできる。たとえデータストア1006が、
図10において複数のデータストア1008〜1024として表されているとしても、データストア1006は、単一のデータストアであってもよい。データストア1006は、数式セル1002をオートコンプリートするために使用することができるすべてのコンポーネントのプール(pool)を含むこともできることがさらに企図されている。また、データストア1006は、この数式セルをオートコンプリートするために使用することができるすべての可能性のあるコンポーネントの一部分しか含まないフィルタがかけられたストアであることができることも企図されている。
【0038】
一実施形態においては、入力トリガが、この数式セル中に入力される。次いでメモリ1006がアクセスされ、ストア1008〜1022が、この入力トリガと比較されて、このトリガに関連したコンポーネントが決定される。他の実施形態においては、このトリガが特定のストアに関与する場合に、1つまたは複数の特定のストア1008〜1022がトリガに応答してアクセスされる。次いで、この関連したオートコンプリートメンバは、オートコンプリートメンバストア1024中にアレイとして記憶することができる。オートコンプリートドロップダウンウィンドウ1004は、ストア1024の最も関連したオートコンプリートメンバを表示することができる。ユーザが入力を入力することで前進するときに、このオートコンプリートアレイメンバには絶えずフィルタがかけられ、その結果、オートコンプリートドロップダウンウィンドウ1004は、いつか特定の時刻における最も関連したオートコンプリートアレイメンバを表示することになる。
【0039】
図4に関連した一実施例として、ユーザは、文字「S」とすることができる入力トリガ412を入力することができる。かかる状況においては、このオートコンプリートプロセスは、この文字「S」が特定の任意のタイプのコンポーネントに関連していることを識別することができない。次いでストレージ1006がアクセスされることになり、ストレージユニット1008〜1022が、入力トリガ412と比較されることになる。文字「S」で開始されるすべての関連したコンポーネントが、オートコンプリートアレイメンバストア1024に記憶されることになり、オートコンプリートドロップダウンウィンドウ404は、最も関連したコンポーネントを表示することになる。例えば、次いでユーザが文字「S」の後に文字「a」を入力する場合、これらのコンポーネントにはさらにフィルタがかけられて、文字の組合せ「Sa」をもたないコンポーネントが削除される。このようにして、オートコンプリートドロップダウンウィンドウ404は常に、最も関連したオートコンプリートアレイメンバ410を表示する。他の実施例においては、ユーザはオープンな括弧(open bracket)とすることができる入力トリガを入力することもできる。オープン括弧トリガは、リスト依存性にしか関与することができない。したがって、このオートコンプリートドロップダウンウィンドウは、リスト依存性を表示することしかできない。他の実施例としては、この入力トリガは、「+」シンボルでもよい。「+」シンボルは、特定のタイプのコンポーネントに関与することができず、したがってすべてのコンポーネントが、このドロップダウンウィンドウ中に表示されるはずである。
【0040】
3.例示の入力トリガ
前述のように、このオートコンプリートプロセスは、様々なタイプのコンポーネントをプールして、特定の入力トリガについて最も関連したコンポーネントを決定することができる。この入力トリガは、ある種の1組のコンポーネントに関与することもできる。かかる状況においては、このオートコンプリートプロセスは、ある種のコンポーネントストアにアクセスする必要しかないこともある。以下の表5は、スプレッドシート関数依存性およびユーザ定義関数依存性についてのいくつかの例示のコンテキスト依存の入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表5は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0042】
以下の表6は、定義名についてのいくつかの例示のコンテキスト依存入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表6は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0044】
以下の表7は、リスト名についてのいくつかの例示のコンテキスト依存入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表7は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0046】
以下の表8は、リストフィールドについてのいくつかの例示のコンテキスト依存入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表8は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0048】
以下の表9は、ピボットテーブル名についてのいくつかの例示のコンテキスト依存入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表9は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0050】
以下の表10は、ピボットテーブルフィールドについてのいくつかの例示のコンテキスト依存入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表10は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0052】
以下の表11は、シートデータについてのいくつかの例示のコンテキスト依存入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表11は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0054】
以下の表12は、シートデータスライサ(sheet data slicer)についてのいくつかの例示のコンテキスト依存入力トリガを示している。列1は、例示のユーザ入力シナリオを特定し、列2は、このインターフェース中の例示の応答内容を示している。表12は、キーボード相互作用の一般的な実施例を表し、本発明を限定することを意図してはいない。
【0056】
4.例示のティップスウィンドウ
図4を参照すると、前述のように、参照番号406は、ティップスウィンドウである。一実施形態において、ティップスウィンドウは、内容テキスト行、およびこの選択されたオートコンプリートメンバの記述を含んでいる。このティップスウィンドウは、ユーザがコンポーネントを識別するのを助ける任意の情報を含むことができる。
図4に示すように、ティップスウィンドウ406は、オートコンプリートメンバが、オートコンプリートメンバのアレイ中でハイライトされるときに出現することができる。以下の表13は、スプレッドシート関数依存性についてのティップスウィンドウの一実施例を示している。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表13は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0058】
以下の表14は、ユーザ定義関数依存性についてのティップスウィンドウの一実施例を示している。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表14は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0060】
以下の表15は、列挙引数依存性についてのティップスウィンドウの一実施例を示している。列挙引数は、すべてのブール引数(真/偽、オン/オフ、イエス/ノーなど)を含むことができる。列挙引数はまた、数値が選択肢(1−平均、2−カウントなど)にマッピングする場合の従来の列挙引数を含むこともできる。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表15は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0062】
以下の表16は、定義名依存性についてのティップスウィンドウの一実施例を示している。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表16は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0064】
以下の表17は、リスト依存性についてのティップスウィンドウの一実施例を示している。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表17は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0066】
以下の表18は、リスト依存性についてのティップスウィンドウの他の実施例を示している。ユーザが、リストの指定部内で作業を行っており、また
図6に示すようにこの依存性が特別なアイテム610であるときに、表18に例示されるこのティップスウィンドウは、利用することができる。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表18は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0068】
以下の表19は、リスト依存性についてのティップスウィンドウの他の実施例を示している。ユーザが、リストの指定部内で作業を行っており、また
図6に示すようにこの依存性が列名608であるときに、表19に例示されるこのティップスウィンドウは、利用することができる。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表19は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0070】
以下の表20は、ピボット依存性についてのティップスウィンドウの一実施例を示している。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表20は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0072】
以下の表21は、ピボット依存性についてのティップスウィンドウの他の実施例を示している。ユーザが、ピボットの指定部内で作業を行っており、また
図7に示すようにこの依存性が特別なアイテム710であるときに、表21に例示されるこのティップスウィンドウを利用することができる。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表21は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0074】
以下の表22は、ピボット依存性についてのティップスウィンドウのさらに他の実施例を示している。ユーザが、ピボットの指定部内で作業を行っており、また
図7に示すようにこの依存性が特別なアイテム710であるときに、表22に例示されるこのティップスウィンドウは、利用することができる他のティップスウィンドウである。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表22は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0076】
以下の表23は、ピボット依存性についてのティップスウィンドウのさらに他の実施例を示している。ユーザが、ピボットフィールド内で作業を行っているときに、表23に例示されるこのティップスウィンドウを利用することができる。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表23は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0078】
以下の表24は、シートデータ依存性についてのティップスウィンドウの一実施例を示している。表24は、シートデータ接続依存性について言及している。接続は、キューブ(cube)への接続についての名前またはストリングである。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表24は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0080】
以下の表25は、シートデータ依存性についてのティップスウィンドウの他の実施例を示している。表25は、シートデータ名前空間依存性について言及している。名前空間は、キューブ(cube)内のメンバのメンバ名を含むストリングである。列1は、このティップスウィンドウの例示の内容を特定し、列2は、一実施例である。表25は、ティップスウィンドウの一般的な一実施例を表し、本発明を限定することを意図してはいない。
【0082】
5.例示のプロセス
図11は、数式セルを自動的に完成させるためのプロセスの論理的な流れ図を示している。プロセス1100は、開始ブロック1102から開始され、ブロック1104へと流れており、このステップでユーザは、オートコンプリートプロセスを促す。本発明の一実施形態においては、このユーザは、数式セル中に「=」シンボルを入力することにより、オートコンプリートプロセス1100を促す。他の実施形態においては、このユーザは、ツールバーのドロップダウンウィンドウからのプロセスを動作させることにより、このオートコンプリートプロセスを促す。本発明の趣旨および範囲を逸脱することなく、任意の数字、文字、シンボル、またはユーザ入力を使用して、オートコンプリートプロセス1100を促すことができることをさらに企図している。
【0083】
プロセス1100は、ブロック1106へと進み、ここでキャラクタが入力されているかどうかが判定される。キャラクタがすでに入力されている場合、プロセス1100は、以下で述べるように、ブロック1110へと進む。キャラクタが入力されていない場合には、プロセス1100は、このキャラクタが入力されていると判定されるまで、休止状態にとどまる。この場合にも、キャラクタは、任意の数字、文字、句読点、シンボルまたはユーザ入力を含むことができる。
【0084】
キャラクタが入力されている場合、プロセス1100は、ブロック1108へと進み、ここでこのキャラクタがトリガであるかどうかが判定される。キャラクタがトリガでない場合、このプロセスはブロック1110へと進み、ここで、このオートコンプリートドロップダウンウィンドウのステータスは、変化しない。別の言い方をすれば、このドロップダウンウィンドウが休止状態にある場合、このドロップダウンウィンドウは、休止状態のままにとどまる。他の状況において、このドロップダウンウィンドウが1組のコンポーネントを表示している場合には、このドロップダウンウィンドウは、この同じ1組のコンポーネントを表示したままにとどまる。上記の表3は、入力キャラクタがこのウィンドウの表示を起動しないことになるときは、少数の例示のシナリオをリストアップする。これらのシナリオは、例示の目的にすぎない。このウィンドウを表示することが望ましくないどのような状況においてもこのウィンドウが休止状態にとどまることができることがさらに企図されている。
【0085】
プロセス1100は、ブロック1114へと進み、ここで別のキャラクタが入力されているかどうかが判定される。別のキャラクタが入力されている状況においては、プロセス1100は、ブロック1108へとループバックし、ここでこのキャラクタがトリガであるかどうかが判定される。別のキャラクタが入力されていないと判定される場合、プロセス1100は、ブロック1116へと進み、ここでこのセル入力が完了しているかどうかが判定される。このセル入力が完了している場合、このプロセスは、終了ブロック1132において終了する。このセル入力が完了していない場合には、このプロセスは、ブロック1114へとループバックする。
【0086】
ブロック1108においてこの入力がトリガであると判定される場合、このプロセス1100は、ブロック1118へと進み、ここで特定のコンポーネントが関与しているかどうかが判定される。トリガが特定のコンポーネントに関与していないときには、上記の表4は、少数の例示のシナリオをリストアップする。他の例示のシナリオは、スペース、算術演算子、キャラクタ演算子、または完全なオートコンプリートメンバを入力することを含んでいる。かかる状況においては、このオートコンプリートアレイメンバには、フィルタがかけられず、このオートコンプリートドロップダウンウィンドウは、ブロック1120によって示されるようなオートコンプリートメンバの全体リストを含むことになる。
【0087】
ブロック1118において、このトリガがコンポーネントに関与している場合、このプロセス1100は、ブロック1122へと流れることになる。ブロック1122は、この関与するコンポーネントに関連したメンバしか含まないようにオートコンプリートアレイメンバにフィルタをかけるステップを示している。例えば、ユーザは、オープンな丸括弧を入力することができる。オープンな丸括弧だけを数式セル中で使用して、スプレッドシートの数式またはユーザ定義の数式を構築する状況においては、このフィルタは、スプレッドシート数式依存性およびユーザ定義依存性以外のすべてのコンポーネントをフィルタにかけて除去することになる。他の実施例として、ユーザは、オープンな括弧シンボルを入力することもできる。このオープンな括弧は、リスト、ピボット、またはシートデータオブジェクトにしか関与することができない。かかる状況においては、プロセス1100は、リスト、ピボット、またはシートデータオブジェクトでないすべてのコンポーネントをフィルタにかけて除去することになる。
【0088】
プロセス1100は、ブロック1124へと進み、ここでこれらのフィルタがかけられたメンバは、ユーザ選択のためのドロップダウンウィンドウ中に含められる。ブロック1126は、このドロップダウンウィンドウからオートコンプリートメンバを選択するか否かの判定を示している。選択が行われない場合、プロセス1100は、ブロック1114へとループバックする。選択が行われる場合には、ブロック1128が示すようにこの選択はこの数式セルに入力され、プロセス1100は、ブロック1130へと進み、ここでセル入力が完了しているかどうかが判定される。セル入力が完了している場合、プロセス1100は終了ブロック1132において終了する。セル入力が完了していない場合には、プロセス1100は、ブロック1114へとループバックする。
【0089】
例示の動作環境
図1を参照すると、本発明を実装するための例示のシステムは、コンピューティングデバイス100などのコンピューティングデバイスを含んでいる。基本的なコンフィギュレーションにおいては、コンピューティングデバイス100は、一般的に少なくとも1つの処理装置102、およびシステムメモリ104を含んでいる。コンピューティングデバイスの厳密なコンフィギュレーションおよびタイプに応じて、システムメモリ104は、(RAMのように)揮発性であり、(ROM、フラッシュメモリなどのように)不揮発性であり、またはこれら2つのある組合せとすることができる。システムメモリ104は、一般的にオペレーティングシステム105、1つまたは複数のアプリケーション106を含んでおり、プログラムデータ107を含むこともできる。この基本的なコンフィギュレーションは、破線108内のこれらのコンポーネントにより、
図1に示されている。
【0090】
コンピューティングデバイス100は、追加の特徴または機能を有することもできる。例えば、コンピューティングデバイス100は、例えば、磁気ディスク、光ディスクまたはテープなど、(着脱可能および/または着脱不能の)追加のデータストレージデバイスを含むこともできる。かかる追加ストレージは、
図1において着脱可能ストレージ109および着脱不能ストレージ110によって示される。コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータなど、情報を記憶するための任意の方法および技術の形で実装される揮発性および不揮発性の、着脱可能および着脱不能な媒体を含むことができる。システムメモリ104、着脱可能ストレージ109、および着脱不能ストレージ110は、すべてコンピュータストレージ媒体の実施例である。コンピュータストレージ媒体には、それだけには限定されないが、所望の情報を記憶するために使用することができ、コンピューティングデバイス100によってアクセスすることができる、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(digital versatile diskデジタル多用途ディスク)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは他の任意の媒体が含まれる。かかる任意のコンピュータストレージ媒体は、デバイス100の一部分とすることもできる。コンピューティングデバイス100はまた、キーボード、マウス、ペン、音声入力デバイス、接触入力デバイスなど、1つまたは複数の入力デバイス112を有することもできる。ディスプレイ、スピーカ、プリンタなど、1つまたは複数の出力デバイス114も含めることができる。これらのすべてのデバイスは、当技術分野において知られており、ここで長々と説明する必要はない。
【0091】
コンピューティングデバイス100はまた、このデバイスが、ネットワークや無線の網目状ネットワーク上などで、他のコンピューティングデバイス118と通信を行うことができるようにする1つまたは複数の通信接続116も含んでいる。1つまたは複数の通信接続116は、通信媒体の一実施例である。通信媒体は、一般的に搬送波や他の搬送メカニズムなど、被変調データ信号の形でコンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータを実施し、任意の情報配信媒体を含んでいる。この用語「被変調データ信号」は、この信号中の情報を符号化するようにしてその1つまたは複数の特性が設定され、または変更されている信号を意味している。実施例として限定するものではないが、通信媒体は、有線ネットワークや直接配線接続などの有線媒体、および音響、RF、赤外線、他の無線媒体などの無線媒体を含んでいる。本明細書中で使用される用語、コンピュータ読取り可能媒体は、ストレージ媒体も通信媒体も共に含んでいる。
【0092】
一実施形態において、アプリケーション106は、本発明に従って数式セルを自動的に完成させるためのアプリケーション120をさらに含んでいる。
【0093】
図2は、本発明の例示の一実施形態において使用することができるモバイルコンピューティングデバイスを示している。
図2を参照すると、本発明を実装するための例示のシステムは、モバイルコンピューティングデバイス200などのモバイルコンピューティングデバイスを含んでいる。モバイルコンピューティングデバイス200は、プロセッサ260、メモリ262、ディスプレイ228、およびキーパッド232を有している。メモリ262は、一般に揮発性メモリ(例えば、RAM)も不揮発性メモリ(例えば、ROM、フラッシュメモリなど)も共に含んでいる。モバイルコンピューティングデバイス200は、マイクロソフトからのWindows(登録商標)CEオペレーティングシステムや他のオペレーティングシステムなどのオペレーティングシステム264を含んでおり、このオペレーティングシステムは、メモリ262中に存在しており、プロセッサ260上で実行される。キーパッド232は、(典型的な電話上などの)プッシュボタン数字ダイアリングパッド、(従来のキーボードなどの)マルチキーキーボードでもよい。ディスプレイ228は、液晶ディスプレイ、またはモバイルコンピューティングデバイス中で一般に使用される他の任意のタイプのディスプレイでもよい。ディスプレイ228は、接触感受性のあるものでもよく、この場合には入力デバイスとしての機能も果たすはずである。
【0094】
1つまたは複数のアプリケーションプログラム266は、メモリ262にロードされ、オペレーティングシステム264上で実行される。アプリケーションプログラムの実施例には、電話ダイヤラプログラム、電子メールプログラム、スケジューリングプログラム、PIM(personal information management個人情報管理)プログラム、ワードプロセッシングプログラム、スプレッドシートプログラム、インターネットブラウザプログラムなどが含まれる。モバイルコンピューティングデバイス200は、メモリ262内に不揮発性ストレージ268も含んでいる。不揮発性ストレージ268を使用して、モバイルコンピューティングデバイス200の電源が切られる場合にも失われないはずの持久性の情報を記憶することができる。アプリケーション266は、電子メールアプリケーションが使用する電子メールまたは他のメッセージ、PIMが使用する連絡情報、スケジューリングプログラムが使用するアポイントメント情報、ワードプロセッシングアプリケーションが使用するドキュメントなど、ストレージ268中の情報を使用しそれに記憶することができる。
【0095】
モバイルコンピューティングデバイス200は、電源270を有しており、この電源は、1つまたは複数のバッテリとして実装することができる。電源270は、ACアダプタや、これらのバッテリを補完し、または再充電する電源を備えたドッキングクレードル(docking cradle)など外部電源もさらに含むこともできる。
【0096】
モバイルコンピューティングデバイス200は、2タイプの外部通知メカニズム、すなわちLED240およびオーディオインターフェース274を有するように示されている。これらのデバイスは、電源270に直接に結合することができ、その結果、たとえプロセッサ260および他のコンポーネントが、バッテリ電力を節約するために活動を停止することがあっても、これらは、アクティブ化されるときに、この通知メカニズムが指示する期間中はオンのままにとどまることになる。LED240は、このユーザが、このデバイスの電源をオンにしたステータスを示すアクションを取るまで、いつまでもオンのままであるようにプログラムすることができる。オーディオインターフェース274を使用して、可聴信号を提供し、またこのユーザからの可聴信号が受け取られる。例えば、オーディオインターフェース274は、電話の会話を実行するなどのために、可聴出力を提供するためにスピーカに結合し、可聴入力を受け取るためにマイクロフォンに結合することができる。
【0097】
モバイルコンピューティングデバイス200はまた、無線周波数通信など、通信情報を送信し受信するファンクションを実施する無線インターフェースレイヤ272も含んでいる。無線インターフェースレイヤ272は、通信キャリアまたはサービスプロバイダを介して、モバイルコンピューティングデバイス200と外側の世界との間の無線接続を実行する。無線インターフェースレイヤ272への伝送および無線インターフェースレイヤ272からの伝送は、オペレーティングシステム264の制御下で行われる。換言すれば、無線インターフェースレイヤ272が受信する通信情報は、オペレーティングシステム264を介してアプリケーションプログラム266に流すことができ、また逆の場合も同様である。
【0098】
一実施形態においては、アプリケーション266は、本発明に従って数式セルを自動的に完成させるためのアプリケーション280をさらに含んでいる。
【0099】
以上の明細書、実施例およびデータは、本発明の構成の製造および使用についての完全な説明を提供している。本発明の趣旨および範囲を逸脱することなく、本発明の多数の実施形態を作成することができるので、本発明は、添付の特許請求の範囲中に存在している。