• ベストアンサー

Access メインフォーム最大時のサブフォームの大きさ

アクセス2000です メインフォーム「A」とサブフォーム「B」があって、「B」のフォームはダイアログスタイルとして大きさの変更ができなくしてあります。 「A]のフォームの大きさが最大化されてない状態で「B]をVisble=True にすると、デザインされたとうりの大きさで表示されます。 しかし、「A]のフォームを最大化した状態で「B]を表示させるとダイアログ設定なのにこれも画面いっぱいの大きさで現れ、「A]が見えなくなってしまいます。 「A]が最大でも「B」をデザインどうりの大きさで表示させるには、どうしたらよろしいでしょうか?

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

  • ベストアンサー
回答No.2

Activate、Deactivate イベントのヘルプを見てみました。 PopUpプロパティをTRUEにするとBフォームの「Activate」「Deactivate」は発生しないようです。 BのDeactivateが発生しないので、AのActivateも発生しなくなるようですね。 アクセスのフォームはハンドルが存在するので、APIを駆使して自力でWM_ACTIVEを監視するようなやり方もあるとは思いますが、VBA内部でのウィンドウフックはリスクが大きいのでお勧めしません。 仕様の見直しがベターかと思います。

situmonnsya
質問者

お礼

いつも、ありがとうございます。 APIは苦手なので、「B]の方で処理を完了させて戻るようにします。 はじめからそのようなコードにすれば良かったのが悔やまれます。 ありがとうございました。

その他の回答 (1)

回答No.1

Bフォームのプロパティで「ポップアップ」をTrueにしてみてください。

situmonnsya
質問者

補足

はい、うまくいきました。 が・・・!! 「B]のvisible=false にしても「A]のアクテブイベントは発生しないんですね。 「B]で変数を加工して「A]のアクテブイベントでその変数変更後の処理をしてたんで、コードの書換えが必要みたいです。