VBAでフォームを操作する方法

このQ&Aのポイント
  • VBAを使用して検索フォームの操作方法をまとめました。具体的には、検索フォームの最小化、結果フォームの表示、コンボボックスの入力表示の消去などが可能です。
  • また、結果フォームの操作方法も紹介しています。結果フォームの最小化や、検索フォームの元のサイズに戻すなどができます。
  • マクロで作成したフォームのVBAの記述方法や、コマンドボタン名やコンボボックス名の見つけ方についても解説しています。自身で使いやすいマクロの記述方法を学びたい方におすすめです。
回答を見る
  • ベストアンサー

VBAの記述でフォームを操作させたい

検索用フォームに検索結果表示用のボタンを配して利用しています。私のスキルのレベル問題から全てをマクロ操作で行える様、皆様からアドバイスを頂きまして使える様にはなりましたが。しかし、マクロのイベント欄の左に警告マークが表示(固定表示)されますので、早急に表示されない方法で使用したいと思っております。誠に勝手申しますがアドバイスを頂けませんでしょうか。 [操作したいフォームの構成とVBA記述で実現したいこと] 1、検索用フォームの構成 ・検索用フォーム名:検索Aフォーム ・検索結果フォーム表示用ボタン名:スタート ・コンボボックス名:コンボa、コンボb、コンボc ■やりたいこと 「検索Aフォームに配したコマンドボタンを使って」 a、検索Aフォームの最小化 b、結果Aフォームの表示 c、コンボボックスの入力表示を消去 2、検索結果フォームの構成 ・検索結果フォーム名:結果Aフォーム ・検索用フォーム表示用ボタン名:バック ※結果Aフォームの参照クエリ名:検索クエリ ■やりたいこと 「結果Aフォームに配したコマンドボタンを使って」 a、検索Aフォームを元のサイズに戻す b、結果Aフォームの最小化 既にマクロで作ったフォームのVBAを探してみましたが、マクロで作成したコマンドボタン名やコンボボックス名が見つけられない等を経験しました。自身でよく使うマクロの記述を教えていただければ、逆引き感覚で少しは早く覚えられるのではと思っています。以上ですが、宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.1

>マクロのイベント欄の左に警告マークが表示(固定表示)されますので、早急に表示されない方法で使用したいと思っております。 消せません。 表示されているからといって使えない訳ではありません。 先日回答した「値の代入」のことかと思いますが、「すべての アクションを表示」を押して選択されたかと思います。 要するにデフォルトでは「値の代入」は非表示=安全ではない アクション=それなりに影響有り・・・って意味ですかね。 その辺が気になるのであれば、マクロではなくVBAで作成した 方がよいかもしれません。

eokwave
質問者

お礼

厳正にご評価いただきましてありがとうございます。次回、再度お願いしますので、その時は教えてくださいね。

関連するQ&A

  • 50個分のクエリとフォームを作らないといけないのか!?

    50個分のクエリとフォームを作らないといけないのか!? 素人が見よう見まねで作っていますので、分かり難いかと思いますが、 何卒よろしくお願い致します。 現在、フォーム(検索)があり、そこに非連結コンボボックス(テキスト1)が あります。このコンボボックスは、テーブル(取引先)の値(会社名)を参照して います。会社名は約200あります。 テーブル(取引先)のフィールドは会社名、フリガナ、五十音別です。 今迄は、マウス操作で会社名を選んでいました。今度、タッチパネルLCDを 使う事になったのですが、コンボボックスでは、文字は大きく出来ても、 コンボボックスの枠やスクロールバーの幅を大きく出来ず、うまくタッチ パネルでの操作ができません。 そこで、新たにフォーム(五十音)を作り、五十音分(あ~ん)のコマンドボタン を作り、コマンドボタン”あ”を押すとクエリ”あ”で、テーブル(取引先)の 五十音別が”あ”の会社だけ抽出させ、結果をフォーム(あ)に表形式で表示 させました。 さらに、マクロ(値の代入)で、フォーム(検索)のコンボボックス改めテキスト ボックス(テキスト1)に会社名を代入させました。 回りくどい事だと思いますが、これで、マウスで選ぶのと同じ事が出来ました。 しかし、この方法だと、クエリとクエリの結果を表示させるフォームが、それ ぞれ50づつ必要になってしまいます。 50づつ作ってもいいのですが、きっと他にもっと簡単で明解な方法があると 思うのですが、素人ゆえ、全く見当がつきません。 簡単な方法がありましたら、ご教授のほど宜しくお願い致します。 なお、わがままを言って申し訳ありませんが、コンボボックスの枠を大きくした りではなく、コマンドボタンを使う方法でお願い致します。

  • フォームでパラメーターを求められます

    フォームにコンボボックスを作りました。 コンボボックス(年指定)の中は、 2005 2006 2007 ・・・・・・・・・・・ といったような年度の位置づけです。 さらにコマンドボタンを作ってクリック時にマクロを指定しました。 マクロには、 アクションが「クエリを開く」があり、 クエリは普通の選択クエリで、 実績年フィールドの抽出条件に、 =[Forms]![フォーム1]![年指定]としました。 これでコンボボックスで選んだ年度のデータが抽出されて表示されるのかと思っておるのですが、 コマンドボタンを押すと、 パラメーターの入力を聞いてきます。(Forms!フォーム1!年指定) どこが間違っているのでしょうか? 情報不足かもしれませんが、ご指導ください。

  • コンボボックスの入力表示の消去

    アドバイスをお願いします。 [知りたいこと] 検索ボックス(コンボボックス)で検索した値を合致フォーム(フォーム)で開くとき、一緒に検索ボックス(コンボボックス)の値(入力表示)もクリアにしたい。 [セット条件] ・コンボボックス名:検索ボックス ・検索結果フォーム名:合致フォーム ・合致フォームを開くコマンドボタン名:開くボタン [お願い] 現在は、コマンドボタンをイベントのマクロでフォームを開くで設定している。コマンドボタンでフォームを開く設定をコードビルダで記述するスキルがない為、マクロで可能でしたらマクロで教えていただけませんでしょうか。マクロがダメなときはコードビルダでお願いします。勉強しますので。 以上ですが、宜しくお願いします。

  • VBAでのプログラム

    AccessにてExcelのファイルをインポートしてA,B,C・・・ という複数のテーブルを作成しました。でそのテーブルからA-1,A-2,B-1,B-2・・・というクエリを作成し、それからオートフォームで個別に表示できるフォームをそれぞれ作成しました。 ここからが質問なのですが、上記のファイルをフォームを 作成して検索できるようにしたいと思い、フォームは作成できたのですが、それに対応するアクションのプログラム がわからないのでご存知でしたら教えてください。 まず2つのチェックボックスで*-1,*-2とクエリ、フォームを選択し、コンボボックスでA,B,C・・・を選択して、コマンドボックスでボタンをクリックすると希望どおりのクエリかフォームが表示されるといった具合です。 かなりわかりづらいと思いますが、補足をさせて頂きますのでよろしくお願いします。

  • フォームを開くボタンを1個でコントロールしたい

    「やりたいこと、ご指導頂きたいこと」 1,現在の運用方法(下記)ではコマンドボタンが4個と多く、使いづらいのでコマンドボタンを1個で完結できる方法が知りたいです。 2,個人的なお願いですが「マクロ」で対応できる方法があれば、そちらでお願いしたいと思います。理由は、VBAのスキルが低レベルで話にならない為。但し、不可の場合は、可能な方法でご指導願います。 「現在の運用方法の紹介」 企業の連絡情報帳をアクセスで運用しています。尚、フィールドの数は10ありますが、質問内容には検索項目の4個を紹介させて貰っています。 運用の概要ですが、検索専用フォームにコンボボックスを4個つくり、コンボボックスで企業リストテーブルを参照させて希望のフィールド(会社名、製品名、商品名、得意技)を選択させています。選択後はコンボボックスの横に配したコマンドボタン4個を使って個別フォームを開いている。運用の背景ですが、絞込検索では都合が悪い事情がある為です。 「各オブジェクトの紹介」 1,テーブル名:企業リスト 2,フォーム名:検索専用フォーム(レコードソースなし) 3,コンボボックスの名前:会社名、製品名、商品名、得意技 ・企業リストの各該当フィールドを値集合ソースにて参照 4,企業リストクエリ ・会社名(検索専用フォームのコンボボックス「会社名」を抽出条件に) ・製品名(検索専用フォームのコンボボックス「製品名」を抽出条件に) ・商品名(検索専用フォームのコンボボックス「商品名」を抽出条件に) ・得意技(検索専用フォームのコンボボックス「得意技」を抽出条件に) 5,フォーム名 ・会社名検索結果(レコードソースに会社名クエリ参照) ・製品名検索結果(レコードソースに製品名クエリ参照) ・商品名検索結果(レコードソースに商品名クエリ参照) ・得意技検索結果(レコードソースに得意技クエリ参照) 以上ですが、他に細かな設定(ファイル操作・選択文字の選択後の消去・等々)もありますが割愛して居ります。どうか宜しくお願いします。

  • Accessで、フォームAからダイアログモードで立ち上げたフォームBを開き、フォームBを閉じた時にフォームA側でマクロを実行したい

    タイトルのままなのですが、 フォームA(メインとなる画面)と フォームB(コードの検索画面)があり、 フォームAからフォームBをダイアログモードで開いている状態から、 フォームBを閉じたときに、フォームA側でマクロを実行したいと思っています。 具体的には、フォームAにコード入力用のテキストボックスがあり、コード検索のためにフォームBを立ち上げ、コードを選択した後フォームAのテキストボックスにそのコードを入れて、そのコードの値を元にフォームAにあるコンボボックスの再クエリを行いたいのです。 コンボボックスの再クエリの方法等は理解しているのですが、 上記のような場合に、どのイベントがキックされるのかが分かりません。 どのようにすれば(どのイベントを選んでマクロを指定すれば)適切に実行できるでしょうか。

  • Accessのフォームで日付の範囲での抽出

    初心者です、Access2000/WinXPで使用しています、Accessのフォームで日付の範囲での抽出仕方が解らなくて困っています、日付をそれぞれコンボボックスで指定しています、コンボボックスAとコンボボックスBの日付間での抽出なのですが、それを一つのコマンドボタンで抽出したいのです、 簡単に説明します。 メニュー抽出:フォームの コンボボックスA:集合ソースメニュー/総合抽出クエリ コンボボックスB:集合ソースメニュー/総合抽出クエリ txt2(コンボボックス):集合ソースメニュー/総合抽出クエリ コマンド4(これは検索と言う名前でtxt2で指定した名前を抽出するのに使っています) Private Sub コマンド4_Click() 'レコードを抽出 Me.Requery End Sub と、してあります このコマンド4でコンボA~コンボBの期間のtxt2の品目を総合抽出クエリから抽出するにはどうすればよろしいでしょうか?宜しくお願いいたします。

  • (アクセス)全てのイベントプロシージャが無反応に

    何らかの原因でプロシージャやコマンドボタンに設定したマクロ等が無反応になる現象に苦慮しています。 多くのフォームの中で、この現象に関連するフォームは2画面あり、それぞれをフォームA、フォームBということで説明いたします。((1)~(4)) (1)フォームAのコマンドボタン押下でフォームBを開きクエリーのデータ(フォームAで指定した条件)  を表示しています。  フォームBで他のフォームと異なっているプロパティは次の通りです。  ・ポップアップ ----はい  ・作業ウィンド固定 --はい (2)フォームBにはレコードソース(クエリ)の値を表示する幾つかのテキストボックスとコンボボックス  が2つあり、それぞれをコンボA、コンボBとするとフォームBを開いた時はそれぞれにクエリーの   データを表示し、変更する場合はコンボAで選定した条件でクエリによりコンボBにデータを表示す  るようにしています。 (3)なお、コンボAの列数は2で、コンボボックスには列1のデータ(商品名)を表示するようしていて列 2の値(商品コード)を一旦テキストボックスに取り出し、そのコードでクエリによりコンボBのデータ  を表示しています。テキストボックスのプロパティのコントロールソースには次のように記述していま す。   =コンボ186.column(1)   ※=コンボ186がコンボAのことです (4)あと、フォームBにはデータをチェックするためのイベントプロシージャが幾つかとフォームAへ戻る ためのコマンドボタンがありますが他のフォームと比べても特に問題は無いように思えます。 以上のような環境でフォームAからフォームBを開いた時に、フォームBにはレコードソースであるクエリの値は全て表示するものの全てのイベントプロシージャ及び(3)で説明しました  =コンボ186.column(1) の処理が一切動作しなくなります。 しかし、次の操作により回復し、その後はACCESSを終了し再起動しても正常に動作します。  ・フォームBをデザインビューで開く  ・フォームBを開く時に設定しているイベントプロシージャを表示  ・イベントプロシージャをいじって閉じる。(内容は変更しない)  ・フォームBをホームビューで開く   だらだらと長くなり説明も不十分かと思いますが、原因がどうしてもわからなく困っております。 何か手がかりを教えて頂けたらと思い投稿しました。 よろしくお願いいたします。

  • アクセスのフォーム

    アクセスのフォームで、ヘッダー部にボタンを3つ作成し、それぞれ名前を"1","2","3"とします。そして、全てのボタンに埋め込みマクロで"1"にはクエリ1を実行する、"2"にはクエリ2を実行する、"3"にはクエリ3を実行するというマクロを埋め込みます この時ボタンをクリックすると、その結果がフォームの詳細部分に表示させる事はできますか?例えば"2"をクリックすれば詳細部分にクエリ2の結果が表示される様にしたいです。それぞれのクエリの構成は異なります。テーブル形式で表示されるのではなく、フォームの形式で表示される様にしたいです。 表示された文字をクリックするとヘッダー部のテキストボックスにその文字が入力され、クエリの抽出条件がそのテキストボックスになっており、クエリ実行ボタンを押せばその抽出条件でクエリが実行され、詳細部分に表示・・・という様に検索できる様にしたいです。文字をクリックすればテキストボックスへというのは以前この場で教えて頂きました。 説明がうまくできなくてすいません。誰か教えて下さい。 よろしくお願いします。

  • フォームへの未入力を無くしたい

    [やりたいこと(宜しくおねがいします)] フォームの未入力「コンボボックス」と「テキストボックス」を事前に把握したい。 [(やりたいこと)の実現と希望] このサイトでアドバイスを頂きまして、長年に渡り作成できたデータベースが「68」、入力するフォームは「78」を超えます。現状「フォーム」の構成を生かす方法を含めアドバイスをお願いします。 [入力するフォームに共通していること] 1,コンボボックスとテキストボックス  ・全てのコンボボックスへの選択入力は必須になっている。  ・テキストボックスは未入力箇所も発生する。「未入力箇所は不特定」 2,フォームに共通して配している2つのコマンドボタン  ・フォームを閉じるボタン「マクロ(クリック時)」  ・情報の最新化ボタン「マクロ(クリック時)」   ※コンボボックスの選択項目追加時に反映用として配置 以上ですが、宜しくお願いします。

専門家に質問してみよう