Accessでは多くのマクロアクションが使用できます。
しかし、毎回アクションを選択して入力するのは面倒ですね。
マクロアクションは、コピー&ペーストができます。
また、アクションカタログで[このデータベースのオブジェクト]フォルダーを開くと、保存済みのマクロ一覧を表示できます。
この中から使用したいマクロを選択して、ダブルクリックやドラッグでコピーできます。
マクロアクションの作成
フォームにボタンを作成して、そのボタンをクリックして別のフォームを開くマクロを作成します。
フォームをデザインビューで開いて、ボタンを作成します。
[フォームデザイン]タブのコントロールから[ボタン]を選択して、ドラッグして作成します。
[コマンドボタンウィザード]が表示されたら、[キャンセル]をクリックします。
コマンドボタンウィザードを使用してボタンを作成する方法もありますが、ここではキャンセルします。
ボタン名と標題は[顧客一覧を参照]としています。
ボタンを選択して、プロパティを表示します。キーボードから[F4]キーを使用すると、プロパティの表示/非表示を実行できます。
[イベント]タブの[クリック時]の[ビルダーの選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択して[OK]ボタンをクリックします。
マクロデザインが表示されます。
マクロアクションの追加は、[新しいアクションの追加]の▼ボタンをクリックして一覧から選択する方法と、[アクションカタログ]の[アクション]から選択して追加する方法があります。
[新しいアクションの追加]のメニューから選択して追加
ここでは、別のフォームを[読み取り専用]で開くマクロアクションを作成します。
[新しいアクションの追加]の▼ボタンをクリックして一覧から[フォームを開く]を選択します。
下へスクロールすると、見つけられます。
以下のように[フォームを開く]アクションが表示されます。
[フォーム名]と[データモード]の▼ボタンをクリックして選択肢から、以下のように選択して完成させます。
キーワードを使ってマクロアクションを検索
[新しいアクションの追加]のボックスにカーソルを置いて、マクロアクション名を入力します。
たとえば、[フォーム]と入力します。
確定すると、マクロアクション名の後ろの文字は、自動的に表示されます。
[Enter]キーを押すと、[フォームを開く]アクションを表示できます。
参考複数の同じ文字列で始まるマクロアクションがある場合は、最初にヒットするマクロアクションが表示されます。
[アクションカタログ]から選択して追加
アクションカタログから選択して追加する方法もあります。
アクションカタログが非表示になっている場合は、[マクロデザイン]タブの[表示/非表示]グループにある[アクションカタログ]をクリックしてください。
アクションカタログ
アクションカタログを表示します。ここから、マクロデザイナーへのマクロアクションの追加、マクロアクションの検索、既存のマクロの再利用ができます。
マクロアクション[フォームを開く]は[データベースオブジェクト]の中にありますので、[データベースオブジェクト]をクリックして展開します。
[フォームを開く]をダブルクリックします。
または、[フォームを開く]で右クリックして、ショートカットメニューから[アクションの追加]をクリックします。
マクロウィンドウへドラッグして追加することもできます。
アクションカタログで検索
アクションカタログからマクロアクションを探す場合、どのアクションを開けばいいのか分からないこともあります。
アクションカタログの上部には検索ボックスがありますので、キーワードで検索できます。
以下は、[開く]で検索した結果です。
選択すると、アクションカタログの下方に説明が表示されます。
ポイントすると、同じ内容のポップヒントも表示されます。
ダブルクリックすると追加されますので、ヒントを見たい場合はクリックで選択します。
もし、間違えて追加した場合は、アクションの右上にある[削除]ボタンで削除してください。
マクロアクションの追加とコピー
マクロアクションを追加する場合は、すぐ下にある[新しいアクションの追加]へ追加していきます。
フォーム[F_顧客一覧]には、[Excelへ出力]ボタンと[PDFを作成]ボタンがあります。
ボタン名は[出力ボタン]と[PDFボタン]としています。ボタンに表示されているのは、[標題]です。
読み取り専用として開くので、2個のコマンドボタンは非表示にします。そのマクロアクションを作成します。
すべてのマクロアクションを表示
マクロアクション[値の代入]を追加します。
ただ、既定のままでは一覧に[値の代入]はありません。
[表示/非表示]グループの[すべてのアクションを表示]をクリックしてオンにすると、表示されるようになります。
すべてのアクションを表示
[アクション]列のドロップダウンリストに表示される内容を切り替えます。全アクションを表示するか、信頼されていないデータベースで許可されるアクションのみ表示するかを選択できます。
マクロアクションの一覧であれば、下から4番目にあります。
アクションカタログであれば、[データベースオブジェクト]を開くと表示されます。
どの方法でもよいので、[値の代入]を追加します。
以下のようにマクロアクション[値の代入]が追加されます。
参考[値の代入]を追加すると、先頭に黄色い三角のマークが表示されます。これをポイントするとポップヒントに[Unsafe Action]と表示されます。
[すべてのアクションを表示]をクリックして表示されるアクションに表示されます。
このアクションは無効モードでは実行できないという意味のマークです。
Accessでは、既定では[セキュリティの警告]メッセージバーが表示されます。無効になっている機能を有効にするには[コンテンツの有効化]をクリックします。一度、有効化を実行すると、次回からは有効化された状態で開かれます。
一時的に有効化することもできます。
マクロアクション[値の代入]のアイテムと式を入力
マクロアクションの[アイテム]と[式]には、以下のように入力します。
これでフォーム[F_顧客一覧]の[出力ボタン]の[可視]プロパティを[いいえ]に設定できます。
フォームビューで[出力ボタン]を非表示にできるということです。
False
マクロアクションをコピー&ペーストして編集
もう1つ、フォーム[F_顧客一覧]の[PDFを作成]のボタンを非表示にします。
再度、[値の代入]を追加して作成するより、作成済みのアクションをコピーしたほうが効率的です。
[値の代入]が選択されている状態で、右クリックします。アクション全体が選択されていることを確認します。
[値の代入]と表記されている箇所をクリックすると、全体が選択されます。
[アイテム]や[式]のテキストボックス内でクリックしないようにします。
ショートカットメニューから[コピー]をクリックします。
または、ショートカットキー[Ctrl]+[C]を使用します。
キーボードから[Ctrl]+[V]を押します。
マクロアクションの固まりを貼り付ける場合は、ショートカットメニューが表示されませんのでショートカットキーを使用します。
アクションが貼り付けられます。
[出力ボタン]の箇所を[PDFボタン]に変更すればOKです。
完成したら、上書き保存して閉じます。
複数のマクロを選択/すべて選択してコピー
マクロデザインでは、複数のマクロアクションを選択できます。
以下の記事で作成したマクロアクションです。埋め込みマクロでフォームに制限をかけるで作成したマクロです。
-
フォームを参照用と編集用にボタンで切り替え(埋め込みマクロで設定)
Accessで1つのフォームを作成して、すべての内容を見せてレコードの編集ができるようにしています。 でも、そのフォームを開く時に制限を付け ...
4個のマクロアクションを追加しています。
複数のマクロアクションをコピーしたい場合は、マクロアクションのインジゲーターをクリックして閉じておくと操作しやすいと思います。
各アクションの先頭に表示されている[-]ボタンをクリックします。
アクションの構成内容が非表示になり[+]ボタンに変わります。再度、展開したい場合は、このインジゲーターをクリックします。
キーボードから[Ctrl]キーや[Shift]キーを使って複数のマクロアクションを選択できます。
すべて選択するには
ショートカットキー[Ctrl]+[A]を使って、マクロウィンドウ内のすべてのマクロアクションを選択できます。
このままショートカットキー[Ctrl]+[C]を使ってコピーします。
参考同じデータベース内だけでなく、別のデータベースのマクロウィンドウを開いても[Ctrl]+[V]で貼り付けできます。
データベース内のマクロアクションを再利用する
同じデータベース内で使用したマクロアクションをコピーして使用することもできます。
フォームに[閉じる]ボタンを作成しています。
[閉じる]ボタンをクリックすると、[フォームを閉じますか?]というメッセージウィンドウを表示して、[はい]がクリックされたらフォームを閉じるようにします。
この時、ほかのフォームで作成したマクロアクションがあれば、コピーして貼り付けるだけでOKです。
以下は、[閉じる]ボタンのクリック時イベントのマクロデザインです。
[アクションカタログ]の[このデータベースのオブジェクト]の矢印をクリックして展開します。
コピーしたいマクロがあるのはフォーム[F_メニュー]なので、展開します。
既存のマクロアクションが表示されますので、目的のマクロ[閉じるボタン.OnClick]を選択してダブルクリックします。
または、目的のマクロで右クリックしてショートカットメニューから[マクロのコピーを追加]をクリックします。
マクロウィンドウへドラッグしても追加できます。
作成済の独立マクロがあれば、[このデータベースのオブジェクト]に表示されます。
フォームと同じように選択して再利用できます。
参考[閉じる]ボタンをクリックしたらメッセージウィンドウを表示して、[はい]がクリックされたら閉じるというボタンの作成については、以下の記事で解説しています。
MsgBox関数についても記しています。
-
メッセージボックスで[はい]が選択されたらアクションを実行する
Accessのフォームで[閉じる]ボタンを設置しても、メッセージボックスは表示されずにフォームは閉じられてしまいます。 [閉じる]ボタンをク ...