(57)【要約】  論理構造またはマクロを視覚的に設計するためのコンポーネントを表示するための実施形態を提供する。一実施形態では、デザイン・サーフェスを含むことができる論理サーフェス・コンポーネントを表示する。デザイン・サーフェスを利用して、１つまたは複数のマクロを構築するデータを表示することができる。マクロのデータを受け取るためのデザイン・サーフェスを選択することができる。受け取ったデータはマクロのデザインを表現し、表示装置上のデザイン・サーフェスに表示することができる。別の実施形態では、マクロを設計するために利用される論理サーフェス・コンポーネント内でナビゲートするためのコントロールを表示装置上に表示することができる。マクロのアクションの階層的グループを含む論理サーフェス・コンポーネントを表示することができる。１つまたは複数のアクションを選択し、選択したアクションを階層的グループの間で移すための命令を視覚的インタフェース内で受け取ることができる。移動命令を受け取ったことに応答して、移動された選択したアクションを表示することができる。
2011507057.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数の論理構造（２６０）を設計するための複数の論理サーフェス・コンポーネント（２０５、２１５、２２０）を表示装置（７０）に表示するためのコンピュータ・システム（２）における方法であって、
論理構造データ（６０）を表示するために利用されているデザイン・サーフェス（２２０）を含む第１の論理サーフェス・コンポーネントを表示するステップと、
前記デザイン・サーフェスの選択を受け取るステップと、
前記論理構造データを前記デザイン・サーフェスで受け取るステップと、
前記デザイン・サーフェスで受け取った前記論理構造データを表示するステップであって、前記表示された論理構造データは前記１つまたは複数の論理構造を表示するステップとを備えることを特徴とする方法。
【請求項２】
前記１つまたは複数の論理構造、１つまたは複数の利用可能なアクション、および１つまたは複数の論理構造テンプレートのカタログを含む第２の論理サーフェス・コンポーネント（２１５）を前記デザイン・サーフェスの近くに表示するステップと、
前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、および前記１つまたは複数の論理構造テンプレートの前記カタログからの少なくとも１つの選択を受け取るステップと、
前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、および前記１つまたは複数の論理構造テンプレートの前記カタログからの前記少なくとも１つの選択を受け取ったことに応答して、前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、および前記１つまたは複数の論理構造テンプレートのうち前記選択した少なくとも１つを前記デザイン・サーフェスに挿入して表示するステップとをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
第１の論理サーフェス・コンポーネントを表示するステップは、
論理フロー要素（２５７）を前記デザイン・サーフェスに表示するステップと、
前記１つまたは複数の論理構造を編集するための１組のメニュー・エントリを含むドロップダウン・メニュー（３１０）における選択を受け取り、
前記メニューの選択を受け取ったことに応答して前記１組のメニュー・エントリを表示し、
前記１組のメニュー・エントリからのメニュー・エントリのユーザによる選択を受け取り、前記ユーザの選択に応答して、前記選択されたエントリに関連付けられた編集コマンドを実行する
ために利用されているコントロール・サブコンポーネント（２２５）を表示するステップと、
１組の論理構造の名前と前記１組の論理構造の名前に関連付けられたイベントとを含む１組のメニュー・エントリを含むドロップダウン・メニューにおける選択を受け取るために利用されているイベント・サブコンポーネント（２３０）を表示するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項４】
現在開いている論理構造の名前を前記デザイン・サーフェスに表示し、
前記現在開いている論理構造の範囲が変化した時点を判定し、
前記現在開いている論理構造の名前の表示を範囲の変化に基づいて更新する
ために利用されている論理構造オブジェクト・タブ（２１０）をデザイン・サーフェスに表示するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
名前付き論理構造内のステップを特定するステップ番号（２３７）、前記１つまたは複数の論理構造のうち少なくとも１つを表す少なくとも１つのアイコン、少なくともタイトル・バー（２３５）を１つまたは複数の方向に移動させるための少なくとも１つの移動ボタン（２４０、２４５）、１つまたは複数のアクションを削除するための削除ボタン（２５０）、および前記論理フロー要素を折り畳み、展開するための折畳み／展開ボタン（２５５）、のうち少なくとも１つを含むタイトル・バー（２３５）を前記デザイン・サーフェスに表示するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
実行可能なプログラム・ステートメントを含む１つまたは複数のアクション（２６５）を前記表示された論理フロー要素内に表示するステップをさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記カタログは、ドラッグ・アンド・ドロップ・インタフェースを含み、前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、および前記１つまたは複数の論理構造テンプレートのうち前記選択された少なくとも１つを前記第１の論理サーフェス・コンポーネントに挿入して表示するステップは、前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、前記１つまたは複数の論理構造テンプレートのうち前記選択された少なくとも１つを前記デザイン・サーフェスにドラッグするためのドラッグ命令を受け取るステップを含むことを特徴とする請求項２に記載の方法。
【請求項８】
１つまたは複数の論理構造を設計するために利用される論理サーフェス・コンポーネント内でナビゲートするためのシステムであって、
実行可能なプログラム・コードを記憶するためのメモリ（１２）と、
前記メモリに機能的に結合され、前記プログラム・コードに含まれるコンピュータ実行可能命令に応答して、
アクションの階層的グループ（５００）を含む第１の論理サーフェス・コンポーネントにおける少なくとも１つのアクションの選択を受け取り、
前記選択した少なくとも１つのアクションを、前記アクションの階層的グループの中の第１の位置から、前記アクションの階層的グループの中の第２の位置へ移すための命令を受け取り、
前記移動命令を受け取ったことに応答して、前記選択した少なくとも１つのアクションを前記アクションの階層的グループの中の前記第２の位置で表示する
ように動作する、プロセッサ（８）とを備えることを特徴とするシステム。
【請求項９】
前記選択した少なくとも１つのアクションを、前記アクションの階層的グループの中の第１の位置から、前記アクションの階層的グループの中の第２の位置へ移すための命令を受け取るステップにおいて、前記プロセッサは、複数の選択されたアクションを少なくとも第１の方向の１つに移動させるための命令を受け取るステップを含み、前記複数の選択されたアクションは、前記階層的グループにおいて第２の方向で最上位の選択されたアクションに結び付けられ、前記複数の選択されたアクションは前記階層的グループにおける最下位の選択されたアクションに結び付けられることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記プロセッサは、さらに、前記複数の選択されたアクションの各々を互いの隣に順序付けるように動作することを特徴とする請求項９に記載のシステム。
【請求項１１】
前記プロセッサは、さらに、
カタログを含む第２の論理サーフェス・コンポーネントを前記第１の論理サーフェス・コンポーネントの近くに表示し、
前記第１の論理サーフェス・コンポーネント（２００）に表示した少なくとも１つの選択された論理サーフェスの要素から、前記第１の論理コンポーネントに表示した少なくとも１つの論理サーフェスのサブ要素へナビゲートし、前記第２の論理サーフェス・コンポーネントに表示した前記カタログへナビゲートし、前記第１の論理サーフェス・コンポーネントに表示したコントロール・サブコンポーネントへナビゲートし、前記第１の論理サーフェス・コンポーネントに表示したイベント・サブコンポーネントへナビゲートし、前記少なくとも選択された論理サーフェスの要素へナビゲートする、
ように動作することを特徴とする請求項８に記載のシステム。
【請求項１２】
少なくとも１つの選択された論理サーフェス要素からナビゲートするステップにおいて前記プロセッサは、少なくとも１つの論理サーフェスの引数からナビゲートするように動作することを特徴とする請求項１１に記載のシステム。
【請求項１３】
少なくとも１つの論理サーフェスのサブ要素へナビゲートするステップにおいて前記プロセッサは、前記アクションの階層的グループの少なくとも１つのアクションへナビゲートするように動作することを特徴とする請求項１１に記載のシステム。
【請求項１４】
前記アクションの階層的グループにおける少なくとも１つのアクションの選択を受け取るステップにおいて前記プロセッサは、メッセージのテキスト・ボックス（２６０）および停止マクロのテキスト・ボックス（２６５）のうち少なくとも１つの選択を受け取るように動作することを特徴とする請求項８に記載のシステム。
【請求項１５】
コンピュータ（２）上での実行時に、１つまたは複数の論理構造（２６０）を設計するための複数の論理サーフェス・コンポーネントを表示装置（７０）に表示させるための方法を前記コンピュータに実施させるコンピュータ実行可能命令を含むコンピュータ読取可能記憶媒体（１４）であって、
前記１つまたは複数の論理構造を含む論理構造データ（６０）を表示するために利用されているデザイン・サーフェス（２２０）を含む第１の論理サーフェス・コンポーネントを表示するステップと、
前記デザイン・サーフェスの選択を受け取るステップと、
前記論理構造データを前記デザイン・サーフェスで受け取るステップと、
前記デザイン・サーフェスで受け取った前記論理構造データを表示するステップであって、前記表示された論理構造データは前記１つまたは複数の論理構造を表示するステップと、
前記１つまたは複数の論理構造、１つまたは複数の利用可能なアクション、および１つまたは複数の論理構造テンプレートのカタログを含む第２の論理サーフェス・コンポーネント（２１５）を前記デザイン・サーフェスの近くに表示するステップと、
前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、および前記１つまたは複数の論理構造テンプレートのうち少なくとも１つの前記カタログからの選択を受け取るステップと、
前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、および前記１つまたは複数の論理構造テンプレートのうち前記少なくとも１つの前記カタログからの選択を受け取ったことに応答して、前記１つまたは複数の論理構造、前記１つまたは複数の利用可能なアクション、および前記１つまたは複数の論理構造テンプレートのうち前記選択した少なくとも１つを前記デザイン・サーフェスに挿入して表示するステップと、
前記表示した複数の選択可能な機能コントロールのうち前記少なくとも１つの選択を受け取るステップと、
前記表示した複数の選択可能な機能コントロールのうち前記少なくとも１つの選択を受け取ったことに応答して、前記論理構造の要素を前記第１の論理サーフェス・コンポーネントに挿入して表示するステップとを含むことを特徴とするコンピュータ読取可能記憶媒体。
【請求項１６】
第１の論理サーフェス・コンポーネントを表示するステップは、
論理フロー要素（２５７）を前記デザイン・サーフェスに表示するステップと、
前記１つまたは複数の論理構造を編集するための１組のメニュー・エントリ（３１０）を含むドロップダウン・メニューにおける選択を受け取るステップと、
前記メニューの選択を受け取ったことに応答して前記１組のメニュー・エントリを表示するステップと、
ユーザが前記１組のメニュー・エントリからのメニュー・エントリの選択を受け取り、前記ユーザの選択に応答して、前記選択されたエントリに関連付けられた編集コマンドを実行するステップと、
に利用されているコントロール・サブコンポーネント（２２５）を前記デザイン・サーフェスに表示するステップとを含むことを特徴とする請求項１５に記載のコンピュータ読取可能記憶媒体。
【請求項１７】
第１の論理サーフェス・コンポーネントを表示するステップは、
１組の論理構造の名前と前記１組の論理構造の名前に関連付けられたイベントとを含む１組のメニュー・エントリを含むドロップダウン・メニューにおける選択を受け取るために利用されているイベント・サブコンポーネント（２３０）を表示するステップと、
現在開いている論理構造の名前を前記デザイン・サーフェスに表示し、
前記現在開いている論理構造の範囲が変化した時点を判定し、
前記現在開いている論理構造の名前の表示を前記範囲の変化に基づいて更新する
ために利用されている論理構造オブジェクト・タブ（２１０）を表示するステップとをさらに含むことを特徴とする請求項１６に記載のコンピュータ読取可能記憶媒体。
【請求項１８】
タイトル・バー（２３５）を前記デザイン・サーフェスに表示するステップをさらに含み、前記タイトル・バーは、名前付き論理構造内のステップを特定するステップ番号（２３７）と、前記１つまたは複数の論理構造のうち少なくとも１つを表す少なくとも１つのアイコンと、少なくとも前記タイトル・バーを１つまたは複数の方向に移動させるための少なくとも１つの移動ボタン（２４０、２４５）と、１つまたは複数のアクションを削除するための削除ボタン（２５０）と、および前記論理フロー要素を折り畳み、展開するための折畳み／展開ボタン（２５５）とのうち、少なくとも１つを含むことを特徴とする請求項１５に記載のコンピュータ読取可能記憶媒体。
【請求項１９】
実行可能なプログラム・ステートメントを含む１つまたは複数のアクションを前記表示された論理フロー要素内に表示するステップをさらに含むことを特徴とする請求項１８に記載のコンピュータ読取可能記憶媒体。
【請求項２０】
第１の論理サーフェス・コンポーネントを表示するステップは、データベースのマクロ・データを表示するために利用される領域を表示するステップを含むことを特徴とする請求項１５に記載のコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータのユーザは、様々なソフトウェア・アプリケーションのタスクを自動化するための１つまたは複数の論理構造またはマクロを使用することによって様々なソフトウェア・アプリケーションのタスクを自動化することができる。例えば、ユーザはボタンがクリックされたときにデータ入力フォームを開きたいかもしれない。ユーザはプログラミング言語（例えば、マクロ言語）を用いた一連のステートメントまたはコマンドによって、アプリケーション内でこのプロセスを自動化することができる。このように、この一連のステートメントまたはコマンドはマクロを含むことができる。
【背景技術】
【０００２】
一般に、アプリケーション・ソフトウェアを自動化するタスクには、マクロ言語のような高レベルのプログラミング言語で、自動化ステートメントを作成するためのテキスト・エディタ・アプリケーションの利用が必要である。幾つかの事例では、マクロ・ステートメントがグリッド部に入力されるグリッド・ベースのデザイン・アプリケーションを利用することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、ソフトウェア・アプリケーションのタスクを自動化するための前述の実装形態の双方には幾つかの欠点がある。かつての欠点は、多くの場合では、マクロのステートメントを評価すべき対象であるマクロ内の行ごとに各自動化ステートメントを繰り返さなければならないことであり、このため、マクロの設計が、時間がかかるものになるとともに長ったらしいものとなる。例えば、メッセージ・ボックスを生成しマクロを停止させるために、マクロ言語内で利用されるＩｆステートメントを複数回コピーまたはタイプする必要があることがある。マクロ・デザイン・アプリケーションに関連する別の欠点は、マクロ・デザイン・アプリケーションが、ユーザが視覚的に論理フローを理解できるようにするための複雑なマクロを視覚的に表すインタフェースを提供せず、これによりエキスパートでないデザイナがこれらのアプリケーションを使用することが難しくなることである。本発明の様々な実施形態は、これらおよび他の事項を鑑みたものである。
【課題を解決するための手段】
【０００４】
本要約は、選択した概念を簡潔な形で導入するために与えた。その概念は、発明を実施するための形態において、後でさらに説明する。本要約はクレーム主題の主要な特徴または本質的な特徴を特定しようとするものではなく、クレーム主題の範囲を決定する支援として使用しようとするものでもない。
【０００５】
論理構造またはマクロを視覚的に設計するための論理サーフェス・コンポーネントを表示するための実施形態を提供する。一実施形態では、デザイン・サーフェスを含むことができる第１の論理サーフェス・コンポーネントを表示する。デザイン・サーフェスを利用して、１つまたは複数のマクロを構築するデータを表示することができる。論理構造またはマクロのデータを受け取るためのデザイン・サーフェスを選択することができる。受け取ったデータは１つまたは複数の論理構造またはマクロのデザインを表現し、受け取ったデータを表示装置上のデザイン・サーフェスに表示することができる。別の実施形態では、１つまたは複数の論理構造またはマクロを設計するために利用される論理サーフェス・コンポーネント内でナビゲートするためのコントロールを表示装置上に表示することができる。論理サーフェスまたはマクロのアクションの階層的グループを含む論理サーフェス・コンポーネントを表示することができる。１つまたは複数のアクションを選択し、選択したアクションを階層的グループ内の第１の位置から階層的グループ内の第２の位置へ移すための命令を視覚的インタフェース内で受け取ることができる。移動命令を受け取ったことに応答して、選択したアクションを第２の位置で表示することができる。
【０００６】
これらおよび他の特徴と利点は、以下の詳細な説明を読み、関連する図面を検討することで明らかになろう。前述の一般的な説明と後の詳細な説明はともに例にすぎず、特許請求の範囲に記載の本発明を限定するものではないことは理解されよう。
【図面の簡単な説明】
【０００７】
【図１】様々な実施形態に従う、論理構造を設計するための論理サーフェス・コンポーネントを表示するために利用できるコンピューティング環境を示すブロック図である。
【図２】一実施形態に従う、デザイン・サーフェスにおける論理構造の例示的なコンピュータ・スクリーン表示を示す図である。
【図３】一実施形態に従う、論理構造デザイン・サーフェスにおけるコントロール・サブコンポーネントのドロップダウン・メニューの例示的なコンピュータ・スクリーン表示を示す図である。
【図４】一実施形態に従う、名前付けサブルーチンに対して利用できる論理構造デザイン・サーフェスの例示的なコンピュータ・スクリーン表示を示す図である。
【図５】一実施形態に従う、１つまたは複数の論理構造を設計するために利用される論理サーフェス・コンポーネント内においてナビゲートすることを示すブロック図である。
【図６】一実施形態に従う、論理サーフェス・コンポーネント内において論理サーフェスの要素とサブ要素の間でナビゲートすること、および論理構造デザイン・サーフェスにおいて論理サーフェスのコンポーネントとサブコンポーネントの間でナビゲートすることを示す、スクリーン・ショットの図である。
【図７】一実施形態に従う、論理構造を設計するための論理サーフェスのコンポーネントを表示するルーチンを示す流れ図である。
【発明を実施するための形態】
【０００８】
論理構造またはマクロを視覚的に設計するための論理サーフェス・コンポーネントを表示するための実施形態を提供する。一実施形態では、デザイン・サーフェスを含むことができる第１の論理サーフェス・コンポーネントを表示する。デザイン・サーフェスを利用して、１つまたは複数のマクロを構築するデータを表示することができる。論理構造またはマクロのデータを受け取るためにデザイン・サーフェスを選択することができる。受け取ったデータは、１つまたは複数の論理構造またはマクロのデザインを表現し、表示装置上のデザイン・サーフェスに表示することができる。別の実施形態では、１つまたは複数の論理構造またはマクロを設計するために利用される論理サーフェス・コンポーネント内でナビゲートするためのコントロールを表示装置上に表示することができる。論理サーフェスまたはマクロのアクションの階層的グループを含む論理サーフェス・コンポーネントを表示することができる。１つまたは複数のアクションを選択し、命令を視覚的インタフェース内で受け取って、階層的グループ内の元の位置から階層的グループ内の第２の位置へ選択したアクションを移すことができる。移動命令を受け取ったことに応答して、第２の位置で選択したアクションを表示することができる。
【０００９】
ここで図面を参照して、様々な例示的な実施形態を説明する。図面では、同じ番号は同じ要素を表す。
【００１０】
例示的な動作環境
ここで図１を参照する。以下の議論は、様々な例示的な実施形態を実装できる適切なコンピューティング環境の簡潔で一般的な説明を提供することを意図している。様々な実施形態を、パーソナル・コンピュータ上のオペレーティング・システムで稼動しているプログラム・モジュールと関連して実行されるプログラム・モジュールの一般的な文脈で説明するが、これらの様々な実施形態を他種のコンピュータ・システムおよびプログラム・モジュールと組み合わせて実装してもよいことは当業者には理解されよう。
【００１１】
一般に、プログラム・モジュールには、特定のタスクを実行するか特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、および他種の構造が含まれる。さらに、様々な実施形態を、ハンドヘルド装置、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラム可能消費家電、ミニコンピュータ、メインフレーム・コンピュータ、等を含む他のコンピュータ・システム構成で実践してもよいことは当業者には理解されよう。様々な実施形態を、通信ネットワークを通して接続されたリモート処理装置によりタスクが実行される分散コンピューティング環境で実施してもよい。分散コンピューティング環境では、プログラム・モジュールを、ローカルおよびリモートのメモリ記憶装置に配置してもよい。
【００１２】
図１は、汎用目的のデスクトップ、ラップトップ、ハンドヘルド、タブレット、または１つもしくは複数のアプリケーション・プログラムを実行できる他種のコンピュータを含みうるコンピュータ２を示す。コンピュータ２は、少なくとも１つのＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、中央演算装置、以下ＣＰＵ）８、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ランダム・アクセス・メモリ、以下ＲＡＭ）１８およびＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ、読取専用メモリ、以下ＲＯＭ）２０を含むシステム・メモリ１２、ならびにシステム・メモリ１２をＣＰＵ８に結合させるシステム・バス１０を含む。例えば起動中にコンピュータ内の要素間で情報の転送を支援する基本ルーチンを含む基本入出力システムがＲＯＭ２０に記憶されている。
【００１３】
コンピュータ２はさらに、オペレーティング・システム３２を記憶するための大容量記憶装置１４、論理構造デザイン・アプリケーション５０、および論理構造データ６０を備える。様々な実施形態によれば、オペレーティング・システム３２は、ワシントン州レドモンドのマイクロソフト社のＷＩＮＤＯＷＳオペレーティング・システムのようなネットワーク・パーソナル・コンピュータの動作を制御するのに適しているであろう。論理構造デザイン・アプリケーション５０は、やはりワシントン州レドモンドのマイクロソフト社のＡＣＣＥＳＳデータベース生成管理デスクトップ・アプリケーション・プログラムを含むことができる。一実施形態によれば、論理構造デザイン・アプリケーション５０を利用して、データベースを生成し管理することに関連する様々な作業を自動化するための論理構造またはマクロを設計できることは理解されよう。例えば、ユーザは、データベース・プロジェクト・ファイルのセキュリティをテストするためのマクロを設計することができる。セキュリティ・ベースのマクロを利用して、データベース・プロジェクトが信頼されるかどうかを検証することができ、プロジェクトが信頼されない場合は、マクロはそれ以上の実行を自動的に停止することができる。論理構造データ６０は、マクロを設計するための、論理構造デザイン・アプリケーション５０によって利用されるマクロ・データを含むことができる。様々な実施形態によれば、論理構造データ６０はマクロの引数とマクロのアクションを含むことができるがこれらに限定されない。以下の詳細な説明および添付の特許請求の範囲全体を通じて、論理構造、論理構造データ、論理構造の引数、およびアクションを交互にマクロ、マクロ・データ、マクロ引数およびマクロ・アクションと称することができることは理解されよう。
【００１４】
大容量記憶装置１４は、バス１０に接続された大容量記憶コントローラ（図示せず）を介してＣＰＵ８に接続される。大容量記憶装置１４とその関連するコンピュータ読取可能媒体はコンピュータ２に対して不揮発性の記憶域を提供する。本明細書に含めたコンピュータ読取可能媒体の記載はハード・ディスクまたはＣＤ−ＲＯＭドライブのような大容量記憶装置に関するが、コンピュータ読取可能媒体は、コンピュータ２がアクセスまたは利用できる任意の利用可能な媒体であることができることは当業者には理解されよう。限定ではなく例として、コンピュータ読取可能媒体はコンピュータ記憶媒体と通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラム・モジュールまたは他のデータのような情報を記憶するための任意の方法または技術で実装した揮発性および不揮発性媒体、取外し可能および取外し不能媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュ・メモリもしくは他の個体メモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、または他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶もしくは他の磁気記憶装置または所望の情報の記憶に使用できコンピュータ２がアクセスできる他の任意の媒体が含まれるがこれらに限らない。
【００１５】
本発明の様々な実施形態によれば、コンピュータ２は、例えば、ローカル・ネットワークまたは広域ネットワーク（例えば、インターネット）のようなネットワーク４を介したリモート・コンピュータへの論理接続を用いて、ネットワーク環境で動作することができる。コンピュータ２は、バス１０に接続されたネットワーク・インタフェース・ユニット１６を介してネットワーク４に接続することができる。コンピュータ２が、ネットワーク環境で動作するときは、ワシントン州レドモンドのマイクロソフト社のＥＸＣＥＬ／ＡＣＣＥＳＳ  ＳＥＲＶＩＣＥＳプラットフォームのような共有データベース・サービス・プラットフォームをホストする１つまたは複数のリモート・サーバと通信できることは当業者には理解されよう。ネットワーク・インタフェース・ユニット１６を利用して、他種のネットワークおよびリモート・コンピューティング・システムと接続することもできることは理解されよう。コンピュータ２はまた、幾つかの入力タイプから入力を受け取って処理するための入出力コントローラ２２を含んでもよい。それらの入力タイプには、キーボード、マウス、スタイラス・ペン、指、および／または他の手段が含まれる。同様に、入出力コントローラ２２は、表示装置７０、プリンタ、または他種の出力装置に出力を提供することができる。さらに、タッチ・スクリーンが入出力機構の役割を果たすことができる。
【００１６】
上で簡潔に述べたように、オペレーティング・システム３２のような幾つかのプログラム・モジュールとデータ・ファイルを、コンピュータ２の大容量記憶装置１４およびＲＡＭ１８に記憶することができる。大容量記憶装置１４およびＲＡＭ１８はまた、１つまたは複数のプログラム・モジュールを記憶してもよい。具体的には、大容量記憶装置１４およびＲＡＭ１８は論理構造デザイン・アプリケーション５０および論理構造データ６０を記憶してもよい。
【００１７】
図２は、一実施形態に従って、論理構造またはマクロを設計するために利用できる、論理構造デザイン・アプリケーション５０が生成した論理構造デザイン・サーフェス２００の例示的なコンピュータ・スクリーン表示である。論理構造デザイン・サーフェス２００は、論理構造の設計に利用できる様々なコンポーネントを含む。それらの論理構造には、リボン・コンポーネント２０５、論理構造オブジェクト・タブ２１０、カタログ２１５、デザイン・サーフェス２２０が含まれる。
【００１８】
リボン・コンポーネント２０５は、論理構造の生成および実行に利用される選択的な機能コントロールを表示するためのコマンド・ユーザ・インタフェースを含むことができる。論理構造オブジェクト・タブ２１０を、現在開いている論理構造文書の名前（例えば、「Ｍａｃｒｏ１」）を表現し表示するために利用することができ、（デザイン・サーフェス２２０に関して後でさらに詳細に説明するが）論理構造のスコープが変化すると、論理構造デザイン・アプリケーション６０は論理構造オブジェクト・タブ２１０を更新してスコープの変化を表示することができる。カタログ２１５を利用して、デザイン・サーフェス２２０において挿入および編集するためにユーザが選択できる論理構造、アクション、およびテンプレートのリストを表示することができる。具体的には、様々な実施形態によれば、カタログ２１５は、デザイン・サーフェス２２０において現在表示されている論理構造の文脈内にある利用可能なアクションを表示するためのドラッグ・アンド・ドロップ・インタフェースを含むことができる。ユーザがカタログ２１５を利用して、テキストをカタログ２１５の検索ボックス部に入力して利用可能なアクションを検索するか、あるいは所望の利用可能なアクションを選択してカタログ２１５からデザイン・サーフェス２２０にドラッグできることは理解されよう。デザイン・サーフェス２２０はコントロール・サブコンポーネント２２５とイベント・サブコンポーネント２３０を含むことができる。一実施形態によれば、コントロール・サブコンポーネント２２５は、ドロップダウン・メニューを含むことができ、そのドロップダウン・メニューから、論理構造デザイン・アプリケーション５０は、論理構造またはマクロを編集するためのメニュー・エントリの選択を受け取る。コントロール・サブコンポーネント２２５は図３に関して後でさらに詳細に論ずる。イベント・サブコンポーネント２３０は、ドロップダウン・メニューを含むことができ、そのドロップダウン・メニューから、論理構造デザイン・アプリケーション５０は、１組のメニュー・エントリから名前付き論理構造の選択、またはその１組のメニュー・エントリから名前付きマクロに関連付けられたイベントの選択を受け取る。
【００１９】
デザイン・サーフェス２２０はまた、タイトル・バー２３５と論理フロー要素２５７を含むことができる。タイトル・バー２３５を利用して、論理構造またはマクロにおける現在のステップを特定するステップ番号２３７と、カレント・データベースの安全性レベルを評価する式である句２３９（例えば、「Ｎｏｔ（ＣｕｒｒｅｎｔＰｒｏｊｅｃｔ．ＩｓＴｒｕｓｔｅｄ」）、タイトル・バー２３５および論理フロー要素２５７を上または下へ移動するために利用できる上への移動ボタン２４０および下への移動ボタン２４５、デザイン・サーフェス２２０内で選択された動作２６０および２６５を削除するために利用できる削除ボタン２５０、および論理フロー要素２５７をタイトル・バー２３５に展開または折り畳むために利用できる展開／折畳みボタン２５５を表示することができる。本明細書で後にさらに詳細に論ずるように、論理フロー要素２５７を利用して、タイトル・バー２３５内で特定される論理構造に関連付けられた１つまたは複数のアクション２６０および２６５を表示することができる。アクション２６０および２６５の各々は、それ自体、移動ボタンおよび展開／折畳みボタンを含むことができる。従って、移動ボタン２４０および２４５を利用することで、タイトル・バー２３５だけでなく、論理フロー要素２５７内の任意のアクション（即ち、子）を移動することができる。同様に、展開／折畳みボタン２５５を利用することで、論理フロー要素２５７内のアクション群を表示または隠蔽することができる。論理フロー要素２５７を展開する場合、論理フロー要素２５７を以前に折畳んだときにどの個別アクションまたは子が折り畳んだ状態または展開した状態にあったかを覚えておくように、論理構造デザイン・アプリケーション５０を構成することができる。様々な実施形態によれば、任意のアクションを（論理フロー要素２５７内の異なる位置のような）任意の挿入可能な位置にドラッグできるように、ドラッグ・アンド・ドロップ機能をデザイン・サーフェス２２０において有効とするように論理構造デザイン・アプリケーション５０を構成できることは理解されよう。ドラッグされたアクション・コンテナをドロップするための空間を作るために他の表示されたアクション・コンテナをシフトするように、論理構造デザイン・アプリケーション５０を構成してもよい。
【００２０】
論理フロー要素２５７は、イベントをプログラム的に発生させるための実行可能なプログラム・ステートメントを含むことができるアクション２６０および２６５のような１つまたは複数のアクションを含むことができる。アクション２６０はアクション名（即ち、「メッセージ・ボックス」）およびパラメータを表示する。パラメータは、引数２８５と２９０、および次へリンク２６４を含む。引数２８５と２９０は、アクション２６０が正しく実行するために必要としうる変数を提供する。アクション２６０から直接、引数２８５と２９０を編集し管理できることは理解されよう。さらに、様々な実施形態によれば、引数２８５と２９０を、アクション２６０でユーザにより部分的に入力し、論理サーフェス・デザイン・アプリケーション５０により自動的に完成できることは理解されよう。一実施形態によれば、次へリンク２６４を利用して、冗長で、安全でなく、不明瞭で、または古い、論理構造の引数を隠蔽することができる。アクション２６５は単一ステップのアクション名（即ち、「マクロを停止」）を表示する。上述のタイトル・バー２３５と同様に、アクション２６０は展開／折畳みボタンを含むことができる。一実施形態によれば、アクション２６０を折り畳むことによって、引数２８５と２９０が、折り畳まれた論理フロー要素２５７内に表示される。論理フロー要素２５７は編集コンテナを含むこともできる。編集コンテナには、追加のアクションをカタログ２１５から、タイトル・バー２３５内で特定される論理構造に追加するためのアクション追加編集コンテナ２７０、追加の分岐を論理構造内の既存の論理フローに追加するためのＥｌｓｅ  Ｉｆ追加コンテナ２７５、新しい論理構造またはマクロのサブルーチンを追加するための新しい名前付きマクロ追加コンテナ２８０が含まれるがこれらに限らない。例えばＥｌｓｅ追加コンテナのような追加の編集コンテナを論理フロー要素２５７内に表示することもできることは理解されよう。
【００２１】
図３は、一実施形態に従う、論理構造デザイン・サーフェス２００において論理構造デザイン・アプリケーション５０が生成したコントロール・サブコンポーネント２２５の例示的なコンピュータ・スクリーン表示である。図２に関して上述したように、コントロール・サブコンポーネント２２５は、論理構造またはマクロを編集するための１組のメニュー・エントリを含むことができる。例示的なコントロール・サブコンポーネント２２５によって示すように、現在選択されているものに対して利用可能なマクロのドロップダウン・メニュー３１０が、連絡先情報に関連するコマンドと他のデータを含むメニュー・エントリとともに示されている。
【００２２】
図４は、一実施形態に従う、名前付けサブルーチンに対して利用できる論理構造デザイン・サーフェス４２０の例示的なコンピュータ・スクリーン表示４００を示す。デザイン・サーフェス４２０はタイトル・バー４２５および４４０を含む。タイトル・バー４２５を利用して、フォーム・フィールド４３０内に表示されたマクロに対するデフォルトの「名前空間」を表示することができる。タイトル・バー４４０を使用して、フォーム・フィールド４５０内のマクロに対するユーザ宣言型の名前を受け取ることができる。様々な実施形態によれば、名前付きマクロをマクロ・オブジェクト（データ・オブジェクトまたはユーザ・インタフェース・オブジェクト）内、またはテーブル・マクロ内に含めることができる。名前付きマクロはサブルーチンとして動作し、名前付きマクロ自体をその名前によって全体から機能的に分離する。デフォルトの「名前空間」は、マクロ用の宣言された名前の外部で実行できることは理解されよう。例えば、デザイン・サーフェス４２０内に示したマクロ用のデフォルトの名前空間が、フォーム・フィールド４３０内の名前＜Ｄｅｆａｕｌｔ＞を表示している。様々な実施形態によれば、名前＜Ｄｅｆａｕｌｔ＞を編集することはできない。＜Ｄｅｆａｕｌｔ＞名前空間はまた、終了タイトル・バー（即ち、＜Ｄｅｆａｕｌｔ＞終了）４３５を有することができる。次いで、名前付きマクロはデフォルトの名前空間を辿ることができる（例えば、タイトル・バー４４０内に表示されるマクロ名「マイ・フットバー・マクロ」はタイトル・バー４２５内に示した＜Ｄｅｆａｕｌｔ＞名前空間を辿る）。名前付きマクロはまた、「＜Ｎａｍｅ＞終了」という表示形式を有しうる終了タイトル・バー（図示せず）を有することができる。新しい名前付きマクロ追加テキスト・ボックス４４５によって示すように、追加のマクロ名を、以前に名前を付けたマクロの下に宣言することもできる。様々な実施形態によれば、テーブル・マクロ（図示せず）はイベントと名前付きマクロを含むことができるが、デフォルトの名前空間はもたない。
【００２３】
図５は、一実施形態に従う、論理サーフェス・コンポーネント内におけるアクションのナビゲーションを示すブロック図５００である。１つまたは複数のアクション５０５および（例えば、図２に関して論じたアクション・コンテナにおける、キーボード命令、または移動ボタンの選択を介した）移動命令の選択に応答して、論理構造デザイン・アプリケーション５０を、選択されたアクション５０５をアクションの階層的グループ５１５内の異なる位置にナビゲートするように構成することができる。例えば、図５に示すように、選択されたアクション５０５を、グループ５１５内からサブグループ５１０内部の最も下の位置に移動させることができる。サブグループ５１０内から、選択されたアクション５０５をサブ・サブグループ５２０に移動させることができる。サブ・サグループ５２０内から、選択されたアクション５０５をサブグループ５１０内のアクションの階層におけるより高い位置に移動させることができる。サブグループ５１０内から、選択されたアクション５０５をグループ５１５内のアクションの階層におけるより高い位置に移動させることができる。最後に、グループ５１５内から、選択されたアクションを、グループおよびサブグループ５１５、５１０、および５２０の階層の外部へ移動させることができる。一実施形態によれば、上述した単一のアクション（即ち、ノード）の移動を１つまたは複数の連続的なアクションに適用できることは理解されよう。具体的には、複数のアクションを、あたかもそれらのアクションが全て単一のノードとして選択されたかのように、同時に選択し移動させることができる。複数のアクションが関与する移動命令を受け取ると、論理構造デザイン・アプリケーション５０は選択されたアクションを最も下の選択された項目に結び付け、それらの選択されたアクションを互いの隣に順序付け、次いでそれらの選択されたアクションを移動させる。
【００２４】
図６は、一実施形態に従う、論理サーフェス・コンポーネント内において論理サーフェスの要素とサブ要素の間でナビゲートすること、および論理構造デザイン・サーフェス２００において論理サーフェスのコンポーネントとサブコンポーネントの間でナビゲートすることを示す、スクリーン・ショットの図である。論理構造デザイン・アプリケーション５０を、論理構造デザイン・サーフェス２００内で所定の順序でナビゲートまたはタブ移動するように構成することができる。具体的には、一実施形態によれば、タブ順序がデザイン・サーフェス２２０の選択された論理要素（例えば、ＩＦステートメント）から開始し、タイトル・バー２３５および論理フロー要素２５７に進むことができる。論理フロー要素２５７内で、タブ順序は、カタログ２１５へ進み最終的にコントロール・サブコンポーネント２２５および編集サブコンポーネント２３０に進む前に、表示された引数から、表示されたアクション・コンテナ階層および編集コンテナを通ってナビゲートする。
【００２５】
図７は、一実施形態に従う、１つまたは複数の論理構造を設計するための論理サーフェスのコンポーネントを表示装置に表示するルーチン７００を示す流れ図である。図１および２のコンポーネントを図７の説明において言及したが、その実施形態は図７の説明に限定されるわけではない。本明細書で提示したルーチンの議論を読むと、本発明の様々な実施形態の論理的な動作が、（１）コンピューティング・システム上で実行されているコンピュータ実行型の動作またはプログラム・モジュールの列として、および／または（２）コンピューティング・システム内の相互に接続された、機械論理回路または回路モジュールとして実装されることは理解されよう。実装形態は、本発明を実装するコンピューティング・システムの性能要件に応じた選択の問題である。従って、図７に示し説明された、様々な実施形態を構成する論理的な動作は、動作、構造的装置、行為またはモジュールと様々に称される。これらの動作、構造的装置、行為およびモジュールを、添付の特許請求の範囲で述べる本発明の趣旨と範囲から逸脱せずに、ソフトウェアで、ファームウェアで、特殊目的のデジタル論理で、およびそれらの任意の組合せで、実装してもよいことは当業者には理解されよう。
【００２６】
ルーチン７００は動作７０５から始まり、動作７０５において、コンピュータ２上で稼動している論理構造デザイン・アプリケーション５０は、図２に関して上述したリボン・コンポーネント２０５、論理構造オブジェクト・タブ２１０、カタログ２１５、およびデザイン・サーフェス２２０のような論理構造デザイン・サーフェス・コンポーネントを表示させる。ルーチン７００は動作７０５から動作７１０へと続き、動作７１０において、論理構造デザイン・アプリケーション５０は、カタログ２１５から論理構造、利用可能なアクション、および／またはテンプレートの選択を受け取る。
【００２７】
ルーチン７００は動作７１０から動作７１５へと続き、動作７１５において、論理構造デザイン・アプリケーション５０はカタログ２１５から選択された論理構造、利用可能なアクション、および／またはテンプレートをデザイン・サーフェス２２０に挿入する。具体的には、論理構造デザイン・アプリケーション５０は、ドラッグ命令をユーザから受け取ったことに応答してドラッグ動作を実施することによって、選択された論理構造、利用可能なアクション、および／またはテンプレートを挿入することができる。カタログ２１５から選択された論理構造、利用可能なアクション、および／またはテンプレートを挿入する際、論理構造デザイン・アプリケーション５０はステップ番号と選択された論理構造の名前とをタイトル・バー２３５に表示し、さらに、選択された論理構造に関連付けられた論理構造の引数とアクションを論理フロー要素２５７内に表示することができる。
【００２８】
ルーチン７００は動作７１５から動作７２０へと続き、動作７２０において、論理構造デザイン・アプリケーション５０は、追加のアクション、論理フローの分岐、または新しい論理構造もしくはマクロのサブルーチンのような追加の論理構造データを入力するためのデザイン・サーフェス２２０のユーザによる選択を受け取る。ルーチン７００は動作７２０から動作７２５へと続き、動作７２５において、論理構造デザイン・アプリケーション５０は論理構造データをデザイン・サーフェス２２０で受け取る。具体的には、論理構造デザイン・アプリケーション５０は、追加のアクションを１つまたは複数のアクション追加編集コンテナ２７０で、追加の論理フロー分岐を１つまたは複数のＥｌｓｅ  Ｉｆ追加（またはＥｌｓｅ追加）コンテナ２７５で、および追加のマクロのサブルーチンを１つまたは複数の名前付きマクロ追加コンテナ２８０で、受け取ることができる。
【００２９】
ルーチン７００は動作７２５から動作７３０へと続き、動作７３０において、論理構造デザイン・アプリケーション５０は受け取った論理構造データをデザイン・サーフェス２２０に表示する。動作７３０の後、ルーチン７００は終了する。
【００３０】
本発明を様々な例示的な実施形態に関連して説明したが、添付の特許請求の範囲内にある多数の修正をそれらの実施形態に加えることができることは当業者には理解されよう。従って、決して本発明の範囲を上の説明によって限定する意図はなく、本発明の範囲は専ら添付の特許請求の範囲によって決まる。
【図１】
2011507057.tif 000003
【図５】
2011507057.tif 000004
【図７】
2011507057.tif 000005
【図２】
2011507057.tif 000006
【図３】
2011507057.tif 000007
【図４】
2011507057.tif 000008
【図６】
2011507057.tif 000009
【国際調査報告】
2011507057.tif 000010
2011507057.tif 000011