OfficeAccessVBA複数のテーブルがあって、それを開くボタンを作ったとき、ユーザーによっては意外と「別タブで開く」のが苦手な人がいるんだなぁと。そこで、別フォームへ遷移してサブフォーム内にテーブルを表示してみる、という方式を試してみました。完成形テーブルが3つありまして。「F_メニュー」フォームに、それぞれのテーブル名をキャプションに書いたボタンを3つ作ってあります。Subと書けばそれでおしまいなんですけど。ボタンをクリックしたら、「F_テーブル表示」フォームへ遷移して、設置してあるサブフォームで「クリックしたボタンに書かれていたテーブル」を表示する、という方式にしてみます。押されたボタンによって表示するテーブルを切り替えて、さらにサブフォームのラベルもそのテーブル名が表示されるようにしたらスマートに使えるかなぁと。フォームを遷移っぽく見せるのは前書いたこちらの記事をご参照ください。「F_メニュー」フォーム各ボタン上に表示されている文字列は、ボタンの「標題」というプロパティです。VBAで指定するのは「名前」のほうなので、プロパティシートにてそれぞれ上図のように設定しておきます。このフォームモジュールに書くコードが以下です。Sub「標題」はVBAでは「キャプション」になります。14行目、OpenFormメソッドは第7引数にOpenArgsというパラメータを設定することができます。これが結構便利で、自由度の高い値を引き渡すことができるので、ここへ各ボタンがクリックされたときのキャプション(標題)を持ってきて、設定しています。OpenFormメソッドのパラメータ一覧はこちらを参照してください。Docs「F_テーブル表示」フォームこちらも、各コントロールは図のように設定しておきます。サブフォームは、開くときにその都度ソースオブジェクトを設定するので、設計の段階では非連結で構いません。このフォームモジュールに書くコードが以下です。Sub前段階のOpenFormメソッドで指定したテーブル名を、ラベルとサブフォームのソースオブジェクトへそれぞれ設定します。ソースオブジェクトは「オブジェクトの種類.オブジェクト名」としなければならないので、クエリだったら「クエリ.○○」など、変更が必要です。6行のように書くとよいですね。令和でもよろしくおねがいいたします!!公開日:2019/04/30書籍を執筆しています。OfficeExcelVBAでカレンダーコントロールを自作するExcelで1行・1列おきの合計を求めるSUM関数の書き方これからExcelのマクロを勉強したいという方に!簡単な練習問題作りました。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。週間人気記事ExcelVBAでカレンダーコントロールを自作するExcelで1行・1列おきの合計を求めるSUM関数の書き方これからExcelのマクロを勉強したいという方に!簡単な練習問題作りました。-2019/09/27運営者*you非IT系の会社で社内業務アプリ開発したりWeb担してたり。ExcelとかAccessの本を書いてます。