SetValue マクロ アクション

"SetValue/値の代入" マクロ アクションを使って、フォーム、フォーム データシート、または レポート上にある Access のフィールド、コントロール、またはプロパティの値を設定できます。

注: "SetValue/値の代入" マクロ アクションを使って、オブジェクトを返す Access プロパティの値を設定することはできません。

注: このアクションは、データベースが信頼されていない場合は許可されません。

設定

"SetValue/値の代入" マクロ アクションには次の引数があります。

アクションの引数

説明

アイテム

値を設定するフィールド、コントロール、またはプロパティの名前。マクロ デザイン ウィンドウの [アクションの引数] セクションの [アイテム] ボックスに、フィールド、コントロール、またはプロパティの名前を入力します。controlname (マクロを呼び出したフォームまたはレポート上のコントロールの場合) や Forms!formname!controlname など、完全な構文を使ってこのアイテムを参照する必要があります。これは必須の引数です。

Access がこのアイテムの値を設定するために使う式。式の中のオブジェクトを参照するには、常に完全な構文を使う必要があります。たとえば、Employees フォームの Salary コントロールの値を 10% 増やすには、Forms!Employees!Salary*1.1 を使います。これは必須の引数です。

注: この引数の式の前に等号 (=) を付けてはなりません。等号を付けると、Access は式を評価し、その値をこの引数の式として使います。その式が文字列の場合、予期しない結果になる可能性があります。

たとえば、この引数に「="String1"」と入力すると、Access は最初にこの式を "String1" と評価します。その後、"String1" をこの引数の式として使うので、マクロを呼び出したフォームまたはレポート上の String1 という名前のコントロールまたはプロパティを検索することが予想されます。

注: Access データベース (.mdb または .accdb) では、これらの引数の式を作成するには、[ビルド] ボタンをクリックして式ビルダーを使います。

解説

このアクションを使って、フォーム、フォーム データシート、レポート上のフィールドまたはコントロールの値を設定できます。また、ビューのほぼすべてのコントロール、フォーム、レポートのプロパティの値を設定することもできます。マクロを使って特定のプロパティを設定できるかどうか、および設定できるビューについては、Visual Basic エディターでそのプロパティのヘルプ トピックを参照してください。

また、フィールドにバインドされたコントロールがフォームに含まれない場合でも、フォームの基になっているテーブルのフィールドの値を設定できます。そのようなフィールドの値を設定するには、[アイテム] ボックスで Forms!formname!fieldname という構文を使います。また、Reports!reportname!fieldname という構文を使うことでレポートの基になっているテーブルのフィールドを参照することもできますが、このフィールドにバインドされたコントロールがレポート上に存在するか、またはレポートの演算コントロールでフィールドが参照されている必要があります。

フォームのコントロールの値を設定する場合、"SetValue/値の代入" マクロ アクションは、コントロールのフォーム レベルの入力規則はトリガーしませんが、コントロールがバインドされたコントロールの場合は、基になっているフィールドのテーブル レベルの入力規則をトリガーします。また、"SetValue/値の代入" マクロ アクションは再計算もトリガーしますが、再計算は直ちに実行されない場合があります。すぐに再描画をトリガーして強制的に再計算を完了するには、"RepaintObject/オブジェクトの再描画" マクロ アクションを使います。"SetValue/値の代入" マクロ アクションを使ってコントロールに設定される値は、コントロールまたは基になっているフィールドの InputMask プロパティで設定される定型入力による影響も受けません。

コントロールの値を変更するには、コントロールの AfterUpdate イベント プロパティによって指定されているマクロで "SetValue/値の代入" アクションを使います。ただし、コントロールの BeforeUpdate イベント プロパティで指定されているマクロで "SetValue/値の代入" アクションを使って、コントロールの値を変更することはできません (ただし、"SetValue/値の代入" アクションを使って、他のコントロールの値を変更することはできます)。また、フォームの BeforeUpdate または AfterUpdate プロパティによって指定されたマクロで "SetValue/値の代入" アクションを使って、現在のレコードのコントロールの値を変更することもできます。

注: "SetValue/値の代入" マクロ アクションを使って、次のコントロールの値を設定することはできません。

  • レポート上のバインドされたコントロールおよび演算コントロール

  • フォーム上の演算コントロール

ヒント

"SetValue/値の代入" マクロ アクションを使って、フォーム ビューのフォームの表示または非表示を設定できます。[アイテム] ボックスに「Forms!formname.Visible」と入力し、[] ボックスに「No」または「Yes」と入力します。モーダル フォームの Visible プロパティを No に設定すると、フォームは非表示でモードレスになります。プロパティを Yes に設定すると、フォームは表示され、再びモーダルになります。

マクロで "SetValue/値の代入" アクションを使って、コントロールの値を変更したり、コントロールに新しいデータを追加しても、BeforeUpdateBeforeInsertChange などのイベントはトリガーされません。これらのイベントは、ユーザー インターフェイスでこれらのコントロールのデータを変更または入力すると発生します。また、これらのイベントは、Visual Basic for Applications (VBA) モジュールを使ってコントロールの値を設定した場合も発生しません。

このアクションは、VBA モジュールでは使用できません。VBA で直接値を設定してください。

マクロを使用してコントロールの値を設定する

次のマクロでは、[仕入先] フォームのボタンから [商品の追加] フォームを開きます。"Echo/エコー""Close/閉じる""OpenForm/フォームを開く""SetValue/値の代入"、および "GoToControl/コントロールの移動" の各マクロ アクションの使い方を説明します。"SetValue/値の代入" アクションでは、[商品] フォームの [仕入先コード] コントロールに、[仕入先] フォームの現在の仕入先を設定します。"GoToControl/コントロールの移動" アクションで、[仕入先コード] フィールドにフォーカスを移動し、そこで新しい製品のデータを入力できます。このマクロは、[仕入先] フォームの [商品の追加] ボタンに設定します。

アクション

引数: 設定

コメント

Echo

エコーの設定:いいえ

マクロの実行中に画面の更新を停止します。

Close/閉じる

オブジェクトの種類: "フォーム"

Object Name/オブジェクト名: 製品/サービス項目の一覧

Save/保存: いいえ

製品/サービス項目の一覧フォームを閉じます。

OpenForm/フォームを開く

"Form Name/フォーム名":商品

ビュー: "フォーム"

"Data Mode/データ モード":"Add/追加"

ウィンドウモード: "標準"

[商品] フォームを開きます。

"SetValue/値の代入"

"Item/アイテム": [Forms]![商品]![仕入先コード]

"":仕入先コード

[仕入先コード] コントロールに [仕入先] フォームの現在の仕入先を設定します。

GoToControl/コントロールの移動

"Control Name/コントロール名":商品コード

[商品コード] コントロールに移動します。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×