次の方法で共有

メニューの様なリスト展開型のコントロールを作成したい

Anonymous
2015-05-29T11:56:10+00:00

コミュニティにはいつもお世話になります。

今回はメニューの様なコントロールが作成できないかを伺いたいと思います。

■概要

昔からWindows(というか数多のソフトウェア)には「メニューボタン」という便利なUIがありますよね。

大体はウィンドウの一番上か左にあるやつです。

「ファイル」、「編集」、「ヘルプ」とか。デスクトップの「スタート(スタートメニュー?)」ボタンとか。

一方、Accessで使用頻度の高いフォームを作り込んでいくと、様々な動作要求が出てきて、

それらに対応するボタンを毎度作っているとボタンだらけになってしまいます。

そこで初心者でも馴染みのある「メニューボタン」をAccessでも使えないかと調べてみましたが

あまり情報がヒットしませんでした。

■質問

「メニューボタン」のような動作をAccessで再現する方法は無いのでしょうか。

なお、念の為ここでの「メニューボタン」は次のように定義します。

1.起点のボタンを押すと、

2.ボタンに関連するリスト項目が表示され、

3.項目をクリックすると関連する動作を実行し、

4.更に下の階層があれば次のリストを展開していくもの。

ポイントは、「一つの起点」で「多数の項目」を「階層的」に整理しながら扱えることだと思います。

■試行錯誤

ActiveXコントロールに何か無いかと見てみましたが名前からそれらしいのは見当たらなかったです。

(Tree View やList View は違う様ですし。)

タブコントロールやナビゲーションコントロールも検討してみましたが、煩雑。

妥協策として、コンボボックスの変更時イベント等にそのコンボボックスの値によってVBAで動作を実行する、というものはできそうです。これでもボタン数は減らせますし。

でも1階層しかないですし(※)、ちょっとした手間で「メニューボタン」が再現できるならと思っています。

※「このコンボボックス」と「タブコントロールや他のコンボボックス」とを合わせれば2階層以上を実現できますが、う~ん、クリック数増えるし、スマートじゃないなぁ(好みの問題)

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Makapu 92,110 評価のポイント ボランティア モデレーター
2015-06-02T13:27:51+00:00

junnnyさんこんばんは。

ご要望の件とはぴったり一致しないとは思うのですが、

■マクロを使用してカスタム メニューおよびショートカット メニューを作成する

https://support.office.com/ja-jp/article/Office-5bd538ff-19c4-4dfe-9540-3309aebf8a1a

が近いかなぁと思いました。

後は別で

■リボンをカスタマイズする

https://support.office.com/ja-jp/article/Office-45e110b9-531c-46ed-ab3a-4e25bc9413de

■Access 2007 でのリボンの拡張

https://msdn.microsoft.com/ja-jp/library/bb187398%28v=office.12%29.aspx?f=255&MSPPError=-

2147217396

ご参考になれば。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-06-03T00:43:34+00:00

    返信ありがとうございます。

    ■マクロを使用してカスタム メニューおよびショートカット メニューを作成する

    https://support.office.com/ja-jp/article/Office-5bd538ff-19c4-4dfe-9540-3309aebf8a1a

    が近いかなぁと思いました。

    そういえばこの機能、ちゃんと理解していませんでした。

    なお当方ではリボンの非表示が基本ですので、ショートカットメニューを前提に見ています。

    ・特定のコントロールに紐づけられる。

    ・階層化が可能。

    ということであれば、機能としては私の要望と同じですよね。

    あとは「右クリック」のショートカットメニューということですが、

    これだと直感的な操作ではないので

    ・コマンドボタン

     ・・イベント:マウスボタンクリック時 など

      ・・・処理:通常の左クリックを右クリックに置き換える(ショートカットメニューを表示させる)

    上記のようなコントロールを設置し、参考リンク先の通り設定してやれば

    希望通りの「メニューボタン」が作れるのでは!?、、、と思ったら、うまく行きませんでした。

    クリックしたボタンに対応する引数「Button」は「KeyCode」のように入力出来ないでしょうか。

    しかし、惜しい所まで実現できました。

    デメリットとして、設定ファイルとなるマクロを大量に作成する可能性はありますが、

    TPOに応じて、コンボボックスと比較して適した方を使うようにすれば良さそうです。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2015-06-01T05:31:23+00:00

    よろしくお願いします。

    こちらでも書いていただいた条件で動作するようなボタンが作成できないか試してみたのですがわかりませんでした。また、情報がないかも調べてみたのですが、有効な情報が見つけられませんでした。。

    難しそうですね。

    残念でしたが、それでも検討していただきありがとうございます。

    取り合えず今はAccessですが、Excel等他のOfficeファミリーでもVBA フォームでこんなコントロールが使えると便利だなと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2015-06-01T05:12:05+00:00

    junnny さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    Access のフォーム上でクリックするとリストを表示する (階層構造でさらに項目があるとリストを表示する)「メニューボタン」のようなコントロールを使用されたいのですね。

    こちらでも書いていただいた条件で動作するようなボタンが作成できないか試してみたのですがわかりませんでした。また、情報がないかも調べてみたのですが、有効な情報が見つけられませんでした。。

    お力になれず、すみません。。

    もしこちらの件について何か情報をお持ちの方がいらっしゃいましたら、投稿をよろしくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません