次の方法で共有


Application.SysCmd メソッド (Access)

SysCmd メソッドを使用して、進行状況計またはオプションの指定されたテキストをステータス バーに表示したり、Microsoft Access とその関連ファイルに関する情報を返したり、指定したデータベース オブジェクトの状態を返したり (オブジェクトが開いているか、新しいオブジェクトであるか、変更されたが保存されていないかを示します)。 Variant 型です。

構文

SysCmd (Action, Argument2, Argument3)

expressionApplication オブジェクトを 表す変数。

パラメーター

名前 必須 / オプション データ型 説明
操作 必須 AcSysCmdAction 実行するアクションの種類を識別する AcSysCmdAction 定数。 これらの定数は進行状況インジケーターに適用されます。 これらのアクションが成功した場合、 SysCmd メソッドは Null を 返します。 それ以外の場合、Access によって実行時エラーが生成されます。
Argument2 省略可能 バリアント型 (Variant) ステータス バーに左揃えで表示されるテキスト。 この引数は、 Action 引数が acSysCmdInitMeteracSysCmdUpdateMeter、または acSysCmdSetStatus の場合に必要です。この引数は、他の Action 引数値には有効ではありません。

: Action パラメーターに acSysCmdGetObjectState 値を指定する場合は、適切な AcObjectType 定数を指定する必要があります。
Argument3 省略可能 バリアント型 (Variant) 進行状況計の表示を制御する数値式。 この引数は、 Action 引数が acSysCmdInitMeter の場合に必要です。この引数は、他の Action 引数値には有効ではありません。

: Action パラメーターに acSysCmdGetObjectState 値を指定する場合は、データベース オブジェクトの名前を指定する必要があります。

戻り値

バリアント型

解説

たとえば、新しいフォームを作成するカスタム ウィザードで、、SysCmd メソッドを使用して、フォーム作成の進行を進行状況インジケーターに表示できます。

さまざまな進行状況インジケーター アクションで SysCmd メソッドでを呼び出すと、所要時間やステップ数のわかっている操作の進行状況を、ステータス バーの進行状況インジケーターに表示できます。

進行状況メーターをステータス バーに表示するには、まず acSysCmdInitMeterAction 引数と Text 引数と Value 引数を使用して SysCmd メソッドを呼び出す必要があります。 Action 引数が acSysCmdInitMeter の場合、Value 引数はメーターの最大値 (100%) です。

操作の進行状況を表示するようにメーターを更新するには、acSysCmdUpdateMeterAction 引数と Value 引数を指定して SysCmd メソッドを呼び出します。 Action 引数が acSysCmdUpdateMeter の場合、SysCmd メソッドは Value 引数を使用して、メーターによって表示される割合を計算します。 たとえば、最大値が 200 のときに引数 value に 100 を指定すると、進行状況インジケーターが半分まで進みます。

acSysCmdSetStatusAction 引数と Text 引数を使用して SysCmd メソッドを呼び出すことで、ステータス バーに表示されるテキストを変更することもできます。 たとえば、並べ替え中にテキストを "Sort..." に変更できます。 並べ替えが完了したら、テキストを削除してステータス バーをリセットします。 Text 引数には、約 80 文字を含めることができます。 ステータス バーのテキストは比例フォントを使用して表示されるため、表示できる実際の文字数は 、Text 引数で指定されたすべての文字の合計幅によって決まります。

ステータス バーに表示する文字数を増やすと、インジケーターはその分短くなります。 テキストがステータス バーより長く 、Action 引数が acSysCmdInitMeter の場合、 SysCmd メソッドはテキストを無視し、ステータス バーに何も表示しません。 テキストがステータス バーより長く 、Action 引数が acSysCmdSetStatus の場合、 SysCmd メソッドはステータス バーに合わせてテキストを切り捨てます。

長さ 0 の文字列 ("") は、ステータス バーに表示する文字として指定できません。 ステータス バーから既存のテキストを削除する場合は、 Text 引数を 1 つのスペースに設定します。 次の例は、ステータス バーから文字を消去する方法を示しています。

varReturn = SysCmd(acSysCmdInitMeter, " ", 100) 
varReturn = SysCmd(acSysCmdSetStatus, " ")

acSysCmdSetStatusAction 引数を使用して SysCmd メソッドを呼び出してテキストを設定したときに進行状況メーターが既に表示されている場合、SysCmd メソッドはメーターを自動的に削除します。

他のアクションと共に SysCmd メソッドを呼び出して、Access が実行されているバージョン番号、実行時バージョンかどうか、Access 実行可能ファイルの場所、コマンド ラインで指定された /profile 引数の設定、Access に関連付けられている .ini ファイルの名前など、Access に関するシステム情報を決定します。

注:

Access の一般的な設定とカスタマイズされた設定の両方が Windows レジストリに格納されるようになりました。そのため、Access アプリケーションに .ini ファイルは必要ありません。 acSysCmdIniFileAction 引数は、以前のバージョンの Access との互換性のために存在します。

acSysCmdGetObjectStateAction 引数と ObjectType 引数と ObjectName 引数を使用して SysCmd メソッドを呼び出して、指定したデータベース オブジェクトの状態を返します。 オブジェクトは、開いていないか存在しない、開いている、新しい、または変更後保存されていない、の 4 つのいずれかの状態が考えられます。

たとえば、テーブルに新しいフィールドを挿入するウィザードをデザインする場合に、テーブルの構造に加えられた変更の保存が済んでいないことが確認できたら、挿入する前に保存できるようにします。 SysCmd メソッドが返す値で、テーブルの状態が確認できます。

acSysCmdGetObjectStateAction 引数を持つ SysCmd メソッドは、次の定数の任意の組み合わせを返すことができます。

定数 データベース オブジェクトの状態
acObjStateOpen 開いている 1
acObjStateDirty デザインの変更後保存されていない 2
acObjStateNew 新しい 4

注:

ObjectName 引数によって参照されるオブジェクトが開いていないか、存在しない場合、SysCmd メソッドは 0 の値を返します。

次のコードを使用すると、ActiveX コントロールがフォームに追加されたときに、式で ActiveX コントロールを使用できます。

SysCmd 14, "<ActiveX Control GUID>" 

注:

  • を、式で有効にする ActiveX コントロールを識別するグローバル一意識別子 (GUID) に置き換えます <ActiveX Control GUID>
  • ActiveX コントロールは、許可されているコントロールの一覧に追加された後は削除できません。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。