![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
BookがそれぞれAとBとあります。Book BにBook AとBのデータを絞り込むデータ入力フォームを開くようにしています。
Bを起動するとAのsheetを開き、絞り込みフォームが開きます。
画面上は最背面にB、次にA、最前面にフォームとなります。この状態でAを絞り込む場合には、このままでいいのですが、Bを絞り込んだり、結果を表示すると、「B-フォーム-A」の順序になり、また絞り込むとき、Book Aを選択しなくてはなりません。
フォームを最前面に常に表示するにはどうすれば良いでしょうか?
他の質問で、WindowsのAPIを屈指してでないとだめですか?
APIも試してみましたが、うまく行きません。
参考になる回答でもありましたら、お教えください。
No.2ベストアンサー
- 回答日時:
>なにか良い方法はありませんか?
ふたつの手段があると思います。
あくまでも、Excel の32bit 版を、Wow64で使用する。
http://technet.microsoft.com/ja-jp/library/ee681 …
「ほとんどのユーザーには 32 ビット版 Office 2013 をお勧めしています。」
もうひとつは、古くからあるテクニックで、
小さなブックを作り、それをUserFormの代わりにする。そして、そこにボタンなどを置く。画面が切り替わっても、イベント・ドリブン型マクロで、Windows(1).Activateなどで、オーダーの先頭に置く。バージョンによって不可能なものもある中で、確か、Excel 2013では、そのようなことが可能だったと思います。
こういうことが考えられます。
この回答への補足
回答、有難うございます。
>画面が切り替わっても、イベント・ドリブン型マクロで、Windows(1).Activateなどで、オーダーの先頭に置く
やはりDataとVBAとは別Bookに分けないと駄目ですか?
入力用フォームは、データを逐次入力するので、完全に分けましたが。
また、開くBookが変わるとユーザーが混乱しそうです。
現状の切り分けラジオボタンで様子を見ます。
また、別のアイディアが浮かびましたらお願いします。
また、他の方のご意見もお待ちします。
有難うございます。
No.1
- 回答日時:
こんにちは。
>絞り込んだり、結果を表示すると、「B-フォーム-A」の順序になり、また絞り込むとき、Book Aを選択しなくてはなりません。
最初に、再現性が取れませんでした。直接の回答ではありませんが、いろいろと試行錯誤してみました。
>APIも試してみましたが、うまく行きません。
googleで調べて、以下のような文面がありました。
http://dobon.net/vb/dotnet/process/appactivate.h …
「MSDNの「SetForegroundWindow」の説明にあります)。そうならないのにはそれなりの理由があり、本来ならばそのようなOSのルールを尊重し、従うべきです。」とあります。
それでも、変える場合とありました。VB.Netですが、Win32 APIに関しては、内容的に、VBAとはほとんど変わりません。
再現性がないのは、ExcelのバージョンとOSの関係かもしれません。
こちらは、Excel 2010, OS Windows7 32bit です。
[Windows7 64bit、Excel2010だとユーザーフォームが最前面に出ない]
とありますが、これでしょうか。
http://ninoha.com/?p=349
この回答への補足
早々の回答、有難うございます。
こちらのバージョンは、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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- Excel(エクセル) エクセルのフィルター後の並び替えについて 2 2023/05/10 04:00
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- JavaScript 読み込んだQRコードをフォームに受け渡したい 1 2023/05/18 11:18
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
Hideについて(.NET)
-
ACCESSのフォーム、開くんです...
-
エクセルVBAのフォームを最...
-
ユーザーフォームのテキストボ...
-
【VBAユーザーフォームで閉じる...
-
フォームウィンドウを最前面に...
-
Form_Load と Form_Activate の...
-
Accessで、一つのフォーム画面...
-
ユーザーフォーム上に現在日時...
-
コントロールの存在確認
-
Microsoft Formsの「個人情報や...
-
サブフォームのイベントを取得...
-
なぜエラーになるのでしょう?...
-
アクセスのUserFormにはInitial...
-
ExcelVBAでユーザーフォームが...
-
ブックをCloseまたはQuitで閉じ...
-
フォームを開いてからの時間を取得
-
VBA コンボボックスとテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
クリックイベントなのに、2回ク...
-
MSGBOXのフォント大きさ変更
-
VBAでユーザーフォームを再表示...
-
Hideについて(.NET)
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
コントロールの存在確認
-
ユーザーフォーム上に現在日時...
-
【VBAユーザーフォームで閉じる...
-
エクセルVBAのフォームを最...
-
ACCESSのフォーム、開くんです...
-
Microsoft Formsの「個人情報や...
-
VBA(エクセル)のユーザー...
-
フォームウィンドウを最前面に...
-
ユーザーフォームのラベルに時...
-
'ユーザーフォーム右上隅の[×...
-
Excelにて、ユーザーフォームで...
おすすめ情報