• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL Form モードレスで開いて)

EXCEL Form モードレスでのデータ絞り込みフォームの最前面表示方法

このQ&Aのポイント
  • EXCELのFormモードレスで開いている際に、データ絞り込みフォームを常に最前面に表示する方法を教えてください。
  • ExcelのBookにはAとBの2つがあり、Book Bを起動するとAのシートと絞り込みフォームが表示されます。しかし、絞り込みフォームを使ってデータを絞り込む際に、フォームが最前面に表示されるようにしたいです。
  • WindowsのAPIを試してみましたが、うまく行きませんでした。他の方法や参考になる回答があれば教えてください。

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

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

>なにか良い方法はありませんか? ふたつの手段があると思います。 あくまでも、Excel の32bit 版を、Wow64で使用する。 http://technet.microsoft.com/ja-jp/library/ee681792.aspx 「ほとんどのユーザーには 32 ビット版 Office 2013 をお勧めしています。」 もうひとつは、古くからあるテクニックで、 小さなブックを作り、それをUserFormの代わりにする。そして、そこにボタンなどを置く。画面が切り替わっても、イベント・ドリブン型マクロで、Windows(1).Activateなどで、オーダーの先頭に置く。バージョンによって不可能なものもある中で、確か、Excel 2013では、そのようなことが可能だったと思います。 こういうことが考えられます。

k321201
質問者

補足

回答、有難うございます。 >画面が切り替わっても、イベント・ドリブン型マクロで、Windows(1).Activateなどで、オーダーの先頭に置く やはりDataとVBAとは別Bookに分けないと駄目ですか? 入力用フォームは、データを逐次入力するので、完全に分けましたが。 また、開くBookが変わるとユーザーが混乱しそうです。 現状の切り分けラジオボタンで様子を見ます。 また、別のアイディアが浮かびましたらお願いします。 また、他の方のご意見もお待ちします。 有難うございます。

その他の回答 (1)

回答No.1

こんにちは。 >絞り込んだり、結果を表示すると、「B-フォーム-A」の順序になり、また絞り込むとき、Book Aを選択しなくてはなりません。 最初に、再現性が取れませんでした。直接の回答ではありませんが、いろいろと試行錯誤してみました。 >APIも試してみましたが、うまく行きません。 googleで調べて、以下のような文面がありました。 http://dobon.net/vb/dotnet/process/appactivate.html 「MSDNの「SetForegroundWindow」の説明にあります)。そうならないのにはそれなりの理由があり、本来ならばそのようなOSのルールを尊重し、従うべきです。」とあります。 それでも、変える場合とありました。VB.Netですが、Win32 APIに関しては、内容的に、VBAとはほとんど変わりません。 再現性がないのは、ExcelのバージョンとOSの関係かもしれません。 こちらは、Excel 2010, OS Windows7 32bit です。 [Windows7 64bit、Excel2010だとユーザーフォームが最前面に出ない] とありますが、これでしょうか。 http://ninoha.com/?p=349

k321201
質問者

補足

早々の回答、有難うございます。 こちらのバージョンは、Excel 2013、OS Windows7 64bitです。 http://ninoha.com/?p=349 これもすでに試したのですが、 Book Aが表示されない。フォームが別窓扱いになります。タスクトレイのEXCELが 本来、Book AとBになるはずが、Book Aとフォームになってしまいます。 仕方がないので、今はフォームにBook AとBの切り替えラジオボタンを配置して 切り替えの度に切り替えたBookをアクティブにしてにフォームを開き直しています。 (これだとフィルターのデータをAとB用にメモってリロードしないといけない) なにか良い方法はありませんか?

関連するQ&A

専門家に質問してみよう