マクロ。 マクロを作成するタイプと方法。 マクロ(アクション)の記述方法ボタンへのマクロの割り当て

この本の前の章で説明したMicrosoftAccessツールの基本セットは、プログラミング言語を話さないユーザーを対象としています。 プログラマー向けに、これらのツールが追加されました マクロ(アクセスシステムのマクロ言語の小さなプログラム)および モジュール(Visual Basic for Application、VBAの手順)。 彼らの助けを借りて、作成したアプリケーションの機能を大幅に拡張し、特定のユーザーのニーズに合わせてカスタマイズできます。 この章では、これらのツールの1つであるマクロと、Accessプログラミング言語の1つであるマクロ言語について説明します。 VBAモジュールと言語を紹介します NS ch。 13 ,

したがって、次の質問について説明します。

  • マクロの概念
  • アプリケーションでのマクロの使用
  • マクロとマクログループの作成
  • マクロ実行のプロセスを制御するための条件を設定する
  • マクロを実行するさまざまな方法
  • マクロをデバッグするためのヒント
  • マクロを使用したフォームおよびレポートでのイベントの処理

MicrosoftAccessデータベースでのマクロの使用

マクロを使用すると、前の章で説明したAccessオブジェクトに対してほとんどすべてのアクションを実行できます。

Accessのマクロは、順番に、または特定の条件で指定された順序で実行される1つ以上のマクロで構成される構造です。 Accessのマクロのセットは非常に広く、マクロを使用すると、VBAプロシージャで許可されているものの多くを実装できます。 各マクロには特定の名前があり、場合によっては1つ以上のユーザー指定の引数があります。 たとえば、OpenFormマクロを使用する場合は、少なくとも開くフォームの名前と、それを引数として表示するためのモードを指定する必要があります。

テーブル 11.1には、カテゴリ別にグループ化されたMicrosoft Access2002マクロのリストが含まれています。フォームおよびレポートのデータの操作。 コマンド、マクロ、プロシージャ、クエリの実行。 オブジェクトを操作します。 データやオブジェクトなどのインポート/エクスポート。 「その他」カテゴリには、アプリケーションインターフェイスに影響を与えることができるすべてのマクロが含まれています。

カテゴリー 予定 大きい
フォームとレポートのデータの操作 データサンプリング フィルタを適用する
データのナビゲート NextRecord(FindNext)FindRecord(GoToControl)On Page(GoToPage)ForRecord(GoToRecord)
データまたは画面を更新する 更新(再クエリ)ShowAllRecords(ShowAllRecords)
パフォーマンス コマンドの実行 コマンドの実行(RunComraand)
マクロ、プロシージャ、またはクエリの実行 RunMacro RunCode OpenQuery3anycから3anpocaSQL(RunSQL)
別のアプリケーションを実行する アプリケーションの起動(RunApp)
実行の中止 イベントのキャンセル(CancelEvent)Stop AllMacros(StopAllMacros)StopMacro(StopMacro)
MicrosoftAccessからサインアウトする 終了する
インポート・エクスポート MicrosoftAccessオブジェクトを他のアプリケーションに渡す フォーマットでの出力(OutputTo)SendObject(SendObject)
データ形式の変換 Transfer Database TransferSQLDat abase Transfer Spreadsheet TransferText
オブジェクトの操作 オブジェクトのコピー、名前の変更、保存 CopyObjectCopyDatabaseファイルの名前の変更保存
他の 組み込みツールバーまたは専用ツールバーを表示または非表示にするビープ音を鳴らす ツールバー(ShowToolbar)信号(ファン)

表11.1 Microsoft Access2002マクロ

この表からわかるように、マクロを使用して実行できるアクションは非常に多様です。 アプリケーションでマクロを使用しない場合でも、以下に示すように、VBAプロシージャで使用できるため、これらのマクロを学習することは理にかなっています。 (第13章を参照)。

以前のバージョンのAccessと比較すると、Microsoft Access2002には3つの新しいマクロがあります。

TransferSQLDatabase-Microsoft SQL Server7.0以降のデータベースを別のサーバーに転送します。

CopyDatabaseFile(CopyDatabaseFile)-Accessプロジェクトに接続されている現在のMicrosoft SQL Server7.0以降のデータベースをコピーします。

OpenFunction-Accessプロジェクトでユーザー定義関数を実行します。 この関数は、入力パラメーターを使用して、ストアドプロシージャと同じ方法で結果を返すクエリです。

マクロの使用は、作成が簡単であるという事実によって正当化されます。このため、プログラミング言語の構文を学ぶ必要はありません。 次のセクションで説明するように、マクロを作成するには、ウィンドウからオブジェクトをドラッグするなど、MicrosoftAccessとWindowsでの基本的な操作方法を知っているだけで済みます。 データベース(データベース)特別なウィンドウに- マクロコンストラクター(マクロデザイン)、リストからアクションを選択し、マクロへの引数として式を入力します。 したがって、VBA言語の構文を本当に学びたくない場合、または難しすぎると思われる場合は、マクロを自由に使用してください。そうすれば、かなり機能的なアプリケーションを入手できます。

上記のように、マクロの主な目的は、便利なアプリケーションインターフェイスを作成することです。フォームまたはツールバーのボタンをクリックするか、メニューコマンドを選択すると、フォームとレポートが開きます。 ユーザーがアプリケーションを開いたときに、ウィンドウではなく画面に表示されるようにします データベース(データベース)、多くのテーブル、クエリ、フォーム、レポートでいっぱいですが、必要なアクションなどをすぐに実行できる理解しやすいフォームがいくつかあります。

マクロを使用すると、アプリケーションに便利なメニューとツールバーを作成できます。少し後で、これを行う方法について説明します。

ただし、マクロの使用にはいくつかの欠点もあり、ここで適切です。

  • マクロの機能はVBA言語の機能に比べて制限されているため、場合によってはVBAでのプログラミングが不可欠ですが、最初にこれらの追加機能が本当に必要であることを確認する必要があります。 VBA言語は、データを操作するためのより豊富な可能性を提供し、オブジェクトプログラミングメカニズムを使用して他のアプリケーションと通信したり、Windowsダイナミックローディングライブラリ(DLL)から関数を呼び出したり、独自の特殊な関数を作成したりできます。
  • マクロは、VBAプロシージャが使用されるほとんどすべての場所で使用できますが、VBAプロシージャは一般的に高速です。
  • マクロは、それらが使用されるフォームやレポートとは別に存在するオブジェクトであるため、これらのオブジェクトが多数ある場合、それらの保守は非常に面倒です。 VBAイベントルーチンはフォームとレポートの不可欠な部分であり、これには利点があります。 たとえば、フォームとレポートをあるデータベースから別のデータベースに移動すると、関連するプロシージャが自動的に転送されます。

それにもかかわらず、すでに述べたように、多くの場合、マクロの使用は非常に正当化されます。これは、アプリケーションの開発を大幅に簡素化および高速化するためです。 マクロを使用して小さなシングルユーザーアプリケーションを作成できますが、アプリケーションの速度が重要なマルチユーザーまたはクライアント/サーバーアプリケーションを構築する場合は、VBAの方が適しています。

マクロの作成

Microsoft Accessには、マクロを作成するための特別なツールであるマクロデザインがあります。 コンストラクターを使用してマクロを作成するプロセスを考えてみましょう。

マクロコンストラクター

窓を開ける マクロコンストラクター(マクロデザイン)新しいマクロを作成するには、次の2つの方法があります。

  1. ウィンドウ内のマクロのリストを展開します データベース(データベース)ショートカットを左クリックして マクロ(マクロ)、クリック 作成(新規)ウィンドウ上部(図11.1)。
  2. ボタンの下矢印をクリックします 新しいオブジェクト(新しいオブジェクト)ツールバー データベース(データベース)と項目を選択 大きい(大きい)。

マクロコンストラクタウィンドウは、テーブルコンストラクタウィンドウと同様に構造化されています。つまり、説明パネルと引数パネルの2つの部分に水平方向に分割されています。

デザインウィンドウの上部(説明パネル)は、いくつかの列で構成されています。 デフォルトでは、このパネルにはアクションとコメントの2つの列が表示されます。 説明パネルでは、マクロを構成するマクロのシーケンスを定義できます。

[アクション]列の行は、目的のマクロを選択できるコンボボックスです。

[コメント]列の行は、実行するアクションを説明するコメントを入力できる単純なテキストフィールドです。

[アクション]フィールドに入力すると、[マクロビルダー]ウィンドウの下部に[引数]パネルが表示され、対応するマクロの引数の値を入力できます。 このパネルのフィールドのリストは、選択したマクロによって異なり、マクロに引数がない場合は表示されない場合があります。 したがって、マクロを作成するときに、各マクロの引数のリストを覚えておく必要はありません。

図では 11.1は、ApplyFilterマクロの選択を示しています。 引数パネルには、フィルター名とレコードを選択するための基準を指定できる2つのフィールドがあります。 レコードを選択するための条件を設定するには、式ビルダーを使用できます (「式ビルダーを使用した式の作成」の第4章を参照してください)。

米。 11.1。マクロビルダーと引数パネル

このマクロをフォームまたはレポートで使用して、表示されるレコードの数を制限できます。

コメント

デザインモードでテーブルやクエリを操作するときと同じように、説明パネルと引数パネルをすばやく切り替えるには、キーを使用できます。 .

マクロを入力する別の非常に簡単な方法があります。 NorthwindアプリケーションでCustomersフォームを開くためのマクロを作成するとします。 このためにウィンドウで データベース(データベース)ショートカットをクリックする必要があります フォーム(フォーム)、ツールバー(方法2)を使用して、ウィンドウを開きます マクロコンストラクター(マクロデザイン)そして、顧客フォームをマクロデザイナウィンドウのアクションフィールドにドラッグします。

助言

データベースウィンドウからフォームにオブジェクトをドラッグするのに便利なように、[ウィンドウ]、[垂直に並べて表示]コマンドを選択して、ウィンドウを画面上に並べて配置します。

次に、OpenFormマクロが[アクション]フィールドに自動的に表示され(図11.2)、フィールドが引数パネルに自動的に入力されます。[フォーム名]フィールドの[顧客]フォームの名前が[表示]フィールドに表示されます。 "-[ウィンドウモード]フィールドのフォーム(フォーム)のデフォルト値-値 一般(普通)。 残りのフィールドは空のままになります。 同じマクロで、レコードを選択するためのフィルターを設定できます。 これを行うには、[フィルター名]フィールドにフィルターの名前を入力します。たとえば、クエリの調査時に作成した「SalesManagers」などです。 (第4章「フィルターからのクエリの作成」のセクションを参照してください)。

さらに、このフォームのエントリを変更にアクセスできないようにすることができます。 データモード(データモード)値を入力する必要があります 読むだけ(読み取り専用)。

米。 11.2。オブジェクトをドラッグアンドドロップすることによるマクロの自動作成

同様に、ウィンドウからドラッグしてマクロを作成できます データベース(データベース)テーブル、クエリ、レポート、その他のマクロ。 この場合、対応するマクロがマクロデザイナウィンドウに表示されます:OpenTable(OpenTable)、OpenRequest(OpenQuery)、OpenReport(OpenReport)、RunMacro(RunMacro)。

マクロの引数を入力するには、ほとんどの場合、リストから値を選択するか、式を入力する必要があります。 式を入力するには、引数フィールドの右側にボタンがある式ビルダーを使用できます。 別の式ビルダーボタンがツールバーにあります。 他の場合と同様に、式の前には等号(=)を付ける必要があります。 例外は議論です 表現(式)マクロSetvalueとargument 繰り返し回数(繰り返し回数)マクロ-RunMacro(RunMacro)。 これらの引数の値を指定する式の前に等号を入力すると、2回評価されるため、望ましくない結果が生じる可能性があります。

マクロコマンドの引数としてデータベースオブジェクトの名前を指定する必要がある場合は、キーボードを使用して入力するか、ドロップダウンリストから選択するか、オブジェクトの名前をドラッグして指定します。データベースウィンドウ。

したがって、作成したマクロは、顧客フォームを読み取り専用モードで開き、営業マネージャーのみを表示します。 前述のように、マクロには複数のマクロのシーケンスを含めることができます。 したがって、次の行の同じマクロで、メッセージ(MsgBox)マクロコマンドを選択します。このコマンドは、フォームを開いた後、フォームに表示されるクライアントに関するメッセージを含むダイアログボックスを表示します。 これを行うには、フィールドに入力します メッセージ(メッセージ)引数パネルのメッセージのテキスト。たとえば、Sales managerフィルターがインストールされている場合、残りのフィールドは変更しないでおくことができます。 口論 信号(ファン)メッセージにビープ音が鳴るかどうかを決定します。 口論 タイプ(タイプ)は、メッセージダイアログボックスの外観を定義します。 口論 見出し(タイトル)では、メッセージボックスのタイトルに表示されるテキストを設定できます。

データベースが大きい場合、フォーム内のレコードを選択するのに時間がかかる場合があるため、データが処理されていることを示すために、画面に砂時計カーソルを表示することをお勧めします。 これを行うには、砂時計マクロを使用します。 マクロ内のマクロは、「アクション」列に書き込まれた順序、つまり上から下に実行されます。 フォームを表示する前にカーソルを変更する必要があるため、砂時計マクロを最初に配置する必要があります。 したがって、説明ペインに新しい行を挿入する必要があります。 これを行うには、パネルの最初の行にカーソルを置き、ボタンを押します。 行を追加する(行の挿入)ツールバーまたはキーのみ ..。 空の行が表示されます。 この行の[アクション]フィールドで、砂時計マクロを選択します。 [引数]パネルの[砂時計オン]フィールドに[はい]と表示されます。これはデフォルトであり、必要なものです。 マウスポインタの元のビューを復元するには、作成されたマクロの最後に、同じマクロ砂時計を入力する必要がありますが、値はNo(No)引数です。 オンにする(砂時計オン)。

厳密に言えば、このマクロをマクロの前に置いて、画面にメッセージを表示することをお勧めします。 マクロはマウスと簡単に交換できるため、これを行うのは非常に簡単です。 最後の2つのマクロを所定の場所で入れ替えるには、行選択領域(デザインウィンドウの左側)を左クリックして最後の行を選択し、行を上にドラッグします。 水平線は、線の新しい位置を示しています。 この行が最後から2番目の行の上にあるときにマウスボタンを離します。

残っているのは、作成したマクロを保存することだけです。 これを行うには、メニューから選択できます ファイル(ファイル)コマンド 名前を付けて保存(名前を付けて保存)またはキーを押します ..。 マクロの保存ウィンドウが表示されます。 セールスマネージャなどのAccessオブジェクトの命名規則に従って、入力フィールドにマクロの名前を入力します。

コメント

Microsoft WordとExcelには、自動マクロ記録ツールがあります。 これらのツールを使用すると、マクロ記録をオンにし、必要なアクションを実行し、記録を停止することでプロシージャを自動的に作成できるため、VBAの学習に非常に便利です。 次に、記録をオンにした後、記録を停止する前に実行されたすべてのユーザーアクションが、VBAプロシージャのテキストに変換されます。 このテキストは、VBAエディターを使用して表示および編集できます。 自動VBAコード生成ツールがないのと同じように、Microsoft Accessには自動マクロレコーダーはありません(ウィザードが作成する場合を除く)。

マクログループの作成

マクロを使用してアプリケーションを開発する場合、マクロの数が非常に多くなる可能性があります。 したがって、必要なマクロへのアクセスを適切に整理することが重要です。 このために1つのオブジェクトで 大きい(マクロ)複数のマクロを組み合わせることができます。 たとえば、フォームまたはレポートのイベントに関連付けられているすべてのマクロを、このフォームまたはレポートに対応する個別のオブジェクトに結合することをお勧めします。 これを実行できるようにするには、各グループマクロに独自の名前とオブジェクトの名前が必要です。 大きい(マクロ)はマクログループの名前になります。

マクログループを作成するには:

  1. 前のセクションで説明した方法のいずれかを使用して、マクロデザイナを開きます。
  2. ボタンをクリックします マクロ名ツールバーの(マクロ名)。 別の列がコンストラクタウィンドウの説明パネルに表示されます-「マクロ名」(図11.3)。
  3. この列に最初のマクロの名前を入力します。 この行の残りのフィールドは空のままにしておくことをお勧めします。これにより、マクロの移動とコピーが簡単になります。
  4. 次の行から、マクロのすべてのマクロと、各マクロに対応する引数を入力します。
  5. 1行スキップします。
  6. マクロごとに手順3〜5を繰り返します。

米。 11.3。マクログループを作成する

図では 11.Hデザインウィンドウには、データベース(Northwind)のマクロ「Employees」があります。 マクロの終了を示すために個別のマクロは必要ありません。 Accessは、[マクロ名]列に名前を含む行が見つかるまで、または[マクロ]ウィンドウの最後の行に到達するまで、グループ内のマクロを実行し続けます。

マクロを処理する場合、空白行は無視されるため、グループ内のマクロを区切るために使用すると便利です。 この手法は、多数のマクロで構成される複雑なマクロに対するコメントの導入と同様に、マクロの可読性を向上させることができます。

グループマクロの1つを実行するには、フルネームを使用してマクロを参照します。 マクロのフルネームは、GroupName.MacroNameのように形成されます。

コメント

列が次のようになるようにシステムを構成できます マクロ名(マクロ名)は常にマクロデザイナに表示されていました。 これを行うには、タブで適切なパラメータを設定する必要があります 意見(表示)ダイアログボックスで パラメーター(オプション)(「Accessアプリケーションのパラメータの設定」の第14章を参照)。

マクロに条件を適用する

前に示したマクロの例では、マクロの実行順序が使用されていました。 ただし、他のプログラムと同様に、マクロ内のマクロの実行順序は変更できます。 このために、マクロを実行またはスキップするための条件が導入されています。 これらの条件は、ボタンが押された場合にマクロデザイナウィンドウに表示される特別な列の式の形式で設定されます。 条件ツールバーの(条件)(図11.4)。

コメント

マクログループと同様に、この列が常にマクロデザイナに表示されるようにシステム設定を構成できます。

米。 11.4。マクロに条件を適用する

図では 11.4は、封筒にステッカーの形でレポートを印刷するために使用される「CustomerLabelDialog」マクログループのコンストラクタウィンドウを示しています。 さらに、一度にすべての顧客、またはリストから選択した1つの国の顧客のステッカーを印刷できます。 ウィンドウに[条件]列が表示されます。 この列で指定された条件が真の場合、この行のマクロが実行されます。 条件がfalseの場合、対応するマクロはスキップされ、次のマクロが実行されます。

条件が真の場合に一度に複数のマクロを実行する必要がある場合、最初のマクロを除くすべてのマクロについて、省略記号(...)が[条件]列に入力されます。 チェックする条件は、最初のマクロコマンドの行に書き込まれます。 次に、trueの場合、マクロのセット全体が、この条件から、指定された条件の次のマクロ、次のマクロ、またはマクロの最後まで実行されます。 条件がfalseの場合、指定された条件のマクロを含め、省略記号でマークされたすべてのコマンドがスキップされます。 次に、不足しているものに続くマクロコマンドが実行されます。このコマンドには、新しい条件が含まれているか、[条件]フィールドに入力されていません。 したがって、「ほとんどのプログラミング言語とは異なり、マクロには代替の分岐はありません。 2つの代替ブランチを持つマクロを作成するには、最初に条件を入力し、この条件が満たされたときに実行されるマクロを定義する必要があります。 それらの直後に、反対の条件を指定し、代替ブランチで実行されるマクロを定義する必要があります。 次に、無条件に実行されるマクロを入力できます。 この分岐方法は、たとえば、ボタンに関連付けられたプレビューマクロで使用されます 意見(プレビュー)このフォームで。 ユーザーがオプションを選択した場合 すべての国のために(AH国)、これはコントロールの1の値によって決定されます ステッカーの印刷(PrintLabelFor)、レポートはプレビューモードで開き、フォームが閉じます。 ラジオボタンが選択されている場合 特定の国のために(特定の国)」と表示され、国が選択されていない(SelectCountryコンボボックスの値が設定されていない)場合、メッセージが表示され、国選択コンボボックスにフォーカスが設定され、マクロの実行が停止します。 国を指定すると、選択した国のレポートが表示され、フォームが閉じます。

このマクロはStopMacroマクロを使用します。 これにより、マクロの実行を停止できますが、StopMacroマクロに続くすべてのマクロは実行されません。

コメント

StopMacroマクロを使用するのは、特定の条件下で実行してはならない他のマクロが後に続く場合にのみ意味があります。 上記のように、マクロの終了を示すために特別なマクロは必要ありません。

マクロの実行とデバッグ

マクロを実行する方法はたくさんあります。 それらの中には、マクロがユーザーによって直接実行される直接的な方法があります。 これらのメソッドは通常、マクロをテストするときに使用されます。 マクロがデバッグされたら、ツールバーに特別なメニューコマンドまたはボタンを作成するか、マクロをフォームまたはレポートのイベントに関連付けます。 このセクションでは、マクロを実行するためのすべての可能な方法を見ていきます。

マクロを実行する一般的な方法は、メニューコマンド([ツール]、[マクロ]、[マクロの実行])を使用することです(図11.5)。

このコマンドを選択すると表示されるダイアログボックスで、マクロのフルネーム、つまりGroupName.MacroNameを指定(入力またはリストから選択)する必要があります(図11.6)。 このメソッドを使用すると、マクロウィンドウ、データベースウィンドウ、またはフォームデザイナなどのアクティブなウィンドウからマクロを実行できます。

米。 11.5。

米。 11.6。ダイアログウィンドウ マクロの実行

マクロデザイナウィンドウからマクロを実行する

このメソッドは、新しく作成または改訂されたマクロをテストするために使用されます。 マクロデザイナウィンドウにマクロが1つしかない場合、それを実行するには、ボタンを押すだけです。 発売(実行)ツールバーで、またはコマンドを選択します 実行、ステップバイステップ(実行、シングルステップ)(後者の方法では、マクロをデバッグできます)。 ただし、複数のマクロがある場合は、このボタンまたはコマンドを使用して、グループ内の最初のマクロのみを実行できます。 グループから他のマクロを実行するには、メニューコマンドを使用する必要があります サービス、マクロ、マクロの実行(ツール、マクロ、マクロの実行)。

マクロを実行するこの方法を頻繁に使用する場合は、標準のボタンをツールバーに追加してツールバーをカスタマイズするのが理にかなっています。 発売(マクロの実行)。 メニューコマンドを実行するのと同じです サービス、マクロ、マクロの実行(ツール、マクロ、マクロの実行)。 (ツールバーのカスタマイズについては、第14章の「ツールバーの作成と変更」のセクションを参照してください。)

データベースウィンドウからマクロを実行する

ウィンドウからマクロを実行するには データベース(データベース)ショートカットをクリックします マクロ(マクロ)オブジェクトパネルで、リストから必要なマクロを見つけてダブルクリックするか、ボタンを押します。 発売(実行)ウィンドウツールバー データベース。後者の方法は、選択したオブジェクトに1つのマクロが含まれている場合にのみ適しています。 それ以外の場合は、上記のマクロを実行するためのユニバーサルメソッドを使用する必要があります。

コメント

マクロの条件または引数にAccessオブジェクト(フォーム、レポートなど)への参照が含まれている場合は、マクロを実行する前に開いている必要があります。開いていない場合は、エラーメッセージが表示されます。

ツールバーのボタンを使用してマクロを実行する

マクロを直接実行する方法は簡単ですが、最速ではありません。 より便利で高速な方法があります。 私たちの観点から、マクロを起動する最も便利な方法は、ツールバーに特別なボタンを作成することです。 確かに、Accessには多くの標準ツールバーがあり、対応するパネルがさまざまな操作モードで画面に表示されます。 したがって、最も合理的なことは、必要なすべてのボタンを配置できる特別なツールバーを作成することです。 ただし、カスタムボタンを標準ツールバーに追加する操作は非常に簡単です。

標準のアクセスツールバーにボタンを追加するには:

  1. ツールバーを右クリックして、コンテキストメニューからコマンドを選択します カスタマイズ(カスタマイズ)。
  2. カスタマイズ(カスタマイズ)タブを展開 ツールバー(ツールバー)。
  3. たとえば、標準ツールバーの1つのチェックボックスをオンにします。 テーブルモードでのクエリ(クエリデータセット)画面に表示します。
  4. ダイアログを閉じる カスタマイズ(カスタマイズ)ボタンをクリックして 選ぶ(選ぶ)。
  5. ショートカットをクリックします マクロ データベース(データベース)そしてあなたが望むマクロを見つけてください。
  6. マクロをマウスでツールバーにドラッグします モードでリクエストテーブル(クエリデータセット)。

米。 11.7。マクロを実行するためのツールバーボタンを作成する

コメント

アプリケーションのメイン操作モードがフォームの操作である場合、マクロを実行するためのボタンをツールバーに配置できます。 フォームモード(フォームビュー)。

ボタンを追加したばかりのツールバーを画面から削除するには、ツールバー領域を右クリックし、標準コマンドバーのリストで、パネル名の左側にあるチェックボックスをオフにします(図11.8)。

米。 11.8。コマンドバーのリストを含むコンテキストメニュー

次に、特別なツールバーを作成し、その上にマクロ呼び出しボタンを配置する方法を見てみましょう。

  1. ショートカットをクリックします マクロ(マクロ)ウィンドウのオブジェクトパネル データベース(データベース)そして必要なマクロを選択します。
  2. コマンド([ツール]、[マクロ]、[マクロからツールバーを作成])を選択します。 空のツールバーが画面に表示されます。
  3. マウスを使用して、必要なマクロをこのパネルにドラッグします。

おなじみのマクロアイコンが付いたボタンがパネルに表示されます。 ボタンには、作成されたマクロの名前と同じ名前が付けられます。

複数のマクロを呼び出すためのツールバーを作成する必要がある場合は、これらのマクロを1つのグループに結合することをお勧めします(マクロのグループの作成については、前のセクションで説明しました)。 次に、メニューコマンドを実行すると ツール、マクロ、マクロからツールバーを作成([ツール]、[マクロ]、[マクロからツールバーを作成])ツールバーが作成され、グループ内の各マクロに独自のボタンがあります。 この場合、ボタンには対応するマクロの名前が表示されます。 新しいツールバーの名前は、マクログループ名と同じです。 このコマンドは、CustomersなどのNorthwindデータベースのマクログループの1つで試してください。 オプションで、ボタンのテキストをアイコンに置き換えることができます。 アプリケーションツールバーのカスタマイズ、特にパネルからのボタンの削除とパネル自体の削除、これらのボタンの外観の変更に関する追加情報は、に示されています。

メニューコマンドを使用してマクロを実行する

マクロを実行するもう1つの一般的な方法は、特別に作成されたメニューコマンドを使用してマクロを実行することです。 マクロを実行するためのメニューコマンドを作成する方法は、ツールバーボタンの作成に使用される方法と非常によく似ています。 たとえば、これにはメニューコマンドを使用できます ツール、マクロ、マクロからメニューを作成(ツール、マクロ、マクロからメニューを作成)。

カスタムメニューの作成と構成の詳細については、を参照してください。 宗派。 「コマンドバーの作成と変更」の章。 14。したがって、このセクションでは、マクロからメニューコマンドを作成することは検討しません。

キーボードショートカットを使用してマクロを実行する

マクロを実行するためのキーボードショートカットを割り当てることができます。 これを行うには、マクロの特別なグループ「AutoKeys」を作成する必要があります。 このマクログループには、割り当てるキーの組み合わせごとに対応するマクロを実行するためのマクロが含まれている必要があります。 「AutoK」eysマクログループの例は、Northwindデータベースで提供されています。 このマクログループをデザインモードで開きます。 1つのマクロが含まれています(図11.9)。 マクロ名はキーの組み合わせの記録です +

マクロ自体は、「クライアント電話」というマクロを実行する1つのマクロRunMacroで構成されています。 印刷」(顧客の電話リスト。印刷)。 「AutoKeys」マクロは、ユーザーが次のような特別なキーの組み合わせを入力するたびに表示されます。 +

入力したキーの組み合わせがAutoKeysで見つかった場合、対応するマクロが実行されます。

米。 11.9。「AutoKeys」マクロの例

マクロを起動するこの方法は確かに最速ですが、重大な欠点があります。フリーキーの組み合わせが非常に少ないことです。 また、「AutoKeys」で定義されている組み合わせは、標準の組み合わせよりも優先度が高くなります(たとえば、 +-コピー)、キーの組み合わせの標準割り当てを置き換えることはお勧めしません。 許可されるキーの組み合わせを表に示します。 11.2。 キーの組み合わせ この場合、メニューコマンドを起動してボタンを押すために使用されるため、適用されません。

表11.2許可されるキーの組み合わせ

データベースを開くときにマクロを実行する

Microsoft Accessデータベースを開くと、いくつかのアクションが実行される場合があります。 ほとんどの場合、これは特別なフォーム、いわゆるメインボタンフォームを開いたり、特別なメニューやツールバーを表示したり、標準メニューを非表示にしたりすることです。これらのアクションを定義するには、ダイアログボックスを使用します。 起動パラメータ(起動)。 ただし、アプリケーションの起動時に、このダイアログボックスで許可されているよりも複雑な一連のアクションを実行する必要がある場合があります。 たとえば、後で表示したり、条件を確認したり、データを要求したりするのに時間がかからないように、事前に(画面に表示せずに)いくつかのフォームを開く必要がある場合があります。 これはすべて、「AutoExec」と呼ばれる特別なマクロを使用して実行できます。 データベースを開くと、Accessはこのマクロをチェックし、存在する場合は実行します。 「AutoExec」マクロを作成するときは、Accessが最初にウィンドウで定義されたアクションを実行することに注意してください。 起動パラメータ(起動)の後に「AutoExec」マクロが続くので、競合するアクションはありません。

別のマクロからマクロを実行する

別のマクロからマクロを呼び出す必要がある場合があります。 これは、RunMacroマクロを使用して実行できます。 「AutoKeys」マクロについて説明するときに、このマクロについてはすでに説明しました。 ここで、このマクロには3つの引数があることに注意してください。マクロの名前に加えて、マクロ実行の繰り返し回数と繰り返し条件が設定されます。 したがって、このマクロを使用すると、ループを整理できます。 口論 繰り返し回数(繰り返し回数)は、マクロへの呼び出し回数を設定します。 口論 条件を繰り返す(繰り返し式)は、TrueまたはFalseの式です。 この式の値は、RunMacroマクロを実行する前にチェックされます。 Trueの場合はマクロが実行され、Falseの場合はマクロは実行されず、制御は次のマクロコマンドに移されます。 これらの2つの引数が指定されていない場合、マクロは1回だけ実行されます。 これらの引数が両方とも指定されている場合、マクロが指定された回数実行されたとき、または指定された条件が満たされていないためにFalseに設定されたときに、呼び出しループが終了します。

コメント

RunMacroマクロの引数にあるマクロの名前は、完全修飾されている必要があります。つまり、GroupNameの形式である必要があります。 呼び出されたマクロが呼び出し元と同じグループにある場合でも、MacroName。 繰り返し条件が常に真になるように設定されている場合、ループは無限大です。 あなたはキーボードショートカットでそれを中断することができます +..。 これで問題が解決しない場合は、キーボードショートカットを押してAccessを中断する必要があります。 ++.

イベントへのマクロの割り当て

Accessアプリケーションでのマクロの最も一般的な使用法は、イベントを処理することです。 イベント -これはオブジェクトによって認識されるアクションであり、イベントに対するオブジェクトの応答を判別できます。 イベントは、ユーザーアクション、VBA命令の実行、またはシステムによって生成された結果として発生します。 イベントの例としては、フォーム、レポートの表示、テキストフィールドへのデータの入力、マウスボタンまたはキーの押下などがあります。 これらの各イベントには、発生したイベントに応答して自動的に実行されるマクロまたはVBAプロシージャを割り当てることができます。 Accessのほとんどすべてのプログラミングは、イベントを処理するマクロまたはプロシージャの記述に要約されます。つまり、イベントに対するオブジェクトの反応がプログラムされます。 オブジェクトが反応するさまざまな種類のイベントが多数あり、多くの場合、1つではなく、一連のイベント全体があります。 したがって、作成したマクロまたはVBAプロシージャに割り当てるイベントを決定するには、ある程度のスキルが必要です。 この選択のすべての微妙な点について説明します 虫。 「フォームとレポートでのプログラミング」の章。 13。ここでは、マクロをイベントに割り当てる方法についてのみ説明し、マクロを使用してイベントを処理する例を示します。

最も単純なものから始めましょう。 NorthwindデータベースでCustomersフォームを開きます。 このフォームには、顧客情報が表示されます。 この情報だけでなく、クライアントが購入した製品に関するデータも表示したいとします。 ボタンを作成するといいでしょう 顧客の注文、クリックすると、[注文]フォームが表示され、[顧客]フォームで現在選択されている顧客のみからの注文が表示されます。 必要なものを取得するために、イベントが発生したときに実行されるマクロを作成します ボタンを押す(クリック時)顧客フォーム。

イベントに対する記述されたアプリケーションの反応を定義するマクロを作成するには ボタンを押す(OnClick):

  1. デザインビューで顧客フォームを開きます。
  2. フォームのタイトル領域にボタンを作成します。 この場合、ツールバーのウィザードボタンを離す必要があります。そうしないと、マクロではなくイベント処理プロシージャを作成するように求められます。
  3. 作成したボタンのプロパティウィンドウがまだ開いていない場合は開き、タブを展開します 開発(イベント)。
  4. コマンドボタンのみに関連付けられているさまざまなイベントの数に注意してください。 これから使用する通常の押下に加えて、一連のボタンイベントには、フォーカスの取得と喪失、マウスのダブルクリック、ボタン上でのマウスポインターの移動などが含まれます。このようなさまざまなイベントにより、開発者は素晴らしい便利なユーザーインターフェイスを作成する機会。 リストでイベントを見つけます ボタンを押す(クリック時)そしてカーソルを適切なセルに置きます。 これはコンボボックスであり、現在は空です。 このリストを開くと、最初の要素は()になり、アプリケーションに存在するすべてのマクロのリストが表示されます(図11.10)。
  5. 必要なマクロがリストにないので、作成しましょう。 これを行うには、フィールドの右側にある[ビルダー]ボタンをクリックします。 ウィンドウが表示されます ビルダー(ビルダーを選択)、3つのビルダーのいずれかを選択することを提案します: (式ビルダー)、 マクロ(マクロビルダー)と プログラム(コードビルダー)(図11.11)。
  6. 選んでください マクロ(マクロビルダー)をクリックします わかった。»マクロウィンドウとダイアログボックスが開き、作成するマクロの名前を入力する必要があります。 「販売注文」という名前を入力します。

米。 11.10。[ボタンのプロパティ]ダイアログボックス

米。 11.11。ダイアログウィンドウ 遷移シーケンス

  1. マクロに単一のOpenFormマクロを追加する必要があります。 このマクロの引数の値を表に示します。 11.Z.

表11.3。 マクロ引数値 OpenForm

口論 モード(表示)は、フォームを開くモードを定義します。 次の値を取ることができます。 (形)、 コンストラクタ(デザイン)、 意見(印刷プレビュー)、 テーブル(データシート)、 ピボットテーブル(ピボットテーブル)と ピボットグラフ(ピボットグラフ)。 口論 選定条件(条件)は、フォームに表示されるレコードを選択するための条件を定義します。 条件は式です。 この場合、この式にはコントロールへのリンクが含まれています。 クライアントコード(CustomerlD)Customersフォームで、CustomersフォームのCustomerIDフィールドで指定された値とCustomerIDが等しいOrdersテーブルからすべてのレコードを選択できます。 (マクロおよび式での参照の使用の詳細については、この章の「マクロの使用」セクションを参照してください。)口論 データモード(データモード)は、データを操作する方法を定義し、次のいずれかの値を取ることができます。 追加する(追加)、 変化する(編集者 読むだけ(読み取り専用)。 最後に、議論 ウィンドウモード(ウィンドウモード)ウィンドウのタイプを定義します。 一般(普通)、 見えない(隠れた)、 アイコン(アイコン)と 対話ウィンドウ(ダイアログ)。

  1. マクロウィンドウを閉じて、変更を保存します。 フィールドのボタンのプロパティウィンドウで ボタンを押す(クリックすると)「受注」マクロの名前が表示されます。
  2. [フォーマット]タブを展開して、次のように入力します サイン(キャプション)ボタン名:お客様のご注文。 フィールドに同じ名前を入力することをお勧めします 名前(名前)タブ 他の(他の)。

フォームモードに移動して、マクロがイベントをどのように処理するかを確認する必要があります ボタンを押す(クリック時)。 どこかで間違えなければ、図のような画像が画面に表示されます。 11.12。

米。 11.12。フォーム「注文」

ただし、必要なすべての手順はまだ完了していません。 顧客フォームの次のレコードに移動すると、注文フォームのデータは状況を正しく反映しなくなり、変更されません。 このデータが「顧客」フォームの他のレコードへの移行と同期して変更されること、またはこのウィンドウが単に閉じることを確認する必要があります。 2番目のオプションの実装について考えてみましょう。 ボタンをクリックすると注文フォームが開きます 顧客の注文、そしてアクティブになります。 顧客フォームがアクティブになったときに閉じます。 これを行うには、適切なイベントを選択し、それを処理するためのプロシージャまたはマクロを設定する必要があります。 窓を開けたら プロパティ「顧客」フォームの(プロパティ)をクリックして、タブを開きます 開発(イベント)、そして多くのイベントの中であなたはイベントを見るでしょう インクルージョン(アクティブ化時)。 これはまさに私たちが必要とするイベントです。 このイベントを選択しますが、新しいマクログループは作成しませんが、Customersフォームのマクロが既に含まれているCustomersマクログループに新しいマクロを追加します。 ドロップダウンリストからこのマクログループを選択し、[ビルダー]ボタンをクリックします。 ウィンドウが開き、2つのマクロが表示されます。 それらにもう1つのマクロを追加しましょう。 これを「Closing」と呼び、適切なパラメーターを指定してCloseマクロコマンドを入力します(表11.4)。 ただし、フォームを閉じる前に、フォームが開いているかどうかを確認する必要があります。 これを行うには、isLoaded関数を使用します。この関数は、フォームが開いている場合はTrueを返し、それ以外の場合はFalseを返します。 フォームの名前は、引数としてisLoaded関数に渡す必要があります。 だから、列に 状態(条件)閉じるマクロの横に、IsLoaded(またはIsLoaded(Orders))と入力します。

口論 意味
オブジェクトタイプ フォーム(フォーム)
オブジェクト名 注文
保存する いいえ(いいえ)

表11.4。アクション引数値を閉じる

口論 保存(保存)では、フォームを閉じたときにAccessがダイアログボックスを表示して、変更されたデータが保存されていることを確認するかどうかを制御できます。 注文フォームを読み取り専用モードで開いたため、データの変更は禁止されています。したがって、この引数は次のように設定する必要があります。 番号(番号)。 完成したマクロを図1に示します。 11.13。

マクロウィンドウを閉じて、変更を保存します。 イベントに割り当てられたマクロの名前を変更します インクルージョン(アクティブ化時)。 これを行うには、リストから選択するか、Customers.Closeという名前を入力して、キーを押します。 ..。 フォームを保存し、フォームモードに移動して、作成したマクロがどのように機能するかを確認します。

米。 11.13。フォームを閉じるためのマクロ

VBAプロシージャからマクロを呼び出す

すでに述べたように、AccessのVBAプロシージャとマクロは近くにあり、多くの場合交換可能なオブジェクトです。つまり、マクロの代わりにVBAプロシージャを使用でき、その逆も可能です。 VBAプロシージャからマクロを実行する方法、マクロからVBAプロシージャを実行する方法があり、AccessではマクロをVBAプロシージャに変換できます。 この変換については、 宗派。 この章の「マクロからVBAプロシージャへの変換」。

マクロからVBAプロシージャを開始するために、特別なRunProgramme(KipCode)マクロがあります。 このマクロには、呼び出されるプロシージャの名前という1つの引数がありますが、呼び出すことができるのは関数のみであり、サブルーチンはありません。

VBAプロシージャからマクロを実行するには、DoCmdオブジェクトの特別なRunMacroメソッドを使用します。次に例を示します。

DoCmd.RunMacro「マクロ!」

DoCmdオブジェクトは、Accessマクロを実行するためのVBAプロシージャで使用されます。 この場合、必要なマクロの英語名をDoCmdオブジェクトのメソッドとして指定する必要があります(例:プロシージャライン)。

DoCmd.OpenForm「クライアント」

「クライアント」フォームを開くことができます。 ここで、「クライアント」はマクロへの引数です。 引数は、コンマで区切られたDoCmd句にリストされています。 ほとんどのマクロはこの方法で実行できます。

以下のVBAプロシージャの作成を検討します。 ch。 13.13。

マクロのデバッグとエラーの検出

通常、マクロをデバッグするには、ステップバイステップモードで実行されます。 このモードを有効にするには、ボタンを押します ステップバイステップ(シングルステップ)マクロビルダーウィンドウのツールバーで、またはメニューコマンドを選択します 実行、ステップバイステップ(実行、シングルステップ)。 次に、各マクロコマンドを実行する前に、(マクロシングルステップ)ダイアログボックスが表示されます(図11.14)。

このウィンドウには、マクロの名前、実行可能マクロの名前、実行条件、および引数が表示されます。 また、フィールドで 状態(状態)と 引数(引数)条件式の値とマクロの引数が表示されます。 マクロ行に条件が指定されていない場合、[条件]フィールドには常に値が表示されます NS(NS)。 このウィンドウのフィールドの右側にあるボタンを使用すると、次のマクロコマンドを実行し、マクロの実行を中断して(たとえば、引数が正しく計算されていないことがわかる場合)、通常どおりに実行を続行できます。手順。

米。 11.14。ダイアログウィンドウ マクロの段階的な実行

マクロの実行中にエラーが発生した場合は、ダイアログボックスが表示されます。 マクロ実行エラー(アクション失敗)、ウィンドウと同様 マクロの段階的な実行(マクロシングルステップ)、ただしプロセスを続行する機能はありません(ボタン ステップ(ステップ)と 続行(続行)は利用できません)。 ボタンを押すことによってのみマクロの実行を中断できます アボート(停止)。 エラーを含むマクロがウィンドウに表示されます。

通常、マクロのエラーを見つけるのは簡単です。 これは、次の事実によるものです。

  • 入力時にほとんどの構文エラーがチェックされ、システムは単に誤ったマクロ名や条件式を入力することを許可しません(ただし、存在しないフォームや存在しないフォームなど、誤ったオブジェクト名を入力することから保護することはできません。フォームコントロール);
  • 原則として、マクロは非常に単純で、マクロの長いシーケンスが含まれていません。それ以外の場合、VBA言語はより多くの可能性を提供し、デバッグ機能が大幅に向上するため、VBAでプロシージャを作成することをお勧めします。

マクロで発生する主なエラーは、オブジェクト名の誤った入力に関連していて、Accessが対応するオブジェクトを見つけることができないか、マクロによって参照されるオブジェクトが使用できないという事実に関連しています。たとえば、フォームが開いていません。 。 したがって、エラーが発生した場合は、まず、オブジェクトの名前が正しく入力されているかどうか、マクロの条件または引数で使用されているフォームが開いているかどうかを確認する必要があります。

助言

フォームまたはコントロールへのリンクを使用する前に、isLoaded()関数を使用してフォームが開いているかどうかを確認することをお勧めします。 残念ながら、この機能は標準のアクセス機能ではありませんが、通常、Northwindデータベースのユーティリティ機能モジュールに含まれています。 そこからデータベースにコピーできます。

プロシージャとマクロの両方をデバッグするための標準的な手法は、プロセスの特定の段階の通過を示す特別なメッセージを画面に表示することです。 マクロでは、これは、そのようなメッセージを表示するために追加のMsgBoxマクロを挿入することによって行われます。 さらに、メッセージには、コントロールのプロパティの値を表示できます。例:「Productprice = "&Forms!Products!Price

対応するマクロの反対側の[条件]列に値Falseを入力すると、デバッグメッセージの表示を簡単にオフにできます。

もう1つの一般的なトリックは、ブレークポイントを設定することです。 プロセスが終了する前の特定の時点でマクロの実行を停止するために使用されます。 これを行うには、StopMacroマクロを使用します。 マクロはStopMacroマクロの前に実行され、その後、結果を確認できます。 したがって、マクロの精度までエラーをローカライズすることが可能です。

マクロの適用

マクロは、さまざまなタスクを解決するために使用できます。 この章の最初のセクションでは、カテゴリ別にグループ化されたマクロの表を提供しました。 次に、いくつかのカテゴリのマクロの使用法を見てみましょう。

フォームとレポートのデータの操作

このカテゴリには、データの選択、データのナビゲート、およびフォーム内のデータの更新を行う一連のマクロが含まれます。 マクロの使用例に進む前に、マクロの引数と条件でフォーム、レポート、およびコントロールへの参照を使用する方法を示します。このような参照は非常に頻繁に使用されるためです。

フォーム、レポート、およびそれらのプロパティへのリンク

フォームまたはレポートを参照するには、最初に、参照されたオブジェクトが属するコレクションを判別する必要があります。 (ファミリとその構成オブジェクトの詳細については、第13章を参照してください)開いているすべてのフォームはフォームファミリにあり、開いているレポートはレポートファミリにあります。 フォームまたはレポートへの完全なリンクは、FamilyName!ObjectNameの2つの部分で構成されている必要があります。 さらに、オブジェクト名にスペースまたは特殊文字が含まれている場合は、角括弧で囲む必要があります。 名前にスペースが使用されていない場合は、括弧を省略できます。 したがって、フォームへのリンクは次のようになります。フォーム![顧客注文]またはフォーム!クライアントレポートの場合、リンクは次のようになります。

レポート! [販売レポート] ORレポート!価格表フォームまたはレポートプロパティへのリンクは、次の3つの部分で構成されます。FamilyName!ObjectName.PropertyName例:

Forms!Customers.VisibleまたはReports![期間販売] .MenuBarプロパティ ディスプレイ上の出力(表示)フォームを画面に表示するか非表示にするか、およびプロパティを決定します メニュー(MenuBar)を使用すると、特別なメニューをレポートまたはフォームに関連付けることができます。

フォーム、レポート、およびそれらのプロパティのコントロールへのリンク

コントロールまたはそのプロパティにリンクするには、その名前を指定する必要があります。 名前にスペースが含まれている場合は、角括弧で囲まれています。 フォームまたはレポートのコントロールへのリンクには、次の3つの部分があります。

FamilyName!ObjectName!ElementName

フォーム![顧客の注文]![注文番号]

レポート![期間の売上高]![金額]

FamilyName!ObjectName!ItemName.PropertyName

例えば:

フォーム![顧客注文]![注文番号] .Enabled

財産 アクセス(有効)を使用すると、コントロールへのアクセスを拒否または許可できます。

オブジェクトはデフォルトのプロパティを持つことができます。 このプロパティは、プロパティ名がリンクで明示的に指定されていない場合に使用されます。 たとえば、コントロールにはデフォルトのプロパティがあります 意味(値)、フォームリンク! 品! 価格を使用すると、[価格]テキストボックスに表示されている値にアクセスできます。

サブフォームとレポートへのリンク

サブフォームとサブレポートはコントロールの一種であるため、他のコントロールと同じ方法でサブフォームまたはレポートを参照できます。 例えば:

フォーム!注文!サブフォーム製品

ここで、SubformProductsは、サブフォームであるOrdersフォームのコントロールの名前です。

ただし、サブフォームまたはレポート内のコントロールへのリンクには特別な構造があります。サブフォームであるコントロールの名前の後に、最初に特別なプロパティを指定する必要があります。フォーム-フォームの場合またはレポート-レポートの場合、次に名前それが実行されるコントロールのリンク:

フォーム!注文!ProductsSubform.Form![商品コード]

フォーム、レポート、テーブルのレコードのフィルタリング

Accessマクロの使用例に移りましょう。 フォーム、レポート、テーブルのレコードを選択するには、ApplyFilterマクロコマンドを使用します。 フィルタを定義するには、2つの方法があります。引数に以前に作成したフィルタの名前を指定する方法です。 フィルタ名(フィルター名)、または引数に選択条件を直接指定する 選定条件(Where Condition)。 フォームを開いた直後にフィルターを適用する必要がある場合は、イベントを使用します オープニング(開いたとき)フォームは、ApplyFilterマクロを含むマクロをバインドする必要があります。 開いたフォームで表示されるレコードのセットを動的に変更する必要がある場合は、次の手順に従います。

  • このフォームで、選択条件を設定できる一連のフィールドを作成します。
  • ボタンを作成する フィルタを適用し、 ApplyFilterマクロを含むマクロを関連付けるために使用します。 引数値として 選定条件このマクロの(Where Condition)は、これらのフィールドへの参照を含む式を指定します。

そのような解決策の例を図1に示します。 11.15。 この図は、さまざまな基準に基づいて選択した製品を参照できる[製品]フォームを示しています。

このフォームは、自動リボンフォームウィザードを使用してProductsテーブルから作成されます。 次に、フォームデザインモードで、選択基準を定義するためのフィールドと、フィルターを適用およびキャンセルするためのボタンが追加されます。 イベントに関連付けられている対応するマクロ ボタンを押す(クリック時)を図に示します。 11.16。 フィルタをキャンセルするには、ShowAllRecordsマクロコマンドを使用します。

米。 11.15。指定された基準でレコードを選択するためのフォーム


米。 11.16。「製品」フォームでフィルターを設定およびキャンセルするためのマクロ

図では 11.16には、SetFilterとCancelFilterの2つのマクロがあります。 ダイアログボックスで 入力エリア(ズーム)引数の値が表示されます 選定条件(Where Condition)ApplyFilterマクロの。 条件がかなり複雑で、フィールド長がかなり複雑であることが判明したことに注意してください 選定条件(条件)は255文字に制限されています。 したがって、「配信が停止しました」など、選択条件にもう1つのフィールドを含めた場合、特別なフィルターを個別に作成し、その名前を引数に設定する必要があります。 フィルタ名(フィルター名)。

「UndoFilter」マクロでは、ShowAllRecordsマクロに加えて、「SupplierSelect」フィールドと「TypeSelect」フィールドをクリアする、つまり値を割り当てるために、さらに2つのマクロが必要です。 (ヌル)。 これは、SetValueマクロを使用して行われます。

データのナビゲート

このマクロのグループは、レコードとコントロールを介したナビゲーションに関連付けられています。 このグループのマクロを使用する例として、ユーザーが「顧客」フォームを操作していて、番号を知っている現在の顧客からの注文を見つけたい場合を考えてみます。 で与えられた例に戻りましょう 宗派。 「マクロのイベントへの割り当て」。次に、「クライアント」フォームにボタンを作成しました。 顧客の注文選択した顧客の注文を表示します。 これらのフォームを改善してみましょう。 ユーザーが注文番号を知っている場合は、テキストフィールドに入力できます 注文を検索し、これは、顧客フォームに追加できます。 次に、開いた「注文」フォームに、対応する請求書を含むレコードをすぐに表示する必要があります。 フォームのヘッダーに「Orderfororder」フィールドを追加して、フォーム「Orders」を開いたときにこのフィールドの値がチェックされ、空でない場合は指定された番号の請求書がチェックされるようにします。検索され、対応するレコードへの遷移が実行されます。 そうしないと、フィルタリングされたレコードセットの最初のレコードが現在のレコードになります。 図では 図11.17は、新しいフィールドと、OrdersフォームのOnLoadイベントに関連付けられたFindOrderマクロを含むCustomersフォームを示しています。

追加されたイベントマクロはCustomersフォームのコントロールを参照するため、フォームが開いている場合にのみ実行する必要があります。さらに、検索は[注文検索]フィールドが空でない場合にのみ実行する必要があります... これに基づいて、マクロの条件が形成されます。 フィールドの1つでパターンごとにレコードを検索する前に、KElementControlマクロ(GoToControl)を使用するこのフィールドをアクティブ化する必要があります。 Orderldフィールドにフォーカスを設定します。 ただし、このフィールドは注文フォームでは使用できないため、最初にプロパティの値を変更する必要があります アクセス(有効)このフィールド。 そうしないと、GoToControlマクロを実行するとエラーが発生します。

マクロKElementControl(GoToControl)は、原則として、「フォーム内のフィールド間の標準的な遷移順序を変更する場合に使用されます。 通常、フィールド間の遷移はキーを使用して行われます<Таb>ただし、いくつかのフィールドをスキップして、フォーカスを特定のコントロールに移動したい場合があります。 これは、フィールドの値など、いくつかの条件に依存する場合があります。 この場合、イベント 更新後(更新後)このprlyaにマクロが割り当てられ、フォーム上の目的のコントロールにフォーカスが移動します。 コントロールの短い名前は、マクロへの引数として指定する必要があります。 名前が長すぎると、コントロールへのナビゲーションが行われず、エラーメッセージが表示されます。

米。 11.17。データをナビゲートするためのマクロの例

フォームとコントロールのデータを更新する

このカテゴリのマクロの最後のグループは、アクティブなフォーム、テーブル、およびクエリのデータの更新に関連しています。 ネットワーク上の複数の人が同時にデータを変更する場合、特定のユーザーのフォームとテーブルが実際のデータを反映していない可能性があります。 表示されたデータをデータベースの現在の状態に対応させるには、コマンドを使用してデータを更新する必要があります。 投稿、更新(記録、更新) (レコードの操作、第2章のセクションを参照してください)。

フォームがデータソースがテーブルまたはクエリであるコンボボックスを使用する場合、シングルユーザーモードでも同様の状況が発生します。 レコードが元のテーブルに追加された場合、それらはコンボボックスに自動的に表示されません。クエリを再実行する必要があります。 コンボボックスに加えて、表示されたデータを更新する必要のあるコントロールには、リストとサブフォームコントロール、OLEオブジェクト、およびDLookUp()やDSum()などのレコードのサブセットの集計関数を含む計算コントロールも含まれます。

フォーム、テーブル、またはコントロールのレコードを更新するには、Requery、ShowAllRecords、およびRepaintObjectマクロを使用します。

更新マクロ(再クエリ)は、データソースに再度アクセスすることにより、データベースオブジェクトのデータを更新します。 マクロには、更新するオブジェクトの名前を含む引数が1つあります。 フォームなどのアクティブオブジェクトを更新する場合は、引数フィールドを空白のままにする必要があります。 この場合、マクロはプロパティで指定されたリクエストを再実行します 情報源このフォームの(RecordSource)。

マクロを使用してデータを更新する例を見てみましょう。 顧客フォームには国コンボボックスがあります。 このフィールドのデータソースは、CustomersテーブルのCountryフィールドから値をフェッチするクエリです:

SELECT DISTINCT Clients.Country FROM Clients;

顧客を入力するときに新しい国名がテーブルに追加された場合、クエリは次にフォームが開かれたときにのみ再実行されるため、この国はリストに表示されません。 国のリストを早期に更新するには、イベントを割り当てる必要があります 更新後(更新後)フォームMacro Clients。引数「Country」の値を使用して1つのマクロコマンドUpdate(Requery)で構成される国のリストを更新します(図11.18)。

米。 11.18。フォームイベントへのマクロの割り当て 更新後

コメント

Requeryマクロは1つのオブジェクトのみを更新するため、表示されたデータの更新を必要とするコントロールがフォームにあり、そのフォームに割り当てられたマクロが空の引数値を持つRequeryマクロを使用する場合、フォーム内のレコードのみが更新されます。更新しました。 このようなコントロールごとに、個別のマクロを使用する必要があります。 このマクロに引数としてコントロールの名前が含まれている場合、そのコントロールのみが実行時に更新されます。 フォーム自体のエントリは更新されません。

更新マクロ(再クエリ)を使用すると、マクロが割り当てられている形式ではなく、非アクティブな形式でデータを更新できます。 ただし、この場合、最初にSelectObjectマクロを実行する必要があります。これにより、フォーカスがアクティブになるために目的のフォームに転送されます(その後、フォーカスを返すことができます)。

前述のように、ShowAllRecordsマクロアクションはフィルターをキャンセルし、レコードのソースを再表示します。 これは、従属形式でデータを更新するためによく使用されます。

RepaintObjectマクロアクションは、データベースオブジェクト(テーブル、クエリ、フォーム、レポート、ページ、マクロ、およびモジュール)にのみ適用され、コントロールには適用されません。 データソースに対してクエリを再実行しませんが、指定されたオープンオブジェクトをすぐに更新します(オブジェクト名が指定されていない場合、アクティブオブジェクトが更新されます)。 オブジェクトを更新しても影響はありません。 更新マクロ(再クエリ)の実行時に発生する、新規および削除されたレコードの表示。 通常、RepaintObjectマクロは、SetValueマクロを使用してデータ変更の結果を表示し、計算されたコントロールの式の値を再計算するために使用されます。

オブジェクトの操作

まず、フォームとレポートのコントロールのプロパティ値を設定できるSetValueマクロの使用方法を見てみましょう。 前の例では、このマクロをすでに使用しています。

コントロールのプロパティを設定すると、条件に応じて、これらのコントロールにアクセスできないようにしたり、非表示にしたりすることができます。 下記は用例です。

  • 特定の条件に応じて、さまざまなフィールドが表示される1つのフォームを作成できます。 これにより、いくつかのケースで1つのフォームを使用でき、状況ごとに追加のフォームを作成する必要はありません。 アプリケーションに多くのフォームがある場合、この機能は非常に便利になります。 コントロールを非表示にするには、値を設定します (False)プロパティの場合 ディスプレイ上の出力このアイテムの(表示)。 画面にコントロールを表示するには、このプロパティを次のように設定します。 NS(NS)。
  • データの現在の作業状態に応じて、特定のアクションを実行するように設計されたボタン、またはフォーム上の他のコントロールの可用性を変更できます。 コントロールを使用不可にするには、値を設定します (False)そのEnabledプロパティに。 コントロールにアクセスできるようにするには、値を設定します NS(True)このプロパティの場合。
  • ユーザーがフォームのデータを変更できないようにすることができます。 このために、プロパティ アクセス(有効)対応するフィールドをに設定する必要があります (偽)、およびプロパティ レコードのロック(ロック)-値 NS(NS)。 すべてのフィールドでの変更を禁止する場合は、値を設定します (False)次のフォームプロパティの場合: 変更を許可する(編集を許可)、 追加を許可する(追加を許可)、 削除を許可する(削除を許可)。 これらのプロパティは動的に変更できます。つまり、ユーザーがフォームを操作しているときに変更できます。 たとえば、ユーザーの権限を確認した後、データ編集を有効または無効にできます。
  • SetValueマクロアクションを使用すると、プロパティ値を動的に変更できます レコードソースフォームの(RecordSource)。これにより、表示されるデータの内容を制御できます。

Accessオブジェクトを開いたり閉じたりするためのマクロがあります。

OpenForm、OpenQuery、OpenReportなど。各タイプのオブジェクトを開くには、個別のマクロコマンドを使用し、オブジェクトを閉じるには、すべてのタイプのオブジェクトに共通のマクロを閉じるコマンドを使用します。 このマクロを適用するオブジェクトのタイプは、引数の1つとして指定されます。 前の例では、アクティブオブジェクトにOpenFormマクロとCloseマクロをすでに使用しています。

OpenQueryマクロアクションを使用すると、データを変更するためのクエリを含む、あらゆるタイプのクエリを実行できます。 選択クエリまたは相互クエリの名前がこのマクロの引数として指定されている場合、マクロの実行結果は、選択されたレコードを表示することになります。 引数がデータを変更するリクエストの名前である場合、マクロはリクエストを実行し、それに応じてテーブル内のデータを変更します。

データを変更するクエリを実行すると、警告メッセージが画面に表示されます。 これらのメッセージの表示を無効にするには、引数値を指定してSetWarningsマクロを使用します 番号(番号)。 同じマクロを使用して、ただし引数がYesの場合、クエリの実行後にシステムメッセージの表示を再度有効にすることを忘れないでください。 そうしないと、Accessはシステムメッセージを表示せず、アプリケーションで不要なアクションが発生する可能性があります。

OpenViewマクロはOpenQueryマクロに似ていますが、Access 2000プロジェクトで使用され、サーバーに格納されているデータを処理するように設計されている点が異なります。

OpenStoreProcedureマクロアクションを使用すると、サーバーストアドプロシージャを編集モードで実行または開くことができます。 .

このセクションでは、すべてのマクロについて説明しているわけではありません。 詳細については、Accessヘルプシステムを使用してください。 迅速なヘルプを取得するには:

  1. チームを選択する ヘルプ、Micrisiftヘルプアクセス(ヘルプ、Microsoft Accessヘルプ)。
  2. タブを展開します 回答ウィザード(回答ウィザード)フィールドに入力します アクションを選択してください(何をしたいですか?)マクロの名前です。 ボタンをクリックします 見つけるには(探す)。

マクロをVBAプロシージャに変換する

多数のマクロを作成してからVBAプログラミングに移行することにした場合は、作成したすべてのマクロをVBAで書き直す必要はありません。 Accessには、マクロをVBAプロシージャに自動的に変換する機能があります。 これは、イベントプロシージャに変換されるフォームとレポートのイベントに関連付けられたマクロと、フォームとレポートに関連しない一般的なマクロの両方に適用されます。 それらはすべて個別の標準モジュールに変換されます。

[顧客ラベル]ダイアログフォームのイベントに割り当てられたマクロをイベントルーチンに変換してみましょう。

  1. デザインビューで[顧客ラベル]ダイアログフォームを開きます。
  2. チームを選択する サービス、マクロ、フォームマクロの変換(ツール、マクロ、フォームのマクロをVisual Basicに変換)。
  3. ダイアログボックスで フォームマクロ変換(フォームマクロの変換)(図11.19)ボタンをクリックします 変換(変換)、デフォルトのチェックボックスを選択したままにします。

米。 11.19。マクロをVBAプロシージャに変換する

  1. 変換が完了したら、[顧客ラベル]ダイアログフォームで、次のように右クリックします。 キャンセル、コマンドを選択します プロパティ(プロパティ)。
  2. ダイアログボックスで プロパティ(プロパティ)タブを展開します 開発(イベント)。
  3. イベントボックス内 ボタンを押す(クリック時)設定されていることが判明 【イベント手順】()。 フィールドの右側にある[ビルダー]ボタンをクリックします。手順テキストを含むVBAエディターウィンドウが開きます(図11.20)。

米。 11.20。マクロから派生したプロシージャ

このマクロ派生プロシージャは、DoCmdオブジェクトを使用してクローズフォームマクロを実行します。 ウィンドウに設定されたチェックボックスによると マクロ変換(マクロの変換)、マクロ内のコメントがプロシージャ内のコメントに変換され、エラーが発生した場合にエラーメッセージを表示するエラー処理コードが追加されました (第13章を参照)。

レポートイベントに割り当てられたマクロの変換も同じ方法で実行されます。

次に、前に作成したSales Managersマクロなど、フォームまたはレポートのイベントに関連付けられていないマクロをVBAプロシージャに変換する方法を見てみましょう。

  1. ショートカットをクリックします マクロ(マクロ)Northwindデータベースウィンドウ。 マクロのリストが表示されます。 SalesManagersマクロを選択します。
  2. チームを選択する サービス、マクロ、マクロの変換(ツール、マクロ、マクロをVisual Basicに変換)。
  3. 前の例と同じダイアログボックスが開き(図11.19を参照)、ボタンをクリックする必要があります 変換(変換)。 変換プロセスが終了すると、変換プロセスが正常に完了したことを示すメッセージが表示され、結果のVBAコードを表示できるVBAエディターウィンドウが開きます(図11.21)。
  4. マクロは、Sales_Managersという同じ名前の関数に変換されます(スペースはアンダースコアに置き換えられています)。

米。 11.21。「セールスマネージャー」マクロを変換した結果

変換後、元のSales Macroは削除されず、ConvertedMacroという名前の新しいモジュールがNorthwindデータベースウィンドウのモジュールリストに追加されました。

マクロをVBAモジュールに変換する別の方法があります。

  1. NorthwindDatabaseウィンドウでSalesManagersマクロを選択します。
  2. チームを選択する ファイル、名前を付けて保存(ファイル、名前を付けて保存)。
  3. 表示されるダイアログボックスで 保存(名前を付けて保存)、[名前を付けて]ドロップダウンリストから、アイテムを選択します モジュール(モジュール)(図11.22)そしてボタンを押します わかった。

米。 11.22。マクロをモジュールとして保存する

結論

この章では、マクロの紹介、マクロの作成方法と実行方法、既存のマクロの概要、および使用例を示しました。 フォームとレポートのすべてのイベントと、マクロを使用したそれらの処理については説明していません。 この資料の詳細は ch。 13.13。同じアクションをVBAプロシージャで実装できるため、マクロを使用したイベントの処理に特別な注意を払う必要はありません。

結論として、マクロを使用すると、多くのユーザーアクションを自動化するアプリケーションを簡単に作成できることをもう一度強調したいと思います。 VBAプログラミング言語を深く掘り下げる前に、このようなアプリケーションを作成することから始めることをお勧めします。 ただし、複雑なマルチユーザーアプリケーションは、マクロとモジュールの複雑な組み合わせを作成せずに、VBAプログラミング言語を使用してすぐに開発する必要があります。

実験室作業No.1「Excelでのテーブルの作成とフォーマット」(トレーニングの形式-フルタイム、パートタイム)-インタラクティブな形式「小グループでの作業」。

1.次の例でテーブルを作成します。

NS NS NS NS E NS NS
P / pいいえ。 クライアント 日付 時間(時間、分) 量、こすります。 ノート。
月額 1年当たり
ボロニン 2月15日 3,7 サーバ
ボロニン 2月18日 5,8 サーバ
スコベレフ 2月22日 3,5 モニター
ヴァシン 3月15日 4,9 プリンター
ヴァシン 3月24日 7,5 モデム
ボロニン 05.apr 4,6 サーバ
スコベレフ 20.apr 3,8 モニター
スコベレフ 4月25日 7,2 プリンター
合計

4.ページパラメータを設定します:余白-すべて1.5 cm、A4形式、本。

5.1から8までの行番号を自動番号で入力します。

6.日付形式を日付(2001年3月14日)、金額(金額)に割り当てます。

作成されたテーブル(上記を参照):

1.青のイタリックで200から300の間、赤のイタリックで2500から3500の間の値を強調表示します(条件付き書式を使用)。

2.「クライアント」列をアルファベット順に昇順で並べ替えます。

3.グラフを作成します。棒グラフ「顧客-費やした時間」、円グラフ-「顧客-年間の合計」(タイトルとデータラベル付き)。

10.ヘッダーを追加します:フォーム067-15-887。

11.表と図を1ページに配置し、フィールドを1.5cm設定します。 水平および垂直の中心位置合わせを設定します。 一般的なヘッダーを追加します- Xリングクライアント、画像を挿入します。

実験室での作業の準備と独立した作業を実行するには、トピック3.4の次のセクションを習得する必要があります。最も簡単な計算を使用したExcelでのテーブルの作成と書式設定、セルの書式の変更、条件付き書式設定、並べ替え、グラフィックオブジェクトの挿入、ヘッダーの作成とフッター。

1.データの種類と形式、セル内のデータの表示について説明します。

2.データ入力時にオートコンプリート、自動入力、オートコレクトを使用します。

3.値および計算結果によるデータの条件付きフォーマット。

4.絶対リンクと相対リンクの違いは何ですか。

5.関数ウィザードの使用方法を説明します。

6.スプレッドシートにグラフを挿入してフォーマットする方法を説明します。

7.グラフィックをスプレッドシートに挿入するにはどうすればよいですか?

セクション8.1。 - 一。

セクション8.2。 -1、2、3。

実験室作業第2号「Excelの機能のマスター。 絶対リンクと相対リンク "

1.テーブルを作成します。

NS NS NS NS E
第1四半期の「マーケティング」部門の給与
1月 2月 行進 %
イワノフ 0,20
パブロフ 0,30
アントノフ 0,25
カルポフ 0,28
ネクラーソフ 0,21
ポストニコフ 0,32
アベリン 0,15
ヤクシェフ 0,22
ヴァシン 0,27
販売量、$
平均ドル為替レート、摩擦。

-(COS(1,2)+ SIN(0,7))*ルート(9)/ 4;

-二次方程式の根x2-5x + 6 = 0;

自習課題

-「合計」のすべての値;

-平均(C3:C17)*最大(E3:E17)/ 32;

実用的なタスクを完了するには、トピック3.4の次のセクションを習得する必要があります。数式による計算。 セルおよびセルのブロックへの絶対的および相対的な参照。 数式のコピー; 数式で関数を使用する。 MSExcelの関数の分類。 関数ウィザードを使用します。

セルフテストのためのテストの質問

1.スプレッドシートで使用できる組み込み関数の種類は何ですか?

2.セル参照とは何ですか? スプレッドシートの絶対セル参照と相対セル参照とは何ですか? これらのリンクの相互変換はどのように実行されますか? 絶対リンクと相対リンクはいつ使用されますか?

3.セルフォーマットとは何ですか? セル内のデータをフォーマットするためのどのようなテクニックを知っていますか?

4.数式を使用してMSExcelで計算はどのように実行されますか? 関数はどのように数式に挿入されますか? 関数の引数への参照はどのように指定されますか?

6.数式のコピーメカニズムは何を提供しますか?

7.「自動合計」とは何ですか?どのように実行されますか?

セクション8.1。 - 一。

セクション8.2。 -1、2、3。

実験室作業第3号「Excelでの行列演算」(トレーニングの形式-フルタイム、パートタイム)-インタラクティブな形式の「トレーニング」。

1.行列の積を見つけます。

–6 –7
;
*
*
–8 –12 –2 –6
–4

2.連立方程式を解きます。

X 1-x 2 + x 3 = 3、x 1 + 2x 2 + 3x 3-2x 4 = 6、2x-3y + z –2 = 0、

2x 1 + x 2 + x 3 = 11、2x 1 + 4x 2-2x 3-3x 4 = 18、x + 5y-4z + 5 = 0、

x 1 + x 2 + 2x 3 = 8.3x 1 + 2x 2-x 3 + 2x 4 = 4、4x + y-3z + 4 = 0。

2x 1-3x 2 + 2x 3 + x 4 = -8。

3x + 2y + z = 5、x-2y + 3z = 6、4x-3y + 2z = 9、

2x + 3y + z = 1、2x + 3y-4z = 20、2x + 5y-3z = 4、

2x + y + 34z = 11.3x-2y-5z = 6.5x + 6y-2z = 18。

自習課題

1.行列の積を見つけます。

*
6
*
1
–3
;
12
–2 –6
–5 –3 –5 –1

2.連立方程式を解きます。

X + y + 2z = -1、x + y + 2z = -1、2x-y-z = 4、

2x-y-3z = 4、2x-y + 2z = -4、3x + 4y-2z = 11

5x + 6y-2z = 18.4x + y + 4z = -2.3x-2y + 4z = 11。

3x + 4y + 2z = 8、4x + 7y-3z = -10、-3x + 6y + 8z = -7

2x-y-3z = -4、2x + 9y-z = 8、9x-11y-15z = -15

x + 5y + z = 1.x-6y + 3z = -3.18x-22y + 3z = -3 .

実験室での作業の準備と独立した作業を実行するには、トピック3.4の次のセクションを習得する必要があります。行列演算と行列演算を使用してExcelで線形方程式を解く方法。

セルフテストのためのテストの質問

1.行列の乗算の順序を説明します。

2.連立一次方程式を解く手順を説明します。

3.行と列の数の比率による行列乗算のルールを定式化します。

4.行列の乗算にはどのような組み込み関数が使用されますか?

5.連立一次方程式を解くために使用される組み込み関数は何ですか?

セクション8.1。 - 一。

セクション8.2。 -1、2、3。

実験室作業No.4「Excelでのグループ操作の使用」(トレーニングの形式-フルタイム、パートタイム)-インタラクティブな形式の「ブレーンストーミング」。

1.テーブルを作成し、少なくとも10個のレコードを入力します。

2.リストを「日-グループ-姓名」の順序で並べ替えます。

3.一般的なリスト:

-見出し「地区」とデータ(電話番号別)を追加します。

-次の順序で新しい並べ替えアイテムを追加します。

Strogino、Khimki、Vykhino、Krylatskoe、Taganskaya、

-作成した要素でリストを並べ替えます。

4.オートフィルターの使用:

-「K」で始まり「p」を含む名前を表示します。

-599人の学校の生徒;

-第1グループの学生。

-月曜日と火曜日の第2グループと第3グループの学生。

5.高度なフィルターを使用して、条件1〜6に従って生徒の数を表示します。

状態番号 姓名 学校 クラス 電話 グループ
P * B * C *
モントゥエ水
土月火

6.小計を使用して、学校、曜日、地区、グループごとの生徒数を表示します。

7.ピボットテーブルを作成します。

-学校の学年別の生徒数。

-グループからの1日あたりの学生数。

-クラスからの1日あたりの学生数。

自習課題

1.実験室作業2の表に記入します。追加-見出し:「HOUSEコスト見積もり」、フレーム、列見出しを別の形式で強調表示します。

2.データ「経費」をアルファベット順に並べ替え、経費の種類ごとに小計(金額)を表示します。

3.ポイント3「経費-金額」(行のデータ)の別のシートに図を作成し、図のあるシートの名前を「経費-金額」に変更します。

4.データを「受信者」で並べ替え、各受信者の費用を表示します。

5.合計を削除し、オートフィルターを使用して受信者のPrestigeJSCのデータを表示します。

6.オートフィルターを使用して、1月のデータを表示し、「日付-合計」グラフを作成して名前を変更します。

7.オートフィルターを削除し、データを日付で並べ替え、列Aの前に列を挿入してオートコンプリートでテーブルの行に番号を付け、列Aにフレームを追加します。

実験室での作業の準備と独立した作業を実行するには、トピック3.4の次のセクションをマスターする必要があります。並べ替え、小計、フィルタリング、オートコンプリートを使用してExcelでリストを作成する。 Excelでリストを操作するときのグループ操作(新しい並べ替えアイテムの作成、高度なフィルターの操作、ピボットテーブルの操作)。

セルフテストのためのテストの質問

1.組み込みのオートコンプリートリストはどのように使用されますか?

2.セルのブロックのオートコンプリートとは何ですか?

3.オートコンプリート用のリストを準備するにはどうすればよいですか?

4.オートフィルターと高度なフィルターの使用の違いは何ですか?

5.リストのマルチレベルソートはどのように実行されますか?

6.リスト形成の特徴は何ですか?

7.小計の計算操作はどのように実行されますか?

セクション8.1。 - 一。

セクション8.2。 -1、2、3。

研究室作業No.5「Excelでマクロを作成する」(トレーニングの形式-フルタイム)-インタラクティブな形式の「ブレーンストーミング」。

1.相対参照を使用してテーブルを作成するためのマクロを記録し、キーボードショートカットのCTRL + TおよびCTRL + Pで呼び出します。

1学期のグループレッスンスケジュール
月曜日 to – t to – t 結婚した to – t NS to – t to – t

自習課題

1.マクロを記録します-テンプレートを再開します。

2.選択した間隔をフォーマットするマクロを作成します。

3.テキストを入力し、常に同じセルにフォーマットするマクロを作成します。

実験室での作業の準備と独立した作業を実行するには、トピック3.4の次のセクションを習得する必要があります。Excelでマクロを作成および実行して計算操作を自動化する方法。

セルフテストのためのテストの質問

1.Excelでマクロを作成する目的を定式化します。

2.マクロを自動的に記録する方法を説明します。

3.相対参照と絶対参照を使用してマクロを記録することの違いは何ですか。

4.マクロの実行にキーボードショートカットを割り当てる方法は?

5.ツールバーのボタンをマクロの実行に割り当てるにはどうすればよいですか?

セクション8.1。 - 一。

大きい 予定
OpenForm プレビューモードでフォームを開くことができます。 フィルタを適用して選択条件を設定することが可能です
オープンリクエスト プレビューモードでクエリを開くことができます
テーブルを開く プレビューモードでテーブルを開くことができます。
OutputInformat 指定されたテーブル、クエリ、フォーム、レポート、またはモジュールをXLS、RTF、またはTXT形式のファイルに出力し、適切なアプリケーションを起動してファイルを編集します。
密閉 アクティブなテーブル、フォーム、またはレポートを印刷します。 印刷するページの範囲、部数、および部数をネストするかどうかを設定できます。
CommandMenu アクセスメインメニューでコマンドを実行します
出口 すべてのウィンドウを閉じてAccessを終了します
LaunchMacro 別のマクロを実行します
StopAllMacros このマクロを開始したマクロを含む、すべてのマクロの実行を停止します
メニューを追加 フォームまたはレポートのカスタムメニューバーにドロップダウンメニューを追加します。 このマクロの引数は、メニューバーの名前と、メニューで使用されるすべてのコマンドとこれらのコマンドに対応するすべてのアクションを含む別のマクロの名前を指定します。
CommandMenu メインのアクセスメニューの1つからコマンドを実行します。 カスタムメニューバー内でこのマクロを使用すると、カスタムメニューでコマンドを実行できます。
コマンドキーボード 押されたキーのシーケンスを記憶します
SetValue 更新可能なコントロールまたはプロパティの値を変更します
信号 ビープ音
メッセージ 警告または情報メッセージを表示します
メッセージの設定 有効にすると、マクロの実行中にすべてのシステム警告または情報メッセージへの応答キーとしてEnterキーが割り当てられます。 メッセージの表示をキャンセルするには、このコマンドをDisplayOnScreenマクロをオフに設定して使用します。
画面 マクロの実行中に実行される中間アクションに関する情報を表示します
拡大 アクティブウィンドウのサイズをフルサイズに拡大します
崩壊 アクティブなウィンドウをアイコンに最小化します
シフトサイズ アクティブウィンドウのサイズを変更します
戻す ウィンドウを元のサイズに戻します

次のボタンは、ツールバーのマクロを操作するために使用されます(図9.1)。

ボタン マクロ名(画像「XYZ」付き)列「」を表示または削除します マクロ名 "グループに含まれるマクロに名前を割り当てることができます。

ボタン 条件(フローチャート画像付き)列「」を表示または削除します 状態"マクロウィンドウで、アクションが関連付けられる条件を設定できます。

ボタン 実行する(画像「!」を使用)マクロを実行します。

ボタン ステップバイステップ(矢印とリスト付き)マクロを段階的に実行します。

データベースに含まれているオブジェクトを処理するために、マクロの大規模なセットが作成されることがあります。各マクロは、非常に特殊な手順を自動化します。 フォームまたはレポートのイベントに関連付けられているすべてのマクロを、このフォームまたはレポートに対応する個別のオブジェクト(グループ)に結合することをお勧めします。 各マクロには、グループ内で一意の名前を付ける必要があります。 オブジェクト名 大きいグループの名前になります。 マクログループからのマクロコマンドの呼び出しは、マクログループの正確な名前とグループ内のマクロコマンドを指定することによって実行されます。 GroupName.MacroName。

マクロ内のマクロの実行順序は変更できます。 このため、マクロの実行またはスキップの条件がマクロに入力されます。 条件は列の式として指定されます 状態。

フォームまたはレポートへのリンクは、FamilyName!ObjectNameの2つの部分で構成されています。 開いているすべてのフォームは、フォームファミリ、開いているレポート、つまりレポートファミリに含まれています。 たとえば、Forms![Customer Orders]またはForms!Customer; レポートへのリンク-レポート![販売レポート]。 オブジェクト名にスペースまたは特殊文字が含まれている場合は、角括弧で囲む必要があります。 フォームまたはレポートのプロパティへのリンクは、FamilyName!ObjectName.PropertyNameの3つの部分で構成されています。 例:Forms!Client。Display。

FamilyName!ObjectName!ItemName(たとえば、Forms![Customer Orders]![Customer Number]);

FamilyName!ObjectName!ItemName.PropertyName(たとえば、Forms![Customer Orders]![Access])。

タスク

1.OpenFormマクロアクションを含むマクロを作成します。 フォームは、別のフォームにあるボタンを使用して開く必要があります。

2.新しいマクロとともに前のマクロを含むグループを作成します。 あなたの裁量でマクロの選択をしてください。

3.条件付きのマクロを作成します。

作業命令

マクロの作成

1. ウィンドウ内 データベースタブをクリックします マクロボタンをクリックします 作成..。 図のようなマクロデザインウィンドウが開きます。 9.1。 (列はありません マクロ名状態)。 このウィンドウの各行には、1つのマクロコマンドとそのコメントを含めることができます。

2. ポインタでマークされた行に、次のように入力します 大きい..。 コマンドはキーボードから入力するか、列のセルにあるリストを使用できます 大きい.

3. 列に説明を入力することをお勧めします ノート..。 コメントを使用すると、マクロの理解と保守が容易になります。

4. フィールドが 大きい塗りつぶされた、下部 マクロコンストラクター現れる 引数パネル..。 このパネルのフィールドのリストは、選択したマクロによって異なり、マクロに引数がない場合は表示されない場合があります。 システムに必要なすべての情報をマクロ引数領域に入力します。 一般に、マクロへの引数は、リストされている順序で指定することをお勧めします。1つの引数を選択すると、次の引数の可能な値を決定できるためです。

5. マクロを保存します。 これを行うには、ボタンを使用できます 保存する、またはコマンドを実行します ファイル/保存..。 マクロに名前を付けます(名前は意味のあるものにする必要があります)。

6. マクロを実行して実行します。

次のいずれかの方法でマクロを呼び出して実行できます。

マクロ設計モード(図9.1を参照)で、ボタンをクリックします。 実行する;

コマンドを実行する サービス/マクロの実行リストから実行するマクロの名前を選択します。

ウィンドウ内 データベースタブで マクロ実行するマクロの名前をダブルクリックします。

7. で開く コンストラクターモードマクロが開発されているフォーム以外のフォーム。

8. 開いているフォームのタイトル領域にボタンを配置して、ボタンを作成します。 ボタンのプロパティウィンドウを開きます(図9.2)。ボタンを選択し、マウスの右ボタンを押して、表示されるメニューで、 アイテムのプロパティ(ボタンをダブルクリックすると、プロパティウィンドウを開くことができます)。 プロパティウィンドウで、マクロが関連付けられているイベントを指定します。 デフォルトでは、このイベント ボタンを押す.

マクログループの作成

マクロをマクログループに結合します(新しいオブジェクトを作成するか、以前に作成したマクロをマクログループに変換できます)。

1. 開く マクロコンストラクター.

2. ボタンをクリックします マクロ名ツールバーにあります。 ウィンドウ内 マクロコンストラクター別の列が表示されます マクロ名.

3. この列に最初のマクロの名前を入力します。 列の同じ行 大きいマクロの名前に続けて、それに一致する引数を入力します。 マクロに複数のマクロが含まれることになっている場合は、列の後続の行にそれらを入力します 大きい。

4. 行をスキップします。

5. 次のマクロと対応するマクロの名前を入力します。 図では 9.3例として、「Northwind」データベースの「Suppliers」マクロを示します。

6. マクロが機能するかどうかを確認します。 コマンドを実行します サービス/マクロの実行(マクログループの最初のマクロのみが実行されます) . ダイアログボックスにマクログループの名前を入力し、ドットでマクロの名前を指定することにより、グループから他のマクロを呼び出すことができます。

7. マクロを保存します。

条件付きマクロの作成

たとえば、図では。 9.4マクロを設計するためのウィンドウが表示され、会社の倉庫内の商品の表が表示されます。 テーブル 「在庫品」フィールドにいるときだけ開きます 価格 1000未満の値が入力されます。マクロはコントロールに関連付けられています 価格の形で 「倉庫から販売された商品」..。 このマクロをコントロールに接続する 価格ボタンマクロを接続するのと同じ方法で発生します。 マクロはイベントにバインドします 出口、またはイベントで 入口.

1. 開く マクロコンストラクター.

2. ボタンをクリックします 状態。列に書く 状態 trueの場合、生成されたマクロを実行する式。 ウィンドウで条件の式を指定する方が便利です。 式ビルダー.

3. マクロを設定します。

4. マクロを保存します。

5. で開く コンストラクターモードコントロールの1つが開発されたマクロに関連付けられることになっている形式。 コントロールとマクロをリンクします。

6. マクロが機能するかどうかを確認します。

付録1

統計関数

関数 説明
各グループの指定されたフィールドのすべての値の合計を計算します。 数値フィールドと通貨フィールドにのみ使用されます。
平均 各グループの指定されたフィールドのすべての値の算術平均を計算します。 数値フィールドと通貨フィールドにのみ使用されます。 ヌル値は計算に含まれません。
最小(最大) 各グループ内の指定された数値フィールドで見つかった最小(最大)値を返します。 テキストフィールドの場合、大文字と小文字を区別せずに最小の文字値。 ヌル値は無視されます。
カウント このフィールドの値がNull以外であるレコードの数を返します。 カウント(*)は、Null値を説明するために使用されます
StDev * 各グループのこのフィールドのすべての値のバイアスされた統計標準偏差を計算します。 数値フィールドと通貨フィールドに適用されます。 グループ内の行が2つ未満の場合、Nullを返します。
StDevP * 偏りのない統計標準偏差を計算します
Var * 各グループの特定のフィールドのすべての値のバイアスされた統計的分散を計算します。 数値フィールドと通貨フィールドに適用されます。 グループ内の行が2つ未満の場合、Nullを返します。
VarP * 偏りのない統計的分散を計算します
初め * 指定されたフィールドの最初の値を返します。
最後 * 指定されたフィールドの最後の値を返します。

注:*でマークされた関数は クエリウィザード適用しないでください。


付録2

式ビルダー

Expression Builderは、複雑な式を作成するためのツールです。 窓の構造 式ビルダー図に示します。 A.2.1。

式テキストボックス

表現-演算子とオペランドのセット(定数、識別子、関数)。

識別子-オブジェクトの名前(たとえば、テーブルやクエリのフィールド)。式を評価するときに、現在の値に置き換えられます。 オブジェクトの名前が複数の単語で構成されている場合は、角かっこで囲む必要があります。 ただし、オブジェクトの名前が1つの単語で構成されている場合でも括弧を使用するのが一般的であるため、式を操作するときにオブジェクトの名前がす​​ぐにわかります。

識別子は、Visual Basic for Applicationsプログラムで使用される定数と変数の名前、および名前付き定数True、False、Yes、No、Nullです。

関数-関数名の代わりに式の値を返します。 ほとんどの関数では、引数を括弧で囲む必要があります。 空の引数リストを持つ関数の例: 日にち ()-現在の日付を返します。

式を作成するための演算子には6つのカテゴリがあり、それらを表2.1に示します。

表P.2.1

式を作成するための演算子

オペレーターカテゴリ オペレーター 説明
算術演算子 + [合計] + [追加料金] 2つのオペランドを追加します
- 日付()-7 2つのオペランドの差をカウントします
* 【箱】※【価格】 2つのオペランドを乗算します
/ 【金額】/5.33 あるオペランドを別のオペランドで除算します
\ 【数量】\ 2 あるオペランド全体を別のオペランドに統合的に分割します。 この場合、小数部のオペランドは最も近い整数に丸められます
モッド [ボックス] Mod 3 ブランチの残りの部分全体を返します
^ [A] ^ [b] オペランドAをbの累乗に上げます
比較演算子1 < 1 < 100 以下
<= [NS]<= 2 以下
= [b] = 3 等しい
> [a]> 2 もっと
>= [b]> = 3 以上
<> 1<>100 等しくない
論理演算子2 [A]そして[B] 接続詞(論理積)
または [A]または[B] 論理和(ブールまたは)
いいえ [A]ではありません 論理否定
Xor [A] Xor [B] 排他的論理和
Eqv [A] Eqv [B] 論理的等価性
インプ [A]インプ[B] 論理的帰結
連結演算子 + 「ビジュアル」+「ベーシック」 2つのテキストを組み合わせる
& 「ビジュアル」と「ベーシック」 値を1行にまとめます。 両方のオペランドは同等ですが、&が優先されます
表A.2.1の続き
識別演算子 ! ObjectClass! ObjectName オブジェクト参照の区切り文字
. ObjectName.Method オブジェクトのメソッドとプロパティへの参照における区切り文字
パターン比較演算子 (-100)と(100)の間 数値が特定の範囲内にあるかどうかを判別します
[名前]はNullです 値との比較にのみ使用されます。 この例では、[名前]フィールドにデータがない場合、式はtrueと評価されます。
(「モスクワ」、「キエフ」、「ムルマンスク」) 文字列値が値リストの要素であるかどうかを判別します
好き 「Yves *」のように「db ??」のように 文字列値が指定された文字で始まるかどうかを決定します(「*」文字は任意の数の文字を表し、「?」は1文字のみを表します)

ノート:

1.比較演算子を使用した結果はTrueまたはFalseです。 オペランドの1つがNullの場合、比較するとNullが返されます。

2.論理演算子を適用した結果はTrueまたはFalseです。 オペランドには、セットの値(True、False、Null)があります。 Impを除くすべてのブール演算子の場合、オペランド値がNullの場合、結果値はNullになります。

式要素はテキストボックスに入力されます 式ビルダー。最も一般的な演算子は、ウィンドウの中央にあるボタンで表されます。 式要素は、オブジェクト、関数、定数、演算子、および一般式のリストから選択できます。

リストから式要素をコピーするには、最初に左側のペインのフォルダの1つをクリックします。 一部のフォルダには子フォルダがあり、ダブルクリックして展開することもできます。 開いているフォルダに対応するアイテムのリストが右側のペインに表示されます。

場合によっては、中央のペインに、式に追加できる項目(たとえば、テーブルフィールド識別子)も含まれます。

リストからテキストボックス式に項目を追加するには、項目をダブルクリックするか、項目を選択してボタンをクリックします。 入れる。


付録3

ツールボックスボタン アクセス

ボタン ボタン名 関数
オブジェクトの選択 マウスポインタを選択ツールに変えます
マスターズ 新しいコントロールウィザードを有効または無効にします
碑文 見出し、キャプション、または説明のテキスト。このテキストは変更されません。
分野 テキストデータを表示および編集するためのフィールドを作成します
グループ スイッチ、ラジオボタン、チェックボックスを配置するためのフレームを作成します。 一度に選択できるのは、フレーム化されたオブジェクトの1つだけです。 フレームの各要素には一意の番号があります
スイッチスイッチチェックボックス グループに含まれていないスイッチ、スイッチ、チェックボックスはブール値を定義しますはい (はい)か否か (番号)、Trueの使用が許可されています (NS)または任意の正の数、False (NS)またはゼロ
コンボボックス 値入力フィールドと一連の値から値を選択できるリストボックスを含むコンボボックスを作成します
リスト 値を選択するためのドロップダウンリストを作成します
ボタン クリックすると、AccessVBAイベントルーチンを起動するボタンを作成します
描く フォームまたはレポートにビットマップを追加します。 画像はOLEオブジェクトではありません。フォームに配置すると、変更できません。
フリーフレーム フォームまたはレポートにOLEオブジェクトを追加します
付属フレーム フィールドにグラフィックオブジェクトがある場合はOLEレコードフィールドの内容を表示し、そうでない場合はオブジェクトアイコンが表示されます。
継続調整 3
ページ分割 フォームまたはレポートを印刷するときに、ページ分割時にプリンターに新しいページを開始させます。 ブレークはフォームまたはレポートビューに表示されません
タブセット タブのセットを挿入して、タブ区切りのフォームを作成します。
従属フォーム/レポート サブフォーム/レポートをメインフォーム/レポートに追加します
線の長方形 これらは、フォームを論理グループに分割して、フレームや境界線をシミュレートするために使用されます。 色、線幅、長方形の塗りつぶしは、書式設定ツールバーを使用して設定します
追加の要素

付録4

チェックリスト

1. ACCESS DBMSでデータベース構造を定義する手順は何ですか?

2.データベーステーブルの構造はどのモードで記述されていますか?

3.用語の定義を示します:「オブジェクト」、「プロパティ」、「メソッド」、「イベント」。

4. ACCESS DBウィンドウにはどのような種類のオブジェクトが表示されますか?

5.データベースファイルにはどの拡張子が使用できますか?

6.作成後にテーブルの構造を変更できますか?

7. ACCESSではどのような種類のデータベースフィールドが提供されていますか?

8.データベースフィールドに名前を付けるためのルールは何ですか?

9. OLEオブジェクトフィールドにはどのような情報を保存できますか?

10.フィールドのどのプロパティを必ず定義する必要がありますか?

11.リレーショナルデータベースの主キーの目的を説明します。 主キー値の制約は何ですか?

12.インデックスの目的を説明します。

13.フィールドの一部にインデックスを作成することはできますか? はいの場合、どのように行いますか?

14. ACCESS DBMSで自動的に実行できるデータ制御の種類は何ですか?

15.データベーステーブル間の関係を記述する必要があるのはなぜですか?

16.どのモードでテーブル間の関係を説明する必要がありますか?

17. ACCESSはどのような種類のリンクをサポートしていますか?

18.リンクの設定は、データベースへの情報の入力と変更にどのような影響を及ぼしますか?

19.データベースにデータを入力して修正するタスクは何ですか?

20.データ修正タスクにはどのような典型的な操作が含まれますか?

21. ACCESSではどのようなデータ制御技術を利用できますか?

22.データ検証はいつ実行されますか?

23.テーブルに新しいレコードを追加するにはどうすればよいですか?

24.テーブルからレコードを削除するにはどうすればよいですか?

25.データベースから削除された情報を回復することは可能ですか?

26.テーブルで必要な値を見つける方法は?

27.すべてのデータベースレコードでZaryaLLPの名前をRassvetJSCに置き換えるにはどうすればよいですか?

28.検索パターンとは何ですか、パターンで使用されている記号とその目的は何ですか?

29.データベースレコードの並べ替えは、どのような目的でどのように実行されますか?

30.「会社」フィールドでソートした場合、テーブルの他のフィールドのデータはどのように動作しますか?

31.データの並べ替えをキャンセルするにはどうすればよいですか?

32.リクエストとは何ですか?ACCESSはどのタイプのリクエストをサポートしていますか?

33.パラメータを使用してクエリ選択を作成するときにパラメータを設定するにはどうすればよいですか?

34.集約(グループ)操作とは何ですか?また、それらはクエリにどのように適用されますか?

35.クエリを作成するときに、出力テンプレートのフィールドがどのテーブルから取得されるかを決定するにはどうすればよいですか?

36.相互参照クエリとは何ですか、またどのように作成されますか?

37. SQLはどのクラスの言語に属しますか? SQLはクエリの形成にどのように使用されますか?

38.サブクエリを含むSQLクエリの構造は何ですか?

39.可能であれば、何らかのフォームからリクエストにパラメータを渡すことは可能ですか?それではどのように行うのですか?

40.可能であれば、クエリを介してテーブルにデータを入力することは可能ですか。どのような場合に、テーブルへのクエリを介してデータを入力する際に​​、相互接続されたテーブルに課せられる制限は何ですか。

41.グループ化フィールドとは何ですか。1つのクエリで同時に複数のグループ化フィールドを使用できます。結果の意味は何ですか。

42.テーブルを作成するためのクエリとは何ですか、それはどのように機能しますか、どのテーブルを作成できますか?

43.データベーステーブルの変更要求はどのように作成されますか? 1つのクエリに複数のテーブルの変更を含めることはできますか?

44.削除リクエストとは何ですか、どのように作成されますか? 削除リクエストは何に使用できますか? パラメータを使用したこのタイプのクエリはありますか?

45.クエリの計算フィールドとは何ですか、それらは何のためにあり、どのように構築されますか?

46.計算フィールドはクエリの選択条件の形成に参加できますか?

48.表示または表示可能および非表示または非表示のクエリフィールドとは何ですか? なぜ非表示のクエリフィールドが必要なのですか?

49.式ビルダーで、特定のテーブルのフィールド、特定のクエリのフィールドをどのように確認できますか? クエリを作成するときに、式ビルダーにすべてのフィールドが表示されないのはなぜですか?

50.同時にいくつのデータベースを開くことができますか?

51.「テーブル」オブジェクトにはどのようなプロパティがありますか?

52.オブジェクト「フォーム」の目的。 「フォーム」オブジェクトにはどのようなプロパティがありますか?

53. ACCESSではマルチスクリーンフォームを作成できますか?

54.同じ画面フォームを使用して、異なるデータベースファイルに情報を入力することはできますか?

55.フォームにサブフォームを埋め込む方法は?

56.「レポート」オブジェクトの目的。 「レポート」オブジェクトにはどのようなプロパティがありますか?

57.合計行のみを含むレポートを取得することは可能ですか? はいの場合、どのように?

58.データベースファイルで指定されたものと比較して、出力ドキュメントのフィールドの長さと形式を変更することは可能ですか?

59.マクロとは何ですか? マクロの任命。

60.データベースウィンドウでは、テーブル、クエリ、およびフォームにどのモードを使用できますか? それらは有効なマクロモードとどのように異なりますか?

61.マクロの操作におけるエラーを特定するにはどうすればよいですか?

62. ACCESSは他の形式で保存されたデータを使用できますか?

63. EXCELワークシートからデータをインポートしてテーブルを作成するにはどうすればよいですか?

作成したマクロを実行する必要があります。 マクロを実行するには、いくつかの方法があります。

1.コマンドを介して マクロ->マクロ->サービス

2.マクロに割り当てられたキーの組み合わせを使用します。

3.このマクロに割り当てられたメニューコマンドを使用します。

4.ツールバーのこのマクロに割り当てられたボタンを使用します。

マクロの実行方法の選択は、ユーザー自身のニーズと好みに基づいてユーザー自身が決定します。 2番目の方法を使用して、最も頻繁に実行されるマクロを実行することをお勧めします。 3つ目は、メインメニューに独自のコマンドを入力して、メニューを改善する機能を示しています。 後者の方法は、打ち上げの可視性によって区別されます。

マクロを実行するためのこれらの各メソッドを詳しく見てみましょう。

1.チーム マクロ->マクロ->サービス-実行のためにマクロを呼び出す標準バージョン。 マクロダイアログボックスで、作成したマクロを選択し、[実行]ボタンをクリックします。 この方法は、マクロの編集と削除([編集]、[削除]ボタン)にも適しています。

2.キーの組み合わせを使用する(図2):

米。 2.ダイアログボックス。 割り当て用のキーボードの構成大きい

MicrosoftWordのキーボードショートカット。

2.ダイアログボックスでマクロを呼び出すには キーボードのカスタマイズタブで 新しいキーボードショートカットコントロールキーの組み合わせが示されます。 たとえば、数字またはアルファベットのキーの組み合わせ(ラテン語)と一緒に。

次に、[割り当て]ボタンをクリックして割り当てを行います。

3.メニュー内のコマンドによる呼び出し-メニューの標準設定が実行されます。マクロコマンドの呼び出しに関連するメニュー項目を追加します。

表示されるダイアログボックスで カスタマイズ、タブ上 コマンドコンボボックスから カテゴリチームが選ばれました マクロマクロの名前が続きます。

マクロコマンドの名前でマウスの左ボタンをクリックすると、ボタンの点線の画像が表示されます。これをメニューにドラッグして、メニュー項目を追加する必要があります。 その後、マウスの左ボタンを離します。

4.ツールバーのこのマクロに割り当てられたボタンを使用します(図3)。

Wordでは、ダイアログボックスの[パネル]ボタン(図1を参照)をクリックすると 録音マクロダイアログボックスが表示されます カスタマイズその中でタブ コマンドコンボボックスから カテゴリ選択済み マクロマクロの名前が続きます。

マクロの名前をマウスの左ボタンでクリックすると、ボタンの点線の画像が表示され、ツールバーにドラッグする必要があります。 その後、マウスの左ボタンを離します。

[選択したオブジェクトを変更]ボタンをクリックすると、コマンドüを実行してボタンの好きなアイコンを選択できます。 ボタンのアイコンを選択します(図4)。 コマンドを使用してアイコンを編集することもできます ボタンのアイコンを変更する(窓 ボタンエディタ)(図5)。

米。 3.マクロに割り当てるためのダイアログボックスの設定
MicrosoftWordのツールバーボタン。

米。 4.ボタンのアイコンを選択するためのダイアログボックス

米。 5.ダイアログボックスエディタボタン

Excelでは、割り当てられた記号を使用してマクロを実行することもできます。

呼び出し方法を選択すると、小さなツールバーが表示されます 録音を停止しますボタンを含む:

-[記録を停止]-マクロの記録を終了します。

[一時停止]-マクロの記録を一時停止します(図6)。

図6。 MicrosoftWordのマクロレコーダーパネル

  1. マクロの変更

マクロは、プログラムテキストとしてテンプレートに保存されます。 各テンプレートには、任意の数のマクロを含めることができます。 ドットファイル(ドットはテンプレートファイル拡張子)はドキュメントとして読み取ることができないため、Wordには、マクロを一連のVBAステートメントとして表示および編集できる特別なツールが用意されています(図7)。 編集中、マクロは一連のVBAステートメントとして表示されます。 マクロの編集の本質は、他の言語でプログラミングする場合と同様に、演算子を削除、追加、および置換することです。

図7。 VBAエディターダイアログ

マクロ編集は、コマンドを使用して実行されます マクロ..。 ダイアログボックスで 大きい、フィールドで 名前編集するマクロの名前が選択されます。 [デバッグ]ボタンをクリックすると処理が始まります。 存在しないマクロの名前を指定できます。 次に[作成]ボタンをクリックすると、新しいマクロが作成され、ユーザーはそれをVBAに記録できるようになります。

[デバッグ]ボタンは、マクロの内容をVBAで表示するマクロ編集ウィンドウを開くために使用します。 マクロ編集ウィンドウは通常のドキュメントウィンドウに似ていますが、座標定規がないことと特別なツールバーがあることで区別されます。 複数のマクロ処理ウィンドウを開くことができます。 マクロテキストは、通常のVBAプログラムテキストと同じ方法で編集されます。 コマンドなど、ほとんどのテキスト編集コマンドを使用できます。 コピー切り取る.

[削除]ボタンをクリックすると、指定したマクロが削除されます。

マクロ編集ウィンドウを閉じるには、編集ウィンドウのシステムメニューまたはコマンドを使用できます。 選ぶメニューに ファイル..。 マクロを編集およびデバッグするための特定のコマンドは、削除行のボタンを押すことによって実行されます。

参考文献:

1. MusinK.A。「MicrosoftWordの技術補足」

2.ボロディンA.I「マクロプログラミング」

マクロス。

ほとんどのユーザーは、標準のアプリケーション機能を使用してMicrosoftOfficeドキュメントを作成および使用します。 ただし、Officeには、ドキュメントの作業を自動化するための十分な機会があります。これは、VBAでのプログラミングとマクロの使用です。

Visial Basic for Applicationsプログラミング言語であるVBAは、マクロの作成に使用されるOfficeアプリケーションに組み込まれているプログラミング言語です。

マクロおよびマクロレコーダー。

MS Officeで単調なコマンドを繰り返す代わりに、この一連のコマンドを自動的に実行するマクロを作成できます。 マクロを使用すると、次のように入力できます 独身コマンドのグループと同じタスクを実行するコマンド。

マクロはVBAで書かれたプログラムです。 VBAは、Visial Basic(アプリケーション用)の特別なバージョンです。

Officeでマクロを作成する方法は2つあります。

§ユーザーアクションを記録するマクロレコーダー

§VBAウィンドウを開いてVBAステートメントを入力する

ほとんどの場合、ユーザーはVBAを使用して、レコーダーによって記録されたマクロを修正します。

MS Office 2007-13でマクロを操作するには、リボンに[開発者]タブを表示します([オフィス] / [ワードパラメーター] / [リボン設定]ボタン)。

ユーザーは、マクロの開始条件を検討する必要があります。たとえば、選択したフラグメントで何かを行う必要がある場合は、記録または起動する前にフラグメントを選択する必要があります。

マクロ記録。

§DEVELOPER/ RECORD MACROタブで、マクロに名前を付けます。 名前にはスペースを含めたり、文字で始めたり、特殊文字を含めたりしないでください。 名前の最大長は80文字です。 作成されたマクロに組み込みのMicrosoftWordマクロの名前と一致する名前が付けられている場合、既存のマクロは新しいマクロに置き換えられます。

§コマンドを実行する

§DEVELOPER/ STOPRECORDタブ

通常、マクロはNormal.dotテンプレートで使用でき、自動的に保存されます。

マクロの実行。

§DEVELOPER/ MACROSタブで、目的のタブを選択して実行します。



クイックアクセスツールバーのボタンやキーボードショートカットにマクロを割り当てる。

§またはOFFICEボタン/ Wordパラメータ/設定

§または、マクロに名前を割り当てるときに適切なアクションを選択します。

マクロにキーボードショートカットを割り当てるときは、多くのショートカットがWordeで予約されており、「無料の」組み合わせを見つけるのは簡単ではないことに注意してください。

マクロを削除しています。

§DEVELOPER/ MACROSタブで、目的のタブを選択して削除します。

マクロのテキストを変更します。

マクロを記録するとき、レコーダーは一連のテキスト命令をVBAに保存します。 このテキストによる説明はソースコードと呼ばれます。 表示および修正できます。

§DEVELOPER/ MACROSタブで、目的のタブを選択して変更します。

VBAエディターからマクロを実行するには:RUNボタン()

自動的に実行されるマクロの作成。

Wordにはマクロの5つの特別な名前があります

VBA-プログラムは、アクションの単純なシーケンスで構成されます。プログラムは、オブジェクトにアクセスし、オブジェクトにプロパティを与え、それを使用してアクションを実行します。 すべてのドキュメント、段落、...はオブジェクトです。 たとえば、Selectionオブジェクトは選択です。 Word自体はAppicationオブジェクトです(付録2、3を参照)。



各オブジェクトには、独自の特性(プロパティ)があります。

多くのオブジェクトは、メソッドと呼ばれるアクションを実行します。

例えば、

ActiveDocument.Close(オブジェクト-アクティブドキュメント、メソッド-閉じる)

VBA構文によると、区切り文字はドットです。

通常:オブジェクト、ポイント、メソッド、および/またはプロパティ(ドットで区切られます)

オブジェクト上で右マウス-メソッド、プロパティのリスト(リストプロパティ/メソッド)

With…..End Withシーケンスを使用すると、名前を何度も繰り返すことなく、1つのオブジェクトに複数のメソッド/プロパティを指定できます。

実用的なタスク1。

「my_first_macro」という名前のマクロを作成してみましょう。このマクロでは、次のコマンドを作成します。

§横向きのページの向き

§ビュースケール-33%

その結果、次のコードが得られます

サブmy_first_macro()

"

"my_first_macroマクロ

「2007年3月12日に記録されたマクロ

ActiveDocument.PageSetupを使用

LineNumbering.Active = False

オリエンテーション= wdOrientLandscape

TopMargin = CentimetersToPoints(1.5)

BottomMargin = CentimetersToPoints(3)

LeftMargin = CentimetersToPoints(2)

.RightMargin = CentimetersToPoints(2)

ガター= CentimetersToPoints(0)

HeaderDistance = CentimetersToPoints(1.25)

FooterDistance = CentimetersToPoints(1.25)

PageWidth = CentimetersToPoints(29.7)

PageHeight = CentimetersToPoints(21)

FirstPageTray = wdPrinterDefaultBin

OtherPagesTray = wdPrinterDefaultBin

SectionStart = wdSectionNewPage

OddAndEvenPagesHeaderFooter = False

DifferentFirstPageHeaderFooter = False

VerticalAlignment = wdAlignVerticalTop

SuppressEndnotes = False

MirrorMargins = False

TwoPagesOnOne = False

GutterPos = wdGutterPosLeft

ActiveWindow.ActivePane.View.Zoom.Percentage = 33

エンドサブ

このマクロのテキストは、たとえば、次のように修正できます。

§パーセンテージを変更します(例:33から42)

§フィールドを変更する

§line.LineNumbering.Active= FalseでFalseをTrueに置き換えます(行の自動番号付けがあります)

§インラインで交換します。方向= wdOrientLandscapewdOrientPortrait、用紙の向きは縦向きになります

保存すると、このマクロは他のドキュメントに対して再度実行できます。

実用的なタスク2。

ファイルを開くときにメッセージボックスを作成するマクロを作成しましょう。

MessageBoxは、画面に表示されるメッセージボックスです。

MS Wordファイルを開いたときにMessageBoxを表示するには、AutoOpenという名前のマクロを作成し、その中でmsgbox関数を呼び出す必要があります。 次のようになります。

サブオートオープン()

「この関数は、ドキュメントを開くときに呼び出されます

「メッセージボックスの表示

MsgBox「こんにちは私の友達!」

アクションのシーケンス(オプションの1つ):

§DEVELOPER/ MACROSタブ、任意の名前を付けてCREATE

§VBAエディタウィンドウで、名前を変更し、VBAでプログラムのテキストを印刷します

§ 保存する

§ 発売

これで、各ドキュメントを開くと、メッセージが表示されます。

メッセージボックスを表示するためのコマンドは次のようになります。

MsgBox(promt、button、title、helpfile)

Promtは、メッセージボックスに表示されるテキストを指定する必須の引数です

ボタン-メッセージボックスのタイプ、[OK]、[キャンセル]、[停止]、[スキップ]などのボタンの存在を定義するオプションの引数。

Title-ウィンドウのタイトルを指定するオプションの引数

・ヘルプファイル–ユーザーがF1キーを押した場合に開くヘルプファイルを指定するオプションの引数

実用的なタスク3。

簡単なダイアログボックスを作成します。

ダイアログボックスを作成するには、フォームと呼ばれるビジュアルオブジェクトを作成する必要があります。 フォームは、コントロール(ボタン、ラジオボタン、チェックボックスなど)を配置できるウィンドウの類似物です。 各フォームはユーザーインターフェイスの一部です。 各フォームはオブジェクトであり、多くのオブジェクトが含まれています。各オブジェクトは個別に制御できます。

フォームの作成:

§VBAウィンドウ(ALT + F11)

INSERT / New FormまたはUserForm(新しいフォームを挿入)

§[プロパティ]ウィンドウで、フォームのプロパティを構成できます。たとえば、Captionプロパティを使用すると、フォームに名前を付けることができます。

§ToolBoxパネルを使用して、フォームのコントロールを設定します。

・ラベル-碑文

CommandButton-アクションを実行するためのコマンドボタン

TextBox-テキストフィールド

画像-描画

ChtckBox-チェックボックス

§各要素の作業をカスタマイズします。 たとえば、CommandButtonを2回クリックすると、このボタンが押されたときに実行する必要のあるVBAステートメントを記述できます。

マクロの実行時にこのようなダイアログボックスを表示するには、マクロに次の行を追加する必要があります。

UserForm1をロードします

UserForm1.Show

なぜなら VBAを習得するには、多くの時間とアルゴリズムの基本に関する知識が必要です。ユーザーは通常、マクロレコーダーを使用してWordコマンドを記録し、マクロを修正および/または追加します。


トピックの続き:
デバイス

太陽の自由光線を家や他の施設に電力を供給するために使用できるエネルギーに効率的に変換することは、多くの緑の謝罪者の大切な夢です...